时间序列数据多类分类

数据挖掘 分类 时间序列 多类分类 多标签分类
2022-02-23 11:19:47

这是一个非常普遍的问题,因为我仍处于机器学习的学习阶段。我有一些关于有问题的仪表的实用数据。即使数据是“时间序列”,我相信我可以对数据进行多类分类(查看 3 个标签),但在我继续走这条路之前想听一些意见。

我一直在做一些特征工程来导出其他数据点来帮助分类过程(下面的例子是列“Error1”和“Error2”)。

仪表分为 2 类,估计问题 =“1”,非估计问题 =“0”。

我的数据集大致如下所示(我还有其他几个错误功能):

 Estimated     Meter ID          Date             DaysInDuration    Error1  Error2
     0            BBA         11/19/2019               31              0       0
     0            BBA         12/19/2019               62              1       0
     0            BBA         12/19/2019               92              1       0
     1            JJL         11/2/2019               120              1       0
     1            JJL         12/2/20019              150              1       1    
     1            JJL         1/20/2020               180              2       2    

我想尝试的是使用可以处理多类分类(可能是决策树)的分类模型,并产生如下输出:

 Estimated     Meter ID          Date             DaysInDuration    Error1  Error2   Classification Label   
     0            BBA         11/19/2019               31              0       0            1
     0            BBA         12/19/2019               62              1       0            1
     0            BBA         12/19/2019               92              1       0            2
     1            BBA         11/2/2019               120              1       0            3
     1            JJL         12/2/2020                30              1       1            1
     1            JJL         1/20/2020                60              2       2            1

Labels Meaning = "1" = low risk issue/ "2" = medium risk issue/ "3" = high risk issue

该模型将根据仪表在“DaysInDuration”列中的天数以及“Error1”和“Error2”中的计数错误数对“1”、“2”或“3”进行分类列。

在我看来,分类仍然有效,包括训练测试拆分,因为分类更多来自其他数据点,而不是典型时间序列问题中的实际顺序依赖性。

1个回答

你的时间间隔似乎不规则。对于时间序列的大多数示例,我们以固定的时间间隔进行观察,例如每季度的 GDP。相反,您可以创建一个常规的机器学习模型。如果您认为存在某种时间组件,您不希望 1 月数据对 11 月数据进行预测,那么您可以手动创建交叉验证分区,而不是随机创建它们。

但是,您根据低、中或高 DaysInDuration 预测 1、2 或 3。分类器不会知道低和高比低和中相距更远。相反,您可以创建一个回归模型,将 DaysInDuration 预测为您的目标特征。一旦有了预测(例如 31),无论预测是低、中还是高,您都可以采取相应的行动。

最后,您将无法使用 DaysInDuration 作为预测 Classification_Label 的特征,因为它每次都会为您提供完美的答案。那将是目标泄漏。