【问题标题】:Circular data in machine learning algorithms机器学习算法中的循环数据
【发布时间】:2017-05-17 14:54:42
【问题描述】:
我有一个循环数据(HSL 的颜色分量色调),我需要在其中一种机器学习算法中将其用作预测器。
如何将其转换为常规连续变量?
为了澄清问题,假设我们有一个红色的对象。例如,预测器 hue 的值位于两个分开的范围 [0, 60] 和 [300, 359] 中。大多数机器学习算法都会找到预测变量的平均值。因此,平均值将位于 [150, 210] 范围内,指的是青色!这是因为色调是循环数据..
任何帮助将不胜感激!
【问题讨论】:
标签:
machine-learning
circular-dependency
circular-reference
hsl
【解决方案1】:
将单个数字循环数据分解为二维 x,y 或 cos0 / sin0 数据。
把时间想象成数据。
11:59.35... PM (14399) 距离上午 12:00 (00000) 仅一分钟
但算法将 14399.35.. 解释为远离 00000,而实际上它们应该接近
我建议的选项是将数据映射到单位圆中的点。
从这里开始,有两种方法可以转换数据。
从单位圆中获取数据的x,y坐标
前任。 14399.35 = [-0.01, 0.99]
00000.00 = [ 00.0, 1.00]
获取单位圆中各点相对于圆心的 sin/cos
前任。 14399.35 = [0.1,-0.9]
00000.00 = [0.89,-0.4]
因此我们得到的结果是循环数据现在具有可相互比较的值
注意:这些不是确切的值,它们只是为了演示