机器学习时间特征处理:循环编码(Cyclical Encoding)与其在预测模型中的应用
做过电力负荷预测或者交通预测朋友,大概率都处理过时间特征。这里最直接的做法通常是把时间(比如分钟或小时)直接扔进模型里。这看起来逻辑自洽,但存在这一个大坑,就是“午夜悖论”。
比如说你的模型面对两个时间点:23:59(一天的第1439分钟) 和 00:01(一天的第1分钟)。在我们的认知里,这俩只差两分钟,但在模型的逻辑里1439 和 1 可是不一样的。大多数机器学习算法(线性回归、KNN、SVM 甚至神经网络)在处理数值时,默认遵循线性逻辑:数值越大,代表的量级越高。它们理解不了“时间是循环的”这个概念。对它们来说午夜不是终点回到起点的闭环,而是一个断崖。
这就是为什么你加了时间特征,模型却在日期变更线附近表现拉胯的根本原因。

浙公网安备 33010602011771号