我一直在玩 SVM,偶然发现了一些有趣的东西。
这可能是我做错了,因此发表评论和澄清。
我有大约 3000 x 30 的数据集。
每个值都在 -100 到 100 的范围内。另外,它们不是整数。它们是浮点数。它们分布不均。
就像,数字是 -99.659、-99.758、-98.234,然后我们不会有像 -1.234、-1.345 这样的东西。
因此,即使范围很大,数据也会在某些点周围聚集,并且它们通常会因分数值而有所不同。
(我认为,从我的阅读和理解来看,这不应该在理想情况下影响 SVM 分类的准确性。如果我错了,请纠正我。请用是或否评论我是对还是错。)
我的分类标签是 0 和 1。
所以,然后我拿了一个 30 x 30 的测试数据并尝试测试我的 SVM。
当 kernel_function 为 mlp 时,我的准确率约为 50%。
在其他方法中,我只是得到 0 和 NaN 作为结果,这很奇怪,因为输出中没有 1,而且我不理解输出标签中的 NaN。
所以,mlp 基本上给了我最好的结果,而且也只有 50%。
然后,我将该方法用作“QP”,将“mlp”用作 kernel_function,代码已经运行了大约 8 个小时。我不认为,像 3400 x 30 这样小的东西应该花费那么多时间。
所以问题真的是,对于我拥有的数据,SVM 是不是一个错误的选择?(如上所述)。还是我遗漏了什么导致准确性显着下降?
另外,我知道输入数据并没有搞砸,因为我使用神经网络进行了测试,并且能够获得非常好的准确性。
有没有办法让 SVM 工作?因为,从我在互联网上读到的内容来看,在这个标签决定问题上,SVM 通常应该比神经网络更好。