Answers:
VC维是对二进制分类器功能的估计。如果你能找到一组点,以便它可以通过分类被打碎(即分类的所有可能的2个ñ标号L正确),你无法找到任何一套ñ + 1点可以粉碎(即任何一套n + 1个点至少有一个标记顺序,因此分类器无法正确分离所有点),则VC维为n。
在您的情况下,首先考虑两个点和x 2,使得x 1 < x 2。然后有2 2 = 4个可能的标签
所有标号L可通过分类器来实现通过设置参数一< b ∈ [R ,使得
分别。(实际上,可以假设为wlog,但是找到一组可以破碎的集就足够了。)
现在,考虑三个任意(!)点,x 2,x 3和wlog假设x 1 < x 2 < x 3,那么您将无法实现标记(1,0,1)。与上面的情况3一样,标签x 1 1:1和x 2:0表示a < x 1 < b < x 2。这意味着x 3 > b,因此x 3的标签 必须为0。因此,分类器无法粉碎任何三个点集,因此VC维为2。
--
也许使用更有用的分类器会变得更加清晰。让我们考虑超平面(即2D中的线)。
容易找到一组可以正确分类的三个点,无论它们如何标记:
对于所有可能的标记,我们可以找到一个将它们完美分隔的超平面。
但是,我们找不到4个点的任何集合,因此我们可以正确分类所有可能的标签。代替正式的证明,我尝试提出一个视觉上的论点:
现在假设,这四个点构成一个具有四个边的图形。如果我们用相同的标签标记相对的角,就不可能找到可以正确分离点的超平面:
如果它们没有形成4个边的图形,则有两个“边界情况”:“外部”点必须形成三角形或全部形成一条直线。对于三角形,很容易看出,“内”点(或两个角之间的点)被标记为与其他点不同的标签无法实现:
对于线段,适用相同的想法。如果端点的标记与其他端点之一不同,则它们不能被超平面分开。
由于我们涵盖了2D中4点的所有可能形式,因此可以得出结论,没有4点可以破碎。因此,VC维必须为3。
分类器的VC维通过以下方式确定:
VC = 1
found = False
while True:
for point_distribution in all possible point distributions of VC+1 points:
allcorrect = True
for classdist in every way the classes could be assigned to the classes:
adjust classifier
if classifier can't classify everything correct:
allcorrect = False
break
if allcorrect:
VC += 1
continue
break
因此,只有一种方法可以放置三个点,以便可以正确分类该点放置中的所有可能的类分布。
如果您没有将这三个点放在一条线上,则感觉正确。但是,无论您如何放置这些点,都无法通过感知对4个点的所有可能的类分布进行分类
VC维2:可以正确分类所有四种情况。
VC维度3:不,这不起作用。想象一下这些班级true
,false
并像一样被命令True False True
。您的分类器无法处理。因此,它的VC维度为2。