Statistic Learning 5

1. Cross-Validation on Classification Problems

Cross-Validation用于分类任务概念

在系列前文中,描述的都是Cross−ValidationCross-ValidationCrossValidation在回归任务中的应用,并使用MSEMSEMSE量化Test Error,但Cross−ValidationCross-ValidationCrossValidation同样可以应用于分类任务中。

  • 在分类任务中,Cross−ValidationCross-ValidationCrossValidation的用法和前文一致,不一样的地方在于没有使用MSEMSEMSE来量化误差,而是使用错误分类的个数。

  • 举个例子,在分类任务中,LOOCVLOOCVLOOCV的Error Rate计算如下:

    CV(n)=1n∑i=1nErriCV_{(n)} = \frac{1}{n}\sum_{i=1}^{n}Err_iCV(n)=n1i=1nErri

    这里的Erri=I(yi≠yi^)Err_i = I(y_i \neq \hat{y_i})Erri=I(yi=yi^)III是指示函数,但括号内条件满足时值为111,否则值为000

Cross-Validation用于分类任务实例

  • 首先生成模拟数据,并选定Logistic Regression作为分类模型。由于数据为生成数据,可以得到此时的True Test Error=0.201,而此时的Bayes Error Rate=0.133,这说明了当前的Logistic Regression的灵活度难以完成对该生成数据的Bayes Decision Boundary建模。

  • 但通过采用predictorspredictorspredictors的多项式形式,可以将Logistic Regression扩展为非线性决策边界。举个例子,Logistic Regression的二次型如下:

    log(p1−p)=β0+β1x1+β2x12+β3x2+β4x22log(\frac{p}{1-p}) = \beta_0 + \beta_1x_1 + \beta_2x_1^2 + \beta_3x_2 + \beta_4x_2^2log(1pp)=β0+β1x1+β2x12+β3x2+β4x22

    • 若采用上述形式,Test Error Rate将会从0.201降低为0.197。
    • 类似上面,拟合一个包含三次项形式predictorpredictorpredictor的Logistic Regression,Test Error Rate降低为0.160。
    • 而拟合一个包含四次项形式的,Test Error Rate稍微上升,为0.162。
  • 但在实际应用中,Bayes Decision Boundary和Test Error Rate是未知的,那么我们如何决定使用上述4中Logistic Regression的哪一种形式呢?答案是:Cross-Validation。

    • 可以使用10−fold CV10-fold~CV10fold CV的方式分别训练不同自由度的Logistic Regression方法(多项式的次数从1到10)
    • 从图中可以发现,Training Rate随着模型自由度的提升而降低(虽然单调下降,但是随着模型自由度的增加,Training Error Rate总体上呈下降的趋势)。
    • 作为对比,Test Error展现出一个UUU型,即先下降再上升。说明自由度太高,模型可能过拟合了,所以在UUU型底部的模型应该是一个维持了bais−variance trade−offbais-variance~trade-offbaisvariance tradeoff的模型。
    • 虽然一定程度上,10−fold CV10-fold~CV10fold CV Error Rate低估了错误率,但四阶多项式时其达到了最小值,这与三阶多项式测试曲线的最小值相当接近。
  • 同样,可以使用KNNKNNKNN方法用于对比

    • 可以发现,随着KKK值的减小,Training Rate随着模型灵活度的提高而再次下降(对于KNNKNNKNNKKK越大,模型的自由度越低)。
    • 同样,Cross-Validation Error Curve低估了Test Error Rate,但对于寻找最优KKK,它还是很有帮助的。

2. BootStrap(自举法)

BootStrapBootStrapBootStrap是一个广泛适用、功能强大的统计工具,可以用来量化和估计统计学习方法的不确定性。

  • 一个简单的例子是,BootStrapBootStrapBootStrap可以用来估计线性回归拟合系数的标准误差。
  • BootStrapBootStrapBootStrap的强大之处在于它可以很容易的应用于各种各样的统计学习方法。

在下面的例子中,我们将讨论如何使用BootStrapBootStrapBootStrap评估线性模型参数的变化性。

