如何使用时间戳进行分类?

数据挖掘 机器学习 分类 时间序列 回归
2022-02-01 20:00:38

我的数据由事件为 时的条目组成True,即火车道口停止时。所以我会在一天之内有这样的条目(只是例子):

start,end,interval-length

10:43:02,10:46:02,180, 10:49:06,10:51:06,120

状态当然True是这些条目的状态,一天中未记录的时间是状态为 的时间False,也就是可遍历的时间。(但是我有一种强烈的感觉,我应该明确地填写这些时间,以便记录完整的 24 小时周期)

提供的数据是一个时间序列,我希望以此为基础对未来几天做出预测。我希望能够问“过境点下降的可能性有多大t, 天d?” (第二个参数很重要,因为我将有 7 个不同的模型,由于一周内不同的火车交通时刻表,一周中的每一天一个),考虑到之前观察到的时间。

这当然需要考虑到事件发生时,它们有一定的长度(如我的数据所示)。这本质上不是一个分类问题,因为我也对预测的置信度感兴趣,这不像获取构建模型的性能参数那么简单。假设虽然这可能是解决问题的一种有前途的方法,但我如何建立一个模型,以便一天中的晚些时候不会错误地偏向它?

考虑一些数据集的简单示例,其中天数表示为索引号 1-7。一个无监督的分类算法会偏向于猜测更多的星期六和星期日,因为它们是更高的数字(在这种情况下,解决方案是有 7 个不同的列,每个列都有布尔值 - 但我不能做任何类似的事情在我的情况下)。我希望这个例子能解决我的问题。

1个回答

不详细了解您的数据,我的直觉是您可以进行虚拟(一种热)编码。你可以在(比如说)10 分钟内分割每一天。间隔x(144 列)并附上标签(上/下)y. 每个时间间隔x将是一个虚拟编码列(真/假)。

该模型将是一个二元分类(逻辑),如:

y=β0+β1x1+...+βnxn+u.

如果您有足够的天数,这可能是一个合理的预测模型。很可能,一些虚拟编码x无关紧要。所以检查 Lasso 模型可能是值得的,其中一些(不是很有帮助x) 被缩小或自动从模型中排除。

https://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html

基于相同的逻辑,您还可以检查 boosting,例如 lightGBM 来进行分类。