我正在研究一个预测模型,我必须根据船的实际坐标和航向(罗盘方向)找出船的目的地:
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 度相反的航向,这是错误的。
您对如何处理数据或如何改变网络结构来实现这一点有任何想法吗?