对于一组实值函数集 F = {f:X->R},如何计算 *F 的伪维度?
提供一个例子将有助于我的理解。比如,X = {(x,y,z): 0<x<a,0<y<b,0<z<c} 这样的情况。
*伪维度是VC维度的泛化
回答:
这种维度旨在捕捉概念类(你问题中标记为F)的自由度数量。从直觉上讲,VC维度和伪维度通常会非常接近你可能猜测的自由度数量。
例如,飞机上的矩形集具有4的VC维度,因为你可以粉碎最多4个点的集合。(选择任何四个位于“+”号端点的点;你可以通过选择适当的矩形为这四个点分配任何所需的+/-符号。)4是一个很好的猜测,作为矩形的维度数量,因为你可以用某个角的(x,y)连同(宽度,高度)来指定任何矩形。
对于伪维度,你基本上是在取指示集{(x,y) : f(x) > y},然后取那个新集合的VC维度。
例如,让 F = { f(x) : f(x) = kx,其中k为某个实数 }。那么指示集将是 { (x,y) : kx > y } 对于每个k。换句话说,你将得到所有通过原点的下半平面,不包括垂直线x=0。该集合仅具有1的VC维度,但这是有道理的,因为你在F中的唯一自由度是选择k。
顺便说一句,这个问题也可以在metaoptimize.com上提问。