k最近邻的VC维


10

如果k等于使用的训练点数,则k最近邻居算法的VC维是多少?


上下文:在我参加的课程中提出了这个问题,给出的答案为0。但是,我确实不明白为什么会这样。我的直觉是,VC-Dimension应该为1,因为应该可以选择两个模型(即训练点集),以便根据第一个模型,每个点都被标记为属于一个类别,而属于另一个类别根据第二种模型,因此应该有可能粉碎单个点。我的推理错误在哪里?

Answers:


2

您说的算法是:k =最接近的邻居算法,其中k =使用的训练点数。我将其定义为jms-k-nearest-neighbor

由于VC维是训练误差为 0 的算法可以破坏的最大训练点数,因此jms-k-nearest-neighbor的VC维只能为k或0。

1个训练实例=> k = 1:在训练期间,jms-1-nearest-neighbor精确存储该实例。在完全相同的训练集上应用时,一个实例距离存储的训练实例最近(因为它们相同),因此训练误差为0。

因此,我同意,VC维度至少为1。

2个训练实例=> k = 2:如果标签不同,可能只有一个问题。在这种情况下,问题是如何做出类别标签的决定。多数投票不会导致结果(VC = 0?),如果我们使用按距离反比的多数投票,则VC维度为2(假设不允许两次使用相同标签的相同训练实例参加同一训练实例,因为情况下,所有算法的VC维将为0(我想)。

没有标准的k近邻算法,更多的是具有相同基本思想但在实现细节方面不同的家族。

使用的资源:Andrew Moore撰写的VC维度幻灯片


谢谢,这很有帮助。我不知道您评估模型的实例是否必须与用于训练其参数的实例相同。我必须考虑一下您的答案,以后再接受。
Julius Maximilian Steen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.