如何计算VC尺寸?


12

我正在研究机器学习,我想知道如何计算VC维度。

例如:

HX={1个如果 一个Xb0其他 ,使用的参数。一个b[R2

VC尺寸是多少?

Answers:


10

VC维是对二进制分类器功能的估计。如果你能找到一组点,以便它可以通过分类被打碎(即分类的所有可能的2个ñ标号L正确),你无法找到任何一套ñ + 1点可以粉碎(即任何一套n + 1个点至少有一个标记顺序,因此分类器无法正确分离所有点),则VC维为nñ2ññ+1个ñ+1个ñ

在您的情况下,首先考虑两个点x 2,使得x 1 < x 2。然后有2 2 = 4个可能的标签X1个x2x1<x222=4

  1. x 21x1:1x2:1
  2. x 20x1:0x2:0
  3. x 20x1:1x2:0
  4. x 21x1:0x2:1

所有标号L可通过分类器来实现通过设置参数< b [R ,使得ha<bR

  1. a<x1<x2<b
  2. x1<x2<a<b
  3. a<x1<b<x2
  4. x1<a<x2<b

分别。(实际上,可以假设为wlog,但是找到一组可以破碎的集就足够了。)X1个<X2

现在,考虑三个任意(!)点x 2x 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的标签X1个X2X3X1个<X2<X3X1个X2一个<X1个<b<X2X3X3 必须为0。因此,分类器无法粉碎任何三个点集,因此VC维为2。

--

也许使用更有用的分类器会变得更加清晰。让我们考虑超平面(即2D中的线)。

容易找到一组可以正确分类的三个点,无论它们如何标记:

在此处输入图片说明

对于所有可能的标记,我们可以找到一个将它们完美分隔的超平面。23=8

但是,我们找不到4个点的任何集合,因此我们可以正确分类所有可能的标签。代替正式的证明,我尝试提出一个视觉上的论点:24=16

现在假设,这四个点构成一个具有四个边的图形。如果我们用相同的标签标记相对的角,就不可能找到可以正确分离点的超平面:

如果它们没有形成4个边的图形,则有两个“边界情况”:“外部”点必须形成三角形或全部形成一条直线。对于三角形,很容易看出,“内”点(或两个角之间的点)被标记为与其他点不同的标签无法实现:

对于线段,适用相同的想法。如果端点的标记与其他端点之一不同,则它们不能被超平面分开。

由于我们涵盖了2D中4点的所有可能形式,因此可以得出结论,没有4点可以破碎。因此,VC维必须为3。


1
>但是该函数可以实现x1 = 0,x2 = 0,x3 = 0。它需要实现所有标签吗?
铭声孙

我在这里问了一个类似的问题datascience.stackexchange.com/questions/39064/…这与线性假设函数有关。你能帮忙回答吗?
Suhail Gupta

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个点的所有可能的类分布进行分类

你的例子

[R

VC维2:可以正确分类所有四种情况。

  1. 点:0和42
  2. 分布:
    • 一个=1337b=3141
    • 一个=40b=1337
    • 一个=-1个b=1个
    • 一个=-1个b=1337

VC维度3:不,这不起作用。想象一下这些班级truefalse并像一样被命令True False True。您的分类器无法处理。因此,它的VC维度为2。

证明

X1个X2X3[RX1个<X2<X3

X1个X2X3

X1个

一个X1个b
X2
X2<一个 要么 b<X2
一个X1个X1个<X2b<X2
一个X1个b<X2<X3
X3
一个X3b
b<X3。因此,无法使用此分类器正确分类任何3个点的所有类分布。因此,它没有VC维度3。

1
常量分类器的VC维数为0(即使可以说一开始它不应被视为分类器)
oW_

1
啊对。但是,是的,在机器学习环境中,我不会称这种系统根本无法适应分类器中的数据。
马丁·托马
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.