Stanford Online-统计学习-ISLR-Ch2-Statistical Learning

来源:互联网 发布:c 源码 user32.dll 编辑:程序博客网 时间:2024/04/20 21:19

1. Regression Function

假设要拟合的数据是一维的,即xx的分布如下图所示:

看图中x=4,发现对应的y有好多不同的取值,那么当有一个新的数据x=4进来了,应该给它一个什么值呢?最合理当然是给它一个x=4的时候所有y的平均值咯,这样谁都不得罪。说的再准确一些,叫做“数学期望”,因为平均值是在均匀分布时的“数学期望”。于是定义下面这么个模型,这个式子就是regression function

f(X)=E[Y|X=4]

刚刚说“最合理是给它一个x=4的时候所有y的平均值”,这里的“合理”意味着,最小二乘方的数学期望要最小,即:

minE[(Yg(x))2|X=x]

而使得这个数学期望最小的解就是上面的 f(X)=E[Y|X=4]

上面讲了X是一维的,如果X是多维的,即X=(X1,X2,X3,...,Xp),则模型表示如下:

f(X)=E[Y|X1=x1,X2=x2,...,Xp=xp]

这里需要特别注意的是,f(X)是对世界上所有的X建模得到的模型,但是我们是不可能得到世界上所有的X的,我们能够得到的数据成为“observation data”,即可以观测到的数据,比如,训练数据集和测试数据集就是可以观测到的数据。如果我们用训练数据集近似世界上所有的数据来建模,就会得到一个模型f(X)^,那么,f(X)^就是对f(X)的近似。于是,我们有下面这几个关系:

Y=f(X)+ϵ1

f(X)^=f(X)+ϵ2

即使是对世界上所有的数据进行建模,建立出来的模型也不可能是完全准确的,肯定是会存在误差ϵ1的,这是不可避免的,我们是没有办法去消除这个误差的。而对f(X)近似过程中存在的误差ϵ2是我们要尽可能减小的。换句话说,我们希望我们在“观测数据”上建立的模型f(X)^能够尽可能地近似于在“世界上所有数据”上建立的模型f(X)

OK! 终于弄清楚了这两个f之间的关系。接下来看看Yf(X)^之间的最小二乘方误差的数学期望究竟是什么:

E[(Yf̂ (X))2|X=x]=[f(x)f̂ (X)]2Var(ϵ1)=ϵ22Var(ϵ1)

又重复到上一段讲的,因为ϵ1是无法减小的,为了让最小二乘方误差的数学期望减小的唯一可行办法就是减小ϵ2,即让“观测数据”上建立的模型f(X)^尽可能地近似于在“世界上所有数据”上建立的模型f(X)

2. Nearest Neighbor

因为按照上面所讲的方法去建模,我们取的X的值肯定是离散的,所以不可能遍布所有可能的取值,那对于那些没有被取到的值,只能把它们近似到临近X去。如下图中,两条红色虚线之间的区间就是X=4的领域:

当一个新的数据X=x的取值落入这个领域(x)中时,有:

f(x)=E[Y|x(x)]

然后再有平均值来表示数学期望,就有:

f(x)=Ave[Y|x(x)]

2.1 维灾难

Nearest Neighbor其实只对低维且数据量大的x才比较有效果。因为在高维空间中,Nearest neighbors之间会相距比较远,而当它们相距很远的时候,又怎么还能被称为是一个邻域呢?所以在高维空间中,对邻域的假设是不准确的了,预测出来的模型自然也不准确了。这一点我们可以从“一维”转到“二维”中清晰地看到,假设下图的邻域取了总数据10%的数据,比如总数据有1000个,那么,下图的邻域中就有100个数据点:

明显看到,同样是取10%的数据,一维空间上(x1)邻域的范围(两条红色虚线之间的距离)远远小于二维空间上(x1x2)邻域的范围(红色圆的半径)。所以说,维度越高,拥有相同多数据的邻域的范围也会越大。然后当维度特别大的时候,这个邻域也就不存在了,因为范围大到快接近于边界了。

比如有一个p维的超方体,其边长为1,只要存在一个xj(0,0.05)(0.95,1),就认为这个x属于边界,计算一下边界处的数据量占总数据的比例:

则该超方体中属于非边界的体积为(10.050.05)p=0.9p (弄不清楚的话,可以先试一下p=2的情况,在一个直角坐标中),那么属于边界的体积就是10.9p,于是比例就是10.9p1p。当p=50时,得到边界处的数据量占总数据的10.950150=0.955。很明显地,维度越高,数据就越靠近边界,想要取到一定量的数据,邻域的范围就要越大。

3. Structured Models

这个近似模型方法地提出就是为了解决“维灾难”。因为维灾难是因为邻域带来的,只要我们的近似方法中不再出现邻域,维灾难就不会出现。于是Structured Models不再通过邻域取平均的方法来近似数学期望了,而是直接假设f(x)属于某种参数未知的函数,然后通过从观测数据中近似参数的方式来近似f(x),从而得到f(x)^

比如说,设f(X)是一个线性函数,有:

f(X)=β0+β1X1+β2X2+...+βpXp

然后从观测数据集中,通过最小化误差二乘方,计算出β0^,...,βp^,得到近似模型为:

f̂ (X)=β0^+β1^X1+β2^X2+...+βp^Xp

当然可以假设f(X)是其他类型的参数未知的函数。

4. Bias-Variance Trade-off

f(X)^是从训练集中得到的对真实模型f(X)的近似模型,(x0,y0)是测试集中的一条数据。则有:

E[y0f̂ (x0)]2=Var(f̂ (x0))+Bias2(f̂ (x0))+Var(ϵ1)

其中,Bias(f̂ (x0))=E[f̂ (x0)]f(x0)

这里需要说明一下,因为这是在模型选择过程中,所以f̂ (x0)相当于是一个变量,可以有多种取值,所以会有数学期望E[f̂ (x0)]和方差Var(f̂ (x0))。而我们要选择的模型就是让E[y0f̂ (x0)]2最小的模型。

观察一下E[y0f̂ (x0)]2,因为ϵ不变,所以可以忽略,主要有Bias和Variance来决定,而Bias和Variance是相对的,一个越小,另一个就会越大。一般复杂的模型都会有比较大的Variance,比较小的Bias。所以模型的选择需要平衡好两者,一般通过在测试集上看哪个模型的E[y0f̂ (x0)]2最小就取那一个模型。

5. 分类问题

来看懂下面这个图,这个图有点儿难看懂,记录一下:

黄色的bar代表类别是0,蓝色的bar代表类别是1,x代表特征值,y代表该特征值下类别为1的概率,黑色的曲线是真实模型f(X),所有数据都是通过Y=f(X)+ϵ1产生的。比如说,X=5时,得到的数据为1的概率为0.8,则为0的概率就为0.2,于是看到,X=5时,黄色的bar的数量比蓝色的少。

pk(x)=Pr(Y=k|=x),如p0(5)=0.2p1(5)=0.8

5.1 Bayes Optimal Classification

贝叶斯最优分类就是真实模型的分类:

C(x)=j if pj(x)=max{p0(x),p1(x),,...,pK(x)}

式子中的pj(x)都是真实的分布。因为上面的数据是人工通过一个模型生成的,所以才可能知道真实分布。

贝叶斯最优分类模型在测试集上得到的误差被称为贝叶斯误差,即最小可能误差。下面这张图中,中间平行的黑色虚线就是贝叶斯误差:

阅读全文
0 0
原创粉丝点击