一个月中的哪一天可以像其他循环变量一样编码吗?

扎眼的阳光 python 198

原文标题Can the day of the month be encoded similarily to other cyclical variables?

我正在使用 Python 中的时间序列数据来查看诸如一天中的时间、一个月中的一天和一年中的月份之类的变量是否会影响健身房的出勤率。我已经阅读了使用正弦和余弦循环编码时间序列数据的内容。我想知道你是否可以在一个月的某一天做同样的事情。我问的原因是,与一年中的月数或一周中的天数不同,一个月中的天数是可变的(例如,二月有 28 天,而三月有 31 天)。有什么办法可以处理吗?

这是一个描述循环编码含义的链接:https://ianlondon.github.io/blog/encoding-cyclical-features-24hour-time/

本质上,这就是说,当您进行机器学习时,您不能只将小时转换为一系列值,例如 1、2、3、…、24,因为这意味着第 24 小时更远(从欧几里得几何的角度来看)从第 1 个小时开始,而不是第 1 个小时从第 2 个小时开始,这是不正确的。循环编码(为每个小时分配正弦和余弦值)允许您表示第 24 小时和第 2 小时与第 1 小时等距的事实。

我的问题是我不知道这种周期性转换是否会在一个月内持续几天,因为不同的月份可能有不同的天数。

原文链接:https://stackoverflow.com//questions/71919670/can-the-day-of-the-month-be-encoded-similarily-to-other-cyclical-variables

回复

我来回复
  • tripleee的头像
    tripleee 评论

    您可以通过将每个月划分为 2π 弧度来实现这一点;那么在 28 天的月份中,一天是 0.2234,而在 31 天的月份中,一天是 0.2026。

    这显然引入了一种偏差,即较短的月份似乎占用的时间与较长的月份一样多。但它会满足你的要求。如果您仅使用此指标来规范化单个特征,那应该是无关紧要的,并且可以让您实现既定目标。

    如果您有比一天更精细的时间点,您显然可以并且可能应该将它们标准化为相同的投影。

    2年前 0条评论