家用热水器用户行为分析与事件识别

发布时间 2023-03-23 15:57:46作者: 龙尧

家用热水器用户行为分析与事件识别

依据BP神经网络算法构建洗浴事件识别模型,进而对不同地区的用户的洗浴事件进行识别,然后根据识别结果比较不同客户群的客户使用习惯,以加深对客户需求的理解等。从而厂商便可以对不同的客户群提供最适合的个性化产品,改进新产品的智能化研发并制定相应的营销策略。

目标

依据某热水器生产厂商提供的数据:

  1. 根据热水器采集到的数据,划分一次完整用水事件。
  2. 在划分好的一次完整用水事件中,识别出洗浴事件。

步骤

  1. 对热水器用户的历史用水数据进行选择性抽取,构建专家样本。
  2. 对步骤1形成的数据集,进行数据探索分析与预处理,包括探索水流量的分布情况,删除冗余属性,识别用水数据的缺失值,并对缺失值进行处理,然后根据建模的需要进行属性构造等。最后根据以上处理,对热水器用户用水样本数据建立用水事件时间间隔识别模型和划分一次完整的用水事件模型,接着在一次完整用水事件划分结果的基础上,剔除短暂用水事件、缩小识别范围等。
  3. 在步骤2得到的建模样本数据基础上,建立洗浴事件识别模型,对洗浴事件识别模型进行模型分析评价。
  4. 应用步骤3形成的模型结果,并对洗浴事件划分进行优化。
  5. 调用洗浴事件识别模型,对实时监控的热水器流水数据进行洗浴事件自动识别。

数据探索性分析

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

%matplotlib inline

input_path = '../data/original_data.xls'
data = pd.read_excel(input_path)
#查看有无水流的分布,绘制条形图
lv_non = pd.value_counts(data['有无水流'])['']
lv_move= pd.value_counts(data['有无水流'])['']

fig = plt.figure(figsize=(6,5))
plt.bar(range(2),height=[lv_non,lv_move],width=0.4,alpha=0.8,color='skyblue')
plt.xticks([index for index in range(2)],['',''])
plt.rcParams['font.sans-serif'] = ['SimHei']  #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  #用来正常显示负号
plt.xlabel(u'水流状态')
plt.ylabel(u'记录数')
plt.title(u'不同水流状态记录数(3144)')