我为我正在执行的概念验证研究煞费苦心地收集数据。数据由 40 个不同的主题组成,每个主题有 12 个以 60 个时间间隔测量的参数,1 个输出参数为 0 或 1。所以我正在构建一个二元分类器。
我事先知道输入参数和输出之间存在非线性关系,因此贝叶斯分类器的简单感知器将无法对样本进行分类。经过初步测试,这一假设被证明是正确的。
因此我去了神经网络,我希望结果很好。大约 1-5% 的误差通常是结果。训练是通过使用 70% 作为训练和 30% 作为评估来完成的。通过模型再次运行完整的数据集(100%)我对结果非常满意。下面是一个典型的混淆矩阵(P = 正,N = 负):
P N
P 13 2
N 3 42
所以我很高兴,并且对于我使用 30% 进行评估的想法,我确信我不适合噪音。
因此,我决定使用 SVM 进行双重检查,但 SVM 无法收敛到一个好的解决方案。大多数时候,解决方案都很糟糕(比如 90% 的错误......)。也许我不完全了解 SVM 或者实现不正确,但这让我很困扰,因为我认为当 NN 提供一个好的解决方案时,由于它们的最大边距超平面,SVM 在分离数据方面大部分时间都更好。
这说明我的结果是什么?我适合噪音吗?我怎么知道这是否是正确的结果?
我使用 Encog 进行计算,但 NN 结果与我制作的本土 NN 模型相当。