在我的教科书的摘录中提到,当运行这个算法时,降低K
的值实际上会增加复杂度,因为它需要进行更多的“平滑”操作。
谁能解释一下这是为什么吗?
我的理解是,在1NN
中,你输入训练集。你在测试集上进行测试。假设你的测试集中只有一个点。它会找到训练集中与之最接近的一个点,并返回这个点的数值。
这难道不比在3NN
中找到三个最接近的点、将它们的数值相加并除以三更简单吗?
我误解或忽略了什么?
回答:
当我读到这个公理时,我也曾有过同样的怀疑时刻;一个数值更高的参数却能降低复杂度,这乍一看似乎有点违反直觉。
为了对此有一个直观的理解,让我们比较一下1近邻训练模型和N>>1近邻模型。我们使用一个简化的二维图(两个特征的数据集)进行二元分类(每个“点”都有一个类别或标签,要么是A,要么是B)。
在1近邻模型中,训练集中的每个样本都有可能是预测类别A或B的区域中心,而它的多数邻居可能是预测另一个类别的区域中心。你的图表可能看起来像是那些民族、语言或宗教在世界某些地区(如巴尔干或中东)深度交织的地图:小块的复杂形状和交替的颜色,没有明显的逻辑,因此“高复杂度”。
如果你增加k,预测每个类别的区域将变得更加“平滑”,因为是k个最近邻居中的多数决定了任何一点的类别。因此,区域的数量会减少,尺寸会增大,形状可能会更简单,就像同一世界区域的国家边界政治地图一样。因此“低复杂度”。
(直觉和来源来自这个课程。)