在神经网络模型中使用标题

数据挖掘 神经网络 预处理 数学
2022-02-17 06:57:00

我正在研究一个预测模型,我必须根据船的实际坐标和航向(罗盘方向)找出船的目的地:

In[8]: X.head()
Out[8]: 
   latitude  longitude     heading
0  0.094700   0.094700  332.398791
1  0.090828   0.090828  197.320172
2  0.085800   0.085800  140.537550
3  0.081676   0.081676  128.891893
4  0.077804   0.077804  129.881418

纬度和经度以度为单位(此处归一化),航向以度为单位。

输出变量是一个介于 1 和 n 之间的整数(有 n 个可能的目的地)。

我的问题是让神经网络了解航向差异的工作原理:5 度和 15 度与 5 度和 355 度一样接近,因为我们必须在产生差异后使用模 360:

In[11]: diff_heading(355, 5)
Out[11]: 10
In[12]: diff_heading(15, 5)
Out[12]: 10

当我将坐标和航向放入基本的多层感知器神经网络中而不对航向进行任何预处理时,我得到了一些可接受的结果。但我很确定如果网络能够考虑到这个航向问题,情况会更好。目前,网络必须将权重分配给指示 0 度和 360 度相反的航向,这是错误的。

您对如何处理数据或如何改变网络结构来实现这一点有任何想法吗?

1个回答

你可以打破标题(θ) 成组件:sin(θ)cos(θ),这将消除模数问题。