我有以下两个特征向量:
0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.2567 0.2567 0.0105 0.0105 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000
我们称第一个为A
,第二个为B
。A
已用于训练神经网络,如果再次将A
应用于神经网络,将得到以下输出:
1.0000 0.0000 -0.0000
但如果应用特征向量B
,将得到以下输出:
-0.2475 1.0524 0.5106
结果差异如此之大!这两个特征向量是相同的(除了零值的符号不同)。
回答:
任何模型在这种情况下都可能表现出这种行为。你的问题很宽泛,所以我只列出一些你应该考虑的事项。
- 数据归一化和缩放
- 检测过拟合
使用交叉验证方法(通常使用10折交叉验证)来检测是否存在过拟合:如果训练集上的准确率远高于测试集上的准确率,那么你就是在过拟合训练数据。
交叉验证还可以用来调整模型参数以获得最佳性能:每次调整后重新运行交叉验证过程即可。
- 解决过拟合
使用正则化通常可以解决过拟合问题。你可以使用多种正则化方法,因此你应该进行一些搜索。
获取更多数据不太可能彻底解决问题,通常也不值得花费时间。如果可以的话就去做,但这不是你可以依赖的解决过拟合问题的灵丹妙药。