KNN 能比其他分类器更好吗?

Can KNN be better than other classifiers?

众所周知,有些分类器具有训练或学习步骤,例如 SVM 或随机森林。另一方面,KNN没有。

KNN 能比这些分类器更好吗? 如果不是,为什么?

如果是,时间、方式和原因?

"In general kNN would not be expected to exceed SVM or RF. When kNN does, that says something very interesting about the training data. If many doublets are present i the data set, a nearest neighbor algorithm works very well."

我听到类似 Claudia Perlich 在此播客中所写的论点: http://www.thetalkingmachines.com/blog/2015/6/18/working-with-data-and-machine-learning-in-advertizing

我对为什么 RF 和 SVM 在一般情况下比 kNN 更好的直观理解:所有算法基本上都假设一些局部相似性,这样非常相似的样本就会被归类为相似的。 kNN 只能通过距离(或其他一些全局内核)选择最相似的样本。因此,可能影响 kNN 预测的样本将存在于欧几里得距离核的超球体内。 RF 和 SVM 可以学习局部性的其他定义,这些定义可以在某些特征上延伸得很远,而在另一些特征上则很短。此外,局部性的传播可能会占用许多学习到的形状,并且这些形状可能会因特征而异 space。

主要答案是是的,由于没有免费午餐定理的影响。 FLT 可以 loosley 表示为(在分类方面)

There is no universal classifier which is consisntenly better at any task than others

也可以(不是很严格)倒置

For each (well defined) classifier there exists a dataset where it is the best one

特别是 - kNN 是定义明确的分类器,特别是它与任何分布 一致 ,这意味着给定无限多的训练点它会收敛到最佳贝叶斯分隔符。

那么它能比SVM或RF更好吗?明显地!什么时候?没有明确的答案。首先,在监督学习中,您实际上通常只得到 一个训练集 并尝试拟合最佳模型。在这种情况下,任何模型都可能是最好的模型。当 statisticians/theoretical ML 尝试回答一个模型是否优于另一个模型时,我们实际上尝试测试 "what would happen if we would have ifinitely many training sets" - 因此我们查看分类器行为的预期值。在这种情况下,我们经常证明 SVM/RF 优于 KNN。但它并不意味着它们总是更好。这只是意味着,对于随机选择的数据集,您应该期望 KNN 工作得更糟,但这只是 概率 。因为你总是可以在彩票中获胜(无论赔率如何!)你也可以通过 KNN 总是获胜(只是要清楚 - KNN 比赢得彩票更有机会成为一个好模型 :-))。

具体例子是什么?例如,让我们考虑一个旋转异或问题。

如果真正的判定边界如上,而你只有这四点。显然 1NN 会比 SVM(带点、多边形或 rbf 内核)或 RF 好得多。训练点越来越多应该也是这样。