我正在尝试使用 sklearn 来预测代表旋转的变量。由于在旋转极端情况下从 -pi 到 pi 的不幸跳跃,我认为更好的方法是使用复数作为目标。这样,从 1+0.01j 到 1-0.01j 的错误就不会那么具有破坏性了。
我找不到任何描述 sklearn 是否支持复数作为分类器目标的文档。从理论上讲,距离度量应该可以正常工作,因此它至少应该适用于一些回归算法。
谁能建议我如何让回归算法以复数为目标进行操作?
我正在尝试使用 sklearn 来预测代表旋转的变量。由于在旋转极端情况下从 -pi 到 pi 的不幸跳跃,我认为更好的方法是使用复数作为目标。这样,从 1+0.01j 到 1-0.01j 的错误就不会那么具有破坏性了。
我找不到任何描述 sklearn 是否支持复数作为分类器目标的文档。从理论上讲,距离度量应该可以正常工作,因此它至少应该适用于一些回归算法。
谁能建议我如何让回归算法以复数为目标进行操作?
几个回归器支持多维回归目标。只需将复数视为二维点。
到目前为止,我发现大多数分类器,如线性回归器,会自动将复数转换为实部。
然而,kNN 和 RadiusNN 回归器运行良好——因为它们对相邻标签进行加权平均,因此可以优雅地处理复数。
使用多目标分类器是另一种选择,但是我不想解耦 x 和 y 方向,因为当两个结果都接近 0 时,这可能会导致不稳定的解决方案,正如 Panic 上校提到的那样。
我将尝试其他具有复杂目标的分类器并在此处更新结果。
好问题。如何将角度转换为一对标签,即。x 和 y 坐标。这些是角度的连续函数(cos 和 sin)。您可以将单独的 x 和 y 分类器的结果组合成一个角度吗?$\theta = \sign(x) \arctan(y/x)$。但是,如果两个分类器都返回接近零的数字,则该结果将不稳定。