为什么在K近邻算法中降低K值会增加复杂度?

在我的教科书的摘录中提到,当运行这个算法时,降低K的值实际上会增加复杂度,因为它需要进行更多的“平滑”操作。

谁能解释一下这是为什么吗?

我的理解是,在1NN中,你输入训练集。你在测试集上进行测试。假设你的测试集中只有一个点。它会找到训练集中与之最接近的一个点,并返回这个点的数值。

这难道不比在3NN中找到三个最接近的点、将它们的数值相加并除以三更简单吗?

我误解或忽略了什么?


回答:

当我读到这个公理时,我也曾有过同样的怀疑时刻;一个数值更高的参数却能降低复杂度,这乍一看似乎有点违反直觉。

为了对此有一个直观的理解,让我们比较一下1近邻训练模型和N>>1近邻模型。我们使用一个简化的二维图(两个特征的数据集)进行二元分类(每个“点”都有一个类别或标签,要么是A,要么是B)。

在1近邻模型中,训练集中的每个样本都有可能是预测类别A或B的区域中心,而它的多数邻居可能是预测另一个类别的区域中心。你的图表可能看起来像是那些民族、语言或宗教在世界某些地区(如巴尔干或中东)深度交织的地图:小块的复杂形状和交替的颜色,没有明显的逻辑,因此“高复杂度”。

1-nearest neighbour

如果你增加k,预测每个类别的区域将变得更加“平滑”,因为是k个最近邻居中的多数决定了任何一点的类别。因此,区域的数量会减少,尺寸会增大,形状可能会更简单,就像同一世界区域的国家边界政治地图一样。因此“低复杂度”。

k-nearest neighbours

(直觉和来源来自这个课程。)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注