如果k等于使用的训练点数,则k最近邻居算法的VC维是多少?
上下文:在我参加的课程中提出了这个问题,给出的答案为0。但是,我确实不明白为什么会这样。我的直觉是,VC-Dimension应该为1,因为应该可以选择两个模型(即训练点集),以便根据第一个模型,每个点都被标记为属于一个类别,而属于另一个类别根据第二种模型,因此应该有可能粉碎单个点。我的推理错误在哪里?
如果k等于使用的训练点数,则k最近邻居算法的VC维是多少?
上下文:在我参加的课程中提出了这个问题,给出的答案为0。但是,我确实不明白为什么会这样。我的直觉是,VC-Dimension应该为1,因为应该可以选择两个模型(即训练点集),以便根据第一个模型,每个点都被标记为属于一个类别,而属于另一个类别根据第二种模型,因此应该有可能粉碎单个点。我的推理错误在哪里?
Answers:
您说的算法是: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维度幻灯片