machine-learning - k-NN分类器的预测方差和模型偏差

标签 machine-learning artificial-intelligence classification knn

相信很多人已经研究过、正在研究K-NN算法,我也是其中之一。

我刚刚遇到这样一句话:“对于任何给定的问题,较小的 k 值将导致预测出现较大方差。或者,将 k 设置为较大值可能会导致较大的模型偏差。”,我认为这对很多人来说都是直截了当的,但对我来说却不然。

如果您已经知道它的含义,请帮我理解它是什么。

最佳答案

好的,让我们从头开始。

<强>1。 k-NN 是如何工作的?

您有 n 个(k 比 n 小得多)点的基数,您知道所需的答案 - 您可能已经从 oracle 获得了它。该集称为训练集,因为您将其提供给虚拟实体(k-NN 分类器),以便它可以学习所需的结果。 “点”是指单个示例,用某些空间中的特征进行描述,使我们能够计算距离。

当要求对新点进行分类(识别)时,您将在 n 个点中搜索最接近新点的 k 个实例。 “最接近”是指“特征向量之间的距离最短”。 然后你将根据这 k 个点的投票来选择答案。例如,如果 k=5 和 3 点表示新的属于 A 类,2 - B 类,则您假设新的属于 A 类。您必须指定一些平局策略 - 可能会回到 1 - NN 并返回最近点的类别。

<强>2。 “对于任何给定的问题,较小的 k 值将导致预测出现较大差异。”

我假设“预测的巨大差异”作者的意思是“对大量数据进行分类时出现许多错误”。

为什么会这样?

因为k-NN非常幼稚。直觉上,接近点可能属于同一类,但情况并非总是如此。例如,参见下图中的 A 点。如果我们使用 k=1,那么最接近的点将是红色,即使答案应该是绿色。对于 k=2,我们在红色和绿色之间进行平局并选择红色,因为它更接近。

Source: English wiki, with slight by-hand modification

最后,这句话在我看来意味着“如果 k 很小,你可能会得到很多错误的结果”。

<强>3。 “将 k 设置为较大的值可能会导致较大的模型偏差。”

“偏见”是指即使问题分布均匀,也倾向于更频繁地给出一个答案。对于较大的 k,可能会发生这种情况,但问题是“何时”。

嗯,“何时”的答案是“当你的训练集有偏差时”。这里的“偏见”意味着某些类别比其他类别拥有更多的分数。

考虑一个训练集,其中类别 + 获得 5 分,类别 * 获得更多积分,如下图所示。

它可能并不代表类之间的真实关系,但这就是您所拥有的所有数据。在下图中,类可能是线性可分的,并且点标记为红色?可能是+。

如果您使用 k=10,您几乎总是会得到答案 *。最好的情况是用红色标记的点? - 您将获得所有 5 个 + 点,另外 5 个 * 点,并使用 + 解决与 1-NN 的平局,因此答案是正确的。

无论如何,在大多数情况下,您的分类器将提供一个特定的答案,这正是偏差 - 一个类将更频繁地返回。

但前面示例中的情况并非如此 - 正如句子所述,它可能会导致较大的偏差,但并非必须如此。

enter image description here

最后,这句话的意思是,如果你的数据集有偏差,那么你的分类器对于大 k 比小 k 更有可能有偏差。

Source: my own

<强>4。总结和进一步阅读。

我希望这能让您澄清一些事情。

如果您需要更多,请参阅this .

关于machine-learning - k-NN分类器的预测方差和模型偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31739020/

相关文章:

algorithm - 如何计算分类错误率

带修剪的 C++ 决策树

手写识别算法

python-3.x - BayesSearchCV 在 SGDClassifier 参数调整期间不起作用

c++ - 如何检查/查找项目是否在 DEQUE 中

c++ - 检测两幅图像之间的差异

python - 如何将机器学习分类方法应用于一维时间序列数据

opencv - ORB+BFMatcher 是否适合识别重复图像(略有变化?)

algorithm - 帮助理解交叉验证和决策树

algorithm - 求解多源多目的 map 博弈