水用量数据预测模型建立和用户分类

上传人:小** 文档编号:39814143 上传时间:2018-05-20 格式:DOC 页数:20 大小:991.54KB
返回 下载 相关 举报
水用量数据预测模型建立和用户分类_第1页
第1页 / 共20页
水用量数据预测模型建立和用户分类_第2页
第2页 / 共20页
水用量数据预测模型建立和用户分类_第3页
第3页 / 共20页
水用量数据预测模型建立和用户分类_第4页
第4页 / 共20页
水用量数据预测模型建立和用户分类_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《水用量数据预测模型建立和用户分类》由会员分享,可在线阅读,更多相关《水用量数据预测模型建立和用户分类(20页珍藏版)》请在金锄头文库上搜索。

1、水用量数据预测模型建立和用户分类水用量数据预测模型建立和用户分类名称名称:水用量数据预测模型建立和用户分类简述简述:(1)基于居民用户历史水用量数据,解决以下问题:分析出居民用户的水用量的规律;对用户进行分类;找出其中不合理用水的居民用户;可根据规律预测用户未来一段时间的用水量。 (2)基于大用户历史用水量数据,解决以下问题:分析出大用户的水用量规律;对用户进行分类;当规律不匹配时进行提醒;根据规律预测用户未来一段时间的用水量。1、小用户数据1.1 数据预处理原始数据表中包含很多字段,需要删除无用字段。其次水表可能出现故障,导致读数有问题,如水表读书为负值等一些问题。(1)去除重复记录,将CS

2、T_ID、CAI_ID、CXD_NEW_READING、CXD_USAGE 和CXD_DATE 相同的记录进行去重操作。(2)将 CXD_USAGE 小于 0 的记录赋值为 0;(3)时间转换,数据库中数据毫秒格式存储,为了方便对日期进行操作,故需要将时间转换为 yyyy/MM/dd 的格式,其转换过程如下所示:(4)校验 CXD_USAGE 值是否正确,这里通过 KETTLE 将当天CXD_NEW_READING 与前一天 CXD_NEW_READING 进行求差,然后将差值与 CXD_USAGE 对比,如果他们差值较大,说明CXD_NEW_READING 读书有误或 CXD_USAGE 有

3、误,则需要进行校验操作,其过程如下图所示:转换结果如下图所示:(5)对(4)所得结果进行去除无效值操作,将前一天后一天读数差值与 CXD_USAGE 比较,若差值大于 10 则删除该记录;若当天读数比前一天读书小,则说明读数有问题删除该记录;(6)求每个用户的用水量之和、平均值和标准差。(7)求每个用户周一到周七用水量的平均值,如下图所示:结果如下图所示:(8)合并记录,将总和、均值、方差和每周的的平均用水量合并到一个表中,通过简单的 SQL 语句便可以完成,UPDATE USER_VAL A, USER_WEEK B- SET A.AVG_SUN=B.AVG_WEEK - WHERE A.C

4、ST_ID=B.CST_ID AND B.WEEK=7; 结果如下图所示:1.2 聚类分析K-means:k-means 算法接受参数 k ;然后将事先输入的 n 个数据对象划分为 k 个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象” (引力中心)来进行计算的。K-means 算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一。K-means 算法的基本思想是:以空间中 k 个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。假设

5、要把样本集分为 c 个类别,算法描述如下:(1)适当选择 c 个类的初始中心;(2)在第 k 次迭代中,对任意一个样本,求其到 c 个中心的距离,将该样本归到距离最短的中心所在的类;(3)利用均值等方法更新该类的中心值;(4)对于所有的 c 个聚类中心,如果利用(2) (3)的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。该算法的最大优势在于简洁和快速,综上所述,K-means 可以对用户的用数量进行聚集。(1)通过 Weka 打开数据,通过下图可以看出大部分用户的用水频率是相差不大的,少数用户用水频率较高,达到 99.98%,少数用户用水频率较低,个别用户基本不用水。(2)在 Clus

