我有一个时间序列数据集,其中包含每个单位随时间推移的产品能耗。它还包含单位尺寸,如型号,使用年限,产品版本等。
我们希望找到一致显示更高消费量的单位集群。
数据集如下所示:
EventDate, UnitID, energyConsumptionRate, Model, YearsOwned, SoftwareVersion
5/1/2018 100 103 M3 1 2.1
5/2/2018 100 42 M3 1 2.1
5/3/2018 100 78 M3 1 2.1
....
每天一个,该单位将报告一个事件。我应该从哪里开始?
-Ch
答案 0 :(得分:1)
Imho你可以通过有监督的学习来做到这一点,不需要无监督学习(=聚类)。
将功能Event Date
转换为number of days since start
,将每个unitID的最早日期视为第一天(此时此功能为0)。
将功能Model
和SoftwareVersion
转换为热门编码的分类功能。
标准化所有数字要素,使得值为[0,1]或[-1,1]范围内的浮点数或该值范围内的某些值。
制作一组所有unitID。
删除该组的10%并将其命名为"验证集"。
删除该套装的另外10%并将其命名为"测试套装"。命名剩余的80%"训练集"。
使用属于训练集中unitID
s的条目计算模型。如果您有至少10-100k条目,则使用神经网络;如果您的条目少于此值,则使用高斯过程。该模型将功能number of days since start
,Model
,YearsOwned
和SoftwareVersion
作为输入和目标来预测energyConsumptionRate
。
提前停止验证集(如果您使用NN)。
将结果模型应用于测试集中属于unitID
的所有条目。
这样做10倍,因此每个数据点都在test set
一次,而您的表格中包含来自步骤9
的基于测试集的模型预测涵盖每unitID
}。
查询以查找实际unitID
远远高于模特所说的所有energyConsumptionRate
。
你可能只需要一个非常小的模型,几乎没有自由参数。也许你也可以通过复杂的SQL查询和基本统计来实现你的目标,而不是使用机器学习。