BootStrap实例

  • 假设我们想将一笔固定的金额投资于两种分别产生XXXYYY回报的金额资产,其中XXXYYY时随机变量。

    • 通过参数α\alphaα来分配投资的比例,将α\alphaα比例的钱投资XXX(1−α)(1-\alpha)(1α)比例的钱投资YYY

    • 由于X,YX,YX,Y的回报会不断变化,我们想要求出令投资风险最小的α\alphaα。换句话说,我们想要最小化:

      Var(αX+(1−α)Y)Var(\alpha X + (1-\alpha)Y)Var(αX+(1α)Y)

      即总回报的方差很小,偏离均值的幅度很少,那么风险就比较小。

    • 为了最小化风险,可以通过下式来计算α\alphaα

      α=σY2−σXYσX2+σY2−2σXY\alpha = \frac{\sigma_Y^2 - \sigma_{XY}}{\sigma_X^2 + \sigma_Y^2 - 2\sigma_{XY}}α=σX2+σY22σXYσY2σXY

      其中σX2=Var(X)\sigma_X^2 = Var(X)σX2=Var(X)σY2=Var(Y)\sigma_Y^2 = Var(Y)σY2=Var(Y)σXY=Cov(X,Y)\sigma_{XY} = Cov(X, Y)σXY=Cov(X,Y)

  • 但在实际应用中,σX2,σY2,σXY\sigma_X^2,\sigma_Y^2, \sigma_{XY}σX2,σY2,σXY是未知的,但我们可以通过一个已有的测量X,YX,YX,Y的数据集来估计σ^X2,σ^Y2,σ^XY\hat{\sigma}_X^2,\hat{\sigma}_Y^2, \hat{\sigma}_{XY}σ^X2,σ^Y2,σ^XY,从而带入前面的式子中求得α\alphaα

    • 为此,我们从真是分布中生成100批数据,并估计分布的α^\hat{\alpha}α^值。

    • 重复上述操作1000次,那么就可以得到α^1,α^2,α^3,...,α^1000\hat{\alpha}_1, \hat{\alpha}_2, \hat{\alpha}_3,...,\hat{\alpha}_{1000}α^1,α^2,α^3,...,α^1000

    • 我们设置生成分布数据的σX2=1,σY2=1.25,σXY=0.5\sigma_X^2=1,\sigma_Y^2 = 1.25, \sigma_{XY} = 0.5σX2=1,σY2=1.25,σXY=0.5,故我们可以算出真实的α=0.6\alpha=0.6α=0.6。而此时1000个α^\hat{\alpha}α^的估计可以得到:

      αˉ=11000∑r=11000αr^=0.5996\bar{\alpha} = \frac{1}{1000}\sum_{r=1}^{1000}\hat{\alpha_r} = 0.5996αˉ=10001r=11000αr^=0.5996

    • 这时αˉ{\bar{\alpha}}αˉ和0.6非常接近了,这个值的标准差为:

      11000−1∑r=11000(αr−αˉ^)2=0.083\sqrt{\frac{1}{1000-1}\sum_{r=1}^{1000}(\hat{\alpha_r - \bar{\alpha}})^2} = 0.083100011r=11000(αrαˉ^)2=0.083

  • 但在实际中,上述估计SE(α^)SE(\hat{\alpha})SE(α^)的方式难以应用,因为真实数据的分布是未知的,故我们无法从分布中多次采样新的数据。但BootStrapBootStrapBootStrap允许计算机来模拟这个采样过程,这就确保无需使用额外的样本来估计α^\hat{\alpha}α^了。BootStrapBootStrapBootStrap不再从分布中生成随机数据,而是在原始数据集中重复采样样本。

    • 假设有一个简单的数据集ZZZ,从数据集ZZZ中随机放回采样nnn个样本得到bootstrapbootstrapbootstrap数据集z∗iz^{*i}zi。由于是放回采样,这意味着Z∗iZ^{*i}Zi中的样本是可以重复的。

    • 重复上述步骤BBB次,可以获得Z∗1,Z∗2,Z∗3,...,Z∗BZ^{*1},Z^{*2},Z^{*3},...,Z^{*B}Z1,Z2,Z3,...,ZB,同样我们可以计算出相对应的α\alphaα估计:α^∗1,α^∗2,α^∗3,...,α^∗B\hat{\alpha}^{*1},\hat{\alpha}^{*2},\hat{\alpha}^{*3},...,\hat{\alpha}^{*B}α^1,α^2,α^3,...,α^B

    • 于是,可以计算这些bootstrapbootstrapbootstrap的标准误差如下式:

      SEB(α^)=1B−1∑r=1B(α^∗r−1B∑r′=1Bα^∗r)SE_B(\hat{\alpha}) = \sqrt{\frac{1}{B-1}\sum_{r=1}^B(\hat{\alpha}^{*r} - \frac{1}{B}\sum_{r^{'}=1}^B\hat{\alpha}^{*r})}SEB(α^)=B11r=1B(α^rB1r=1Bα^r)

      这就是对原始数据的α^\hat{\alpha}α^的估计

  • 最后,简单总结一下BootStrapBootStrapBootStrap:从原始数据集中随机放回采样nnn个样本BBB次,构建BBBbootstrapbootstrapbootstrap数据集。通过对这些数据集的计算,获取统计量的分布。

本文为作者原创,转载需注明出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值