machine-learning - k-NN以及关于k值和决策边界的一些问题

标签 machine-learning classification nearest-neighbor pattern-recognition knn

我遇到了一些让我困惑的事实。

对于 k-NN 分类器:

I) why classification accuracy is not better with large values of k.

II) the decision boundary is not smoother with smaller value of k.

III) why decision boundary is not linear?

IV) why k-NN need not explicitly training step?

任何例子或想法都将非常感谢我简短地了解这个事实,或者为什么这些是正确的?

最佳答案

I) why classification accuracy is not better with large values of k.

因为 kNN 的思想是,一个不可见的数据实例将与其最近的邻居具有相同的标签(或者在回归的情况下相似的标签)。如果您采用大量邻居,则您将采用相距较远的邻居来获取较大的 k 值,这是不相关的。

例如,假设您想要判断某人住在房子里还是公寓楼里,正确答案是他们住在房子里。如果您选择一个小k,您将看到该人附近的建筑物,这些建筑物很可能也是房屋。如果您采用较大的 k,您还会考虑附近区域之外的建筑物,其中也可以是摩天大楼。

kNN 有一个变体,它会考虑所有实例/邻居,无论距离有多远,但距离越远的实例/邻居的权重就越小。这称为距离加权 knn

II) the decision boundary is not smoother with smaller value of k.

为什么顶点数较少的多边形通常不如顶点数较多的多边形更平滑?考虑更多的邻居可以帮助平滑决策边界,因为它可能会导致更多的点进行类似的分类,但这也取决于您的数据。

III) why decision boundary is not linear?

因为用于查找 k 个最近邻的距离函数不是线性的,因此它通常不会导致线性决策边界。

IV) why k-NN need not explicitly training step?

因为没有什么可以训练的。 kNN 不会构建数据模型,它只是假设空间上靠近的实例是相似的。您不需要为此进行任何培训,因为实例在空间中的位置就是您作为输入给出的位置。

关于machine-learning - k-NN以及关于k值和决策边界的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29339834/

相关文章:

python - 从 Scikit Learn 中保存的训练分类器做出预测

python - 如何使用限制性数据集在我自己和其他人之间创建 Keras 人脸分类器?

python - NLTK 确定性衡量标准?

r - R 中逻辑向量的最近索引

nearest-neighbor - 如果大多数评级为 5/被动过滤建议,KNN 是否有值(value)

c++ - 在 KD 树中寻找最近的邻居

python - 如何以干净有效的方式在pytorch中获得小批量?

r - 使用 RNN 预测多元时间序列

python - SciKit Learn、Keras 或 Pytorch 的差异

machine-learning - 在 Keras 中保存迁移学习模型的正确方法