6、ter 选项卡里选择 SimpleKmeans,设置参数numClusters 为 4,并且忽略到其它属性,点击“Start”,得到如下结果。从图中可以看出 Cluster3 中的用户用水频率较高,说明其用水是比较规律的,Cluster1 用水频率较低,说明是基本不用的,Cluster0 是一段时间用,一段时间不用的,Cluster2 是偶尔用一下的。(3)用户聚类分组结果如下图所示:1.3 用户用水规律分析数据库中有很多 CXD_USAGE 为 0 的用户,和每天用水量较大的用户,由于是分析用户整体的用水规律,所以这里只对正常用户的用水情况进行分析。时间是对用户用水规律分析的重要因素,所以这

7、里以周、年对用户进行分析。(1)对原数据进行清洗,取出不符合规律的数据。然后求出每个用户,每周一到周七的平均用数量,过程如下:数据如下图所示:(2)使用 K-Means 算法进行聚类分析,设置 K=7,结果如图所示,从图中可以看出,Cluster3 每周用水量较大,Cluster4 每周用水量偏小。(4)随机抽取 30 个用户对其每周用水量的均值进行分析,从图中可以看出,用户周六、周日用水量相对偏大,周五用水量相对偏低。1.3 用水预测(1)用户每天用水预测通过上面聚类分析,发现 Cluster3 中用户用水是比较规律的,所以选取 Cluster3 中数据集作为测试样本。操作如下: a.读取数

8、据b.转换为时间序列c.user1、user2、user3 时间序列图像分别如下图所示:d.从上面分析,整个曲线处于大致不变的水平,且随机变动在整个时间序列范围内也可以 认为是大致不变的,所以该序列可以大致被描述为一个相加模型,因此我们可以使用简单 指数平滑法进行预测。我们采用 R 中的 HoltWinters()函数,为了能够使用 HoltWinters 中 的指数平滑,我们需要进行参数设置:beta=FALSE 和 gamma=FALSE,预测结果如下图:e. 以上三张图可以看出 User1、User2、User3 的 alpha 参数的估计值约分别为 0.1370064、0.067241

9、79、0.05665951,User2、User3 非常接近 0,说明该序列比较平 稳。 f.画出预测值和实际值,效果如下图所示:从之前的 alpha 和上图,可见我们预测的过于平滑,效果并不好,所以接下来使用 ARIMA 对未来一周用水量进行预测通过以上步骤得到三个模型,分别为 ARIMA(2,0,1),ARIMA(0,0,1),ARIMA(2,0,2), forecast 使用以上三个模型对未来一周用水量进行预测:User1 未来 7 天实际用水量为 0.252, 0.245, 0.256, 0.242, 0.244, 0.210, 0.261User3 未来 7 天实际用水量为 0.45

10、2, 0.465, 0.506, 0.342, 0.486, 0.520, 0.36805101520-0.20.20.61.0LagACFSeries user1forecast$residuals从上可以看出,预测误差即残差基本是不自相关。因为上图中在滞后 1-20 阶(lags 1- 20)中样本自相关值都没有超出显著(置信)边界。1) 再利用 LB 检验,验证有没有确切地信息显示此模型不合理:从上看,p 为 0.19,基于上面两个检测,所以我们推断在滞后 1-20 阶(lags 1-20)中 没有明显证据说明预测误差是非零自相关的。1) 为了调查预测误差是否是平均值为零且方差为常数的正态分布(服从零均值、方差不变的正态分布) ,我们可以做预测误差的时间曲线图和直方图(具有正态分布曲线)直方图:观察上图可见,预测的误差呈现均值为 0 ,方差恒定的正态分布(服从零均值、方 差不变的正态分布) ,那么对于用户用水数据的预测,ARIMA 是可以提供非常合适预测的 模型。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号