2016-04-23 27 views
-1

我有一个数据集,一个大的数据集。我使用T-SNE绘制数据,我无法找到线性可分的决策边界,因为我无法找到它的决策边界。支持向量机算法是我的模型有效的

我试过SVM,并希望它可以工作,如果它能够在更高维度上分离超平面。

目前我的训练准确率达到了94%,但之后我收到了50%的测试误差,当我将数据集的大小增加了20,000条时,训练数据的准确性增加到了65%(这也是,交叉验证或多或少相同),训练的准确性仍然是93%。 我的问题是,我实际上是否准确解决了这个机器学习问题?还是我在一个错误的方向,如果可能的话,请给我一些关于解决问题的实用方法的链接。

回答

0

看来你有一个overfitting的数据有问题。基本上,您的SVM正在记忆训练数据,并且无法正确预测之前未见过的新数据。您可以尝试使用较小的C来减少过度配合。

我认为一般来说很难说SVM是否是解决问题的正确方法。有no free lunch theorem,它假设可能没有一个机器学习算法来解决所有问题,我目前还不知道有任何方法将问题映射到他们的最佳算法。

您可能应该使用SVM修复当前方法中的明显错误,然后研究它在哪里以及为何失败。如果你这样做了,你可能会选择另一种算法来解决这些缺点。

+0

感谢您的信息siestschie。我将尝试向当前问题添加更多数据,然后尝试使用sklearn库的网格搜索。将会看到svm如何执行。根据我的看法,SVM在当前情况下是否表现良好,或者在了解导致以下问题的原因之后切换到不同的算法。感谢您的建议。 – Hero