为什么在K中减少K.

在我的教科书的一篇摘录中,它说运行此算法时减少K的值实际上增加了复杂性,因为它必须运行更多“平滑”。

任何人都可以向我解释这个吗?

我的理解是,在1NN ,你可以喂它你的训练集。 你测试你的测试集。 假设你的测试集有一个点。 它在训练集中找到最接近它的一点,并返回这个值。

当然,这并不比在3NN找到3个最接近的点,加上它们的值并除以3?

我误解或忽略了什么?


阅读这个公理时,我也怀着同样的怀疑; 首先降低复杂性的较高值的参数似乎有点违反直觉。

为了直观说明,我们来比较一个1邻近邻居训练模型和一个N >> 1邻近邻居。 让我们用二元分类(每个“点”有一个类或标签,A或B)的简化2D图(双特征数据集)。

对于1邻近邻居模型,训练集的每个示例都可能是预测类A或类B的区域的中心,其中大多数邻居是预测另一类的区域的中心。 你的情节可能看起来像是世界上那些深深交织在一起的种族,语言或宗教地图之一(巴尔干或中东想起来):复杂形状和交替颜色的小块,没有可辨别的逻辑,因此“高度复杂”。

1个最近的邻居

如果增加k,则预测每个类的区域将更加“平滑”,因为它是决定任何点的类的k个最近邻居的大多数。 因此,这些地区的数量会更少,规模更大,形状也许更简单,就像世界同一地区的国家边界政治地图一样。 因此“较不复杂”。

最近的邻居

(直觉和本课程的来源。)


问: k-NNNN快吗?

答: 不可以。

有关更多,请参见下文。

一般而言, NN搜索更简单,因此比k-NN需要更少的努力,当然k不等于1。

看看我的答案,我基本解释了NNS (*最近邻搜索)的概念。

kNN情况下,一般算法可以例如找到顶端NN ,那么第二顶部NN ,依此类推,直到k NN s的发现。

另一种,最有可能看到的方法是有一个priority_queue ,其中包含数字NN中的k ,它们按距离到查询点的顺序排序。

为了一般算法找到多个邻居,它必须访问更多的节点/树叶,这意味着更多的步骤,从而增加了时间复杂度。

很明显,当你增加k时,准确度可能会增加,但计算成本也会增加。

正如在这个博客中所说的。

我怀疑你是在谈论你的问题中的一个特定的算法,但我不知道哪一个,在我看来,没有更好的答案。

链接地址: http://www.djcxy.com/p/79289.html

上一篇: Why does decreasing K in K

下一篇: Pluck specific keys from json array