KNN:1-最近邻

机器算法验证 分类 k-最近邻
2022-03-28 12:23:36

我的问题是关于 1-最近邻分类器,是关于 Hastie、Tibshirani 和 Friedman 的优秀著作 The Elements of Statistical Learning 中的一个陈述。该声明是(第 465 页,第 13.3 节):

“因为它只使用离查询点最近的训练点,1-最近邻估计的偏差往往很低,但方差很高。”

该书可在
http://www-stat.stanford.edu/~tibs/ElemStatLearn/download.html获得

首先,我们可以定义什么是偏差和方差。“如何在不增加维度的情况下增加方差”的问题中,我们得出:

“首先,分类器的偏差是其平均估计函数和真实函数之间的差异,而分类器的方差是估计的预测函数与其平均值的预期偏差(即分类器对随机函数的依赖程度)在训练集中进行采样)。

因此,偏差的存在表明模型基本上有问题,而方差也很糟糕,但具有高方差的模型至少可以平均预测得很好。”

有人可以解释一下为什么 1-最近邻分类器的方差高而偏差低吗?

3个回答

偏差很低,因为您仅将模型拟合到最近的 1 点。这意味着您的模型将非常接近您的训练数据。

方差很大,因为仅优化 1 个最近点意味着您对数据中的噪声进行建模的概率非常高。按照上面的定义,您的模型将高度依赖于您选择作为训练数据的数据点子集。如果你随机重新排列你选择的数据点,模型在每次迭代中都会有很大的不同。所以

估计的预测函数与其平均值的预期偏差(即分类器对训练集中随机抽样的依赖程度)

会很高,因为每次你的模型都会不同。

例子 通常,k-NN 模型将数据中的特定点与训练集中 N 个最近的数据点相匹配。对于 1-NN,此点仅取决于 1 个其他点。例如,您想将样本分成两组(分类) - 红色和蓝色。如果您针对某个点 p 训练模型,该点最近的 4 个邻居将是红色、蓝色、蓝色、蓝色(按距离递增到 p)。然后 4-NN 会将您的点分类为蓝色(3 次蓝色和 1 次红色),但您的 1-NN 模型将其分类为红色,因为红色是最近的点。这意味着,您的模型非常接近您的训练数据,因此偏差很低。如果您计算模型和训练数据之间的 RSS,则它接近于 0。与此相反,您的模型中的方差很高,因为您的模型非常敏感和摇摆不定。如上所述,训练集的随机改组可能会显着改变您的模型。相比之下,10-NN 在这种情况下会更稳健,但可能会变得僵硬。选择哪个 k 取决于您的数据集。这在很大程度上取决于Bias-Variance-Tradeoff,这与这个问题完全相关。

您应该记住,1-Nearest Neighbor 分类器实际上是最复杂的最近邻模型。最复杂,我的意思是它具有最锯齿状的决策边界,并且最有可能过拟合。如果您使用 N 最近邻分类器(N = 训练点数),您会将所有内容分类为多数类。数据的不同排列将为您提供相同的答案,为您提供一组方差为零(它们完全相同)但偏差很大(它们都始终是错误的)的模型。减少 K 的设置使您越来越接近训练数据(低偏差),但模型将更多地依赖于所选的特定训练示例(高方差)。

是一篇关于偏差和方差的非常有趣的博客文章。3.1 节处理 knn 算法并解释为什么低 k 会导致高方差和低偏差。

图 5 非常有趣:您可以实时看到模型如何在 k 增加时发生变化。对于低 k,有很多过度拟合(一些孤立的“孤岛”)导致低偏差但高方差。对于非常高的 k,您会得到一个更平滑的模型,其方差低但偏差高。在这个例子中,一个介于 10 和 20 之间的 k 值将给出一个足够通用(相对低方差)和足够准确(相对低偏差)的下降模型。