我有一个具有二进制分类的数据集,我在它上训练一个kNN算法和一个支持向量机算法。
在测试集上,当使用kNN时,我得到了大约75%的错误,但是使用支持向量机时,只有大约20%的错误。
这能告诉我关于数据集的什么?
发布于 2017-11-27 18:53:42
考虑到我们还没有采用任何预处理步骤,那么首先要想到的是,支持向量机在高维情况下工作得更好,而kNN则受到维数的诅咒,因此我们的数据集应该具有较大的维数,特别是与实例数相比。因此,我们有一个非常稀疏的空间,在这里,点可以被一个超平面分开,而k-最近的邻居提供的实际类信息很少。
注意,我们应该考虑的是,如果测试的大小遵循经验法则(10%-20%),并且我们没有重复使用多个训练测试分裂来获得一系列可能的错误,我们就不知道了。我们可能有一个非常不幸的测试集..。
最后,我们应该考虑到,如果班级是不平衡的,那么我们的知识是很少的。一个高度不平衡的类可能导致大多数分类属于多数类,而支持向量机( SVM )则会更糟,因为它会试图找到一个分离类的超平面,从而产生更大的错误。然而,在这里,我们有相反的情况。因此,我们应该假设类或多或少是平衡的,但它们只能在一个(或几个)维度中分离,而在其他维度中则几乎是混合的。由于knn没有为每个维度学习任何权重,它假设最近的是正确的点,而svm已经做出了明确的决定,任何超出这条线的东西都应该被分类为这样。

https://datascience.stackexchange.com/questions/25152
复制相似问题