机器学习小组作业题目机器学习作业之大用户用水量分析作者姓名 作者学号 指导教师 学科专业 所在学院 提交日期 大用户表数据处理首先对大用户表进行合并排序,同时对每1000条数据(因为kettle是以1000条数据导入一次)进行一次简单去重,减少之后去重数据量接着,我们对数据进行过滤,将null值去除后排序去除重复数据(本来是想优化的,也即是不去掉数据而是将数据修改成符合前后数据情况的,但是发现实现有点困难)。这时原来1500万条数据只剩下816万条数据了。接着是计算临近时间的用户的用水量这时对用水量再次进行一次过滤,将用水量为负和正累积流量为负的值去掉然后除杂(这里使用的是增量和标准差以及单位时间内用水量来去杂)除杂主要是以网络上找到的资料进行的除杂,我用增长量、每天使用水量、按天算出的标准差等值来进行数据进一步过滤处理,从不同的维度来进行数据的清洗。综上所述,清洗数据主要是以null、负值、异常数据(判断是以网络上提供的数据进行的。主要是用增长量、每天用水量、用户按天算出的用水标准差等)。在这里,由于用户的时间间隔不稳定,有的是10分钟,有的只有1秒,还有的是4个小时,这里统一了时间间隔是1天,也即是说我将1天作为统计量来统计用户的每日用水量和标准差(标准差是用来看此用户每日是否用水偏差很大,然后便于过滤数据的),之后我再以星期几、月份、季度等划分用户用水情况,进一步寻找用户的用水规律,在总表中,我将用户的id、用水总量、用水平均值、用水标准差、用水时间占有率、周几的用水平均量、月份的用水平均量、季度的用水平均量作为字段,这样方便我更好的了解用户的用水规律,以及划分用户情况,同时也可以通过用户总用水量的标准差来判断用户用水是否不规律或者用问题,从而进一步排除问题数据。这里我本来是想将数据时间清洗的更小,通过规律时间(比如都为4小时)来对每天的用水规律进行分析的,但是由于数据间隔问题太大,所以我用了天来进行用户数据分隔,下面是用户各个时期的用水统计表:按天来划分的用水数据按周一、周二……来划分的用水数据按月份来划分的用水数据按季度来划分的用水数据总表:通过用户id来划分的用水数据下面先进行用户分类用户分类实际上用很多种方法,一种是按照每天用水量来分类,这样我们可以通过聚类分出四种用户:从上图weka分析可以看出,大用户的用水量上,小水量的用户占了50%左右,这也就是说,绝大多数用户的用水还是有限制的,从平均值和标准差上看,大多数用户偏离程度不高,也就意味着他们用水按天来算的话是有规律的,比较稳定的。由于之前求得值中存在很多表头读数问题,所以在这里也许也会影响情况。下图是用sum去聚类的效果,从这里可以看出,以用水量来聚类会看出大用户之间也存在着很大的用水量差异。下面的是用水量与偏差之间存在的聚类情况,从这里看出,大多数用水量大的用户,他的每日用水偏差也很大,这里存在着散点,这说明之前统计的数据过滤了,但是还有很多不好的数据,不然的话聚类会集中点,也不会有很大的偏差值,这是由于统计的不规律性决定的,首先,统计的时间间隔不是规律的,由于数据太大,之前的过滤主要是以删除为主,而不是使用的添加修改为主,不然的话数据处理完会很好,其次,用户的用水量统计问题很多,没有一个统一的标准去去除数据,导致一些之前就有问题的数据没有被过滤掉,从而保存在了数据中,还有就是用户用水的不规律性,这之后会通过按日统计的表进行说明。我在数据的统计时,还加入了用户用水时间百分比(按天统计),下图就是按照用水百分比进行的聚类情况(纵轴是表示的用户不用水的日占总天数的比例),这在一定程度上将用户分为了经常用水、有时用水有时不用水、不经常用水,这里面我看了171条数据,发现最多的是经常用水的人,占了65%以上,也即是有112个人是一直在用水的(当然,由于水头度数等外部情况引起的并没有什么能够确定是因为这些情况的数据都保留了,所以可能会有些不准),这与下图的第一个聚类情况接近,所以这个聚类情况基本符合事实,当然,最好是能够将完全不用水的给分出来,这样更好的去进行分类,准确度也会更高点。从下图我们可以看出,大用户在用水方面还是很频繁的,不会像小用户那样出现很多经常不用水的情况,当然,这些不用水的用户我们还需要分析的,这需要在按天排序的表中进行,下面会给出详细说明的。用水规律分析由于时间间隔和表头以及时间段用水规律统计不合理,数据不能够进行更进一步的优化,所以我做了这几个用水规律统计,按天来进行用户规律分析、按星期进行用户用水规律统计、按月进行用户用水规律分析、按季度进行用户用水规律统计。下面从大到小一次来进行分析:首先来看看季度用水规律图:通过使用excel表来看171个用户季度用水量情况发现,第2、3季度用水量普遍高于别的季度情况,
大用户用水量分析 来自淘豆网m.daumloan.com转载请标明出处.