0


大数据实战项目 -- 家用热水器用户行为分析

一、****实验内容

(一)背景与挖掘目标

居民在使用家用热水器的过程中,会因为地区气候、不同区域和用户年龄性别差异等原因形成不同的使用习惯。家电企业若能深入了解其产品在不同用户群中的使用习惯,从而产商便可以对不同的客户群提供最适合的个性化产品,制定相应的营销策略,开拓新市场。定义挖掘目标如下:

1.根据热水器采集到的数据,划分一次完整的用水事件;

2.在划分好的一次完整用水事件中,识别出洗浴事件。

(二)考核内容和要求

1.对热水器用户的历史用水数据进行选择性抽取,构建专家样本;

2.数据探索分析与预处理,包括探索水流量的分布情况,删除冗余属性,识别用水数据的缺失值,并对缺失值进行处理,然后根据建模的需要进行属性构造等。最后根据以上处理,对热水器用户用水样本数据建立用水事件时间间隔识别模型和划分一次完整的用水事件模型,接着在一次完整用水事件划分结果的基础上,剔除短暂用水事件、缩小识别范围等;

3.在步骤2得到的建模样本数据基础上,建立洗浴事件识别模型,对洗浴事件识别模型进行模型分析评价;

4.应用步骤3形成的模型结果,并对洗浴事件划分进行优化;

5.调用洗浴事件识别模型,对实时监控的热水器流水数据进行洗浴事件自动识别;

6.画出热水器用户用水事件划分与识别案例的总体流程图。

(三)数据挖掘步骤

1.数据探索分析

在热水器的使用过程中,热水器的状态会经常发生改变,比如开机和关机、由加热转到保温、由无水流到有水流、水温由50℃变为49℃等。而智能热水器在状态发生改变或者水流量非零时,每两秒会采集一条状态数据。由于数据的采集频率较高,并且数据来自大量用户,数据总量非常大。本案例对原始数据采用无放回随机抽样法抽取200家热水器用户从2014年1月1日至2014年12月31日的用水记录作为原始建模数据。由于用户不仅使用热水器来洗浴,而且包括了洗手、洗脸、刷牙、洗菜、做饭等用水行为,所以热水器采集到的数据来自各种不同的用水事件。

热水器采集的用水数据包含12个属性:热水器编码,发生时间,开关机状态,加热中,保温中,有无水流,实际温度,热水量,水流量,节能模式,加热剩余时间和当前设置温度。其解释说明如下表1所示。

表1 热水器数据属性说明

2.数据预处理(属性规约/划分用水事件/确定单次用水事件时长阈值/属性构造/筛选候选洗浴事件)

3.模型构建

4.模型检验

(四)扩展思考实验

提高模型识别精确度,包括进一步优化的各种方法。

二、实验要求

1.实验完成度。 按要求独立完成实验准备、程序调试、实验报告撰写。

2.实验内容。代码功能完善、可正常运行,测试数据正确,分析正确,结论正确。

3.实验报告。内容齐全,符合要求,包括代码的规范性、注释的完整性、算法和模型的优化程度等。

4.总结。对实验过程遇到的问题能初步独立分析,解决后能总结问题原因及解决方法,有心得体会。

三、实验过程、详细步骤

3.1 数据探索性分析

3.1.1 探索分析热水器的水流量情况

探索分析热水器的水流量状况,其中“有无水流”和“水流量”属性最能直观体现热水器的水流量情况,对两个属性进行探索性分析,代码如下:

#导入相关库
import pandas as pd
import matplotlib.pyplot as plt
#输入数据文件
inputfile='./数据集/demo/data/original_data.xls'
#读取文件
data=pd.read_excel(inputfile)
#查看有无水流的分布
#数据提取
lv_non=pd.value_counts(data['有无水流'])['无']
lv_move=pd.value_counts(data['有无水流'])['有']
#绘制条形图
fig=plt.figure(figsize=(6,5))     #设置画布大小
plt.rcParams['font.sans-serif']='SimHei'     #设置中文显示
plt.rcParams['axes.unicode_minus']=False
plt.bar(x=range(2), height=[lv_non,lv_move], width=0.4, alpha=0.8, color='skyblue')
plt.xticks([index for index in range(2)],['无','有'])
plt.xlabel('水流状态')
plt.ylabel('记录数')
plt.title('不同水流状态记录数')
plt.show()
plt.close()
#查看水流量分布
water=data['水流量']
#绘制水流量分布箱型图
fig=plt.figure(figsize=(5,8))
plt.boxplot(water,
            patch_artist=True,
            labels=['水流量'],  #设置x轴标题
            boxprops={'facecolor':'lightblue'})  #设置填充颜色
plt.title('水流量分布箱型图')
#显示y坐标轴的底线
plt.grid(axis='y')
plt.show()

由图3-1-1不同水流状态的记录条形图,无水流状态的记录很明显比有水流状态的记录要多。

图3-1-1 不同水流状态的记录条形图

由图3-1-2水流量分布箱型图可知,箱体贴近0,说明无水流量的记录较多,水流量的分布与水流量的状态的分布一致。

图3-1-2水流量分布箱型图

3.2 数据预处理

3.2.1 属性归约

由于热水器采集的用水数据属性较多,本案例做以下处理。

因为分析的主要对象为热水器用户,分析的主要目标为热水器用户洗浴行为的一般规律,所以“热水器编号”属性可以去除;因为在热水器采集的数据中,“有无水流”属性可以通过“水流量”属性反映出来,“节能模式”属性取值相同均为“关”,对分析无作用,所以可以去除。

删除冗余属性“热水器编号”、“有无水流”、“节能模式”。

标签: 大数据

本文转载自: https://blog.csdn.net/m0_64090099/article/details/139095322
版权归原作者 七七四十九077 所有, 如有侵权,请联系我们删除。

“大数据实战项目 -- 家用热水器用户行为分析”的评论:

还没有评论