Statistic Learning 5

1. Cross-Validation on Classification Problems

Cross-Validation用于分类任务概念

在系列前文中,描述的都是 C r o s s − V a l i d a t i o n Cross-Validation CrossValidation在回归任务中的应用,并使用 M S E MSE MSE量化Test Error,但 C r o s s − V a l i d a t i o n Cross-Validation CrossValidation同样可以应用于分类任务中。

  • 在分类任务中, C r o s s − V a l i d a t i o n Cross-Validation CrossValidation的用法和前文一致,不一样的地方在于没有使用 M S E MSE MSE来量化误差,而是使用错误分类的个数。

  • 举个例子,在分类任务中, L O O C V LOOCV LOOCV的Error Rate计算如下:

    C V ( n ) = 1 n ∑ i = 1 n E r r i CV_{(n)} = \frac{1}{n}\sum_{i=1}^{n}Err_i CV(n)=n1i=1nErri

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

Cross-Validation用于分类任务实例

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

  • 但通过采用 p r e d i c t o r s predictors predictors的多项式形式,可以将Logistic Regression扩展为非线性决策边界。举个例子,Logistic Regression的二次型如下:

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

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

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

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

2. BootStrap(自举法)

B o o t S t r a p BootStrap BootStrap是一个广泛适用、功能强大的统计工具,可以用来量化和估计统计学习方法的不确定性。

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

在下面的例子中,我们将讨论如何使用 B o o t S t r a p BootStrap BootStrap评估线性模型参数的变化性。

BootStrap实例

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

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

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

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

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

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

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

      其中 σ X 2 = V a r ( X ) \sigma_X^2 = Var(X) σX2=Var(X) σ Y 2 = V a r ( Y ) \sigma_Y^2 = Var(Y) σY2=Var(Y) σ X Y = C o v ( X , Y ) \sigma_{XY} = Cov(X, Y) σXY=Cov(X,Y)

  • 但在实际应用中, σ X 2 , σ Y 2 , σ X Y \sigma_X^2,\sigma_Y^2, \sigma_{XY} σX2,σY2,σXY是未知的,但我们可以通过一个已有的测量 X , Y X,Y X,Y的数据集来估计 σ ^ X 2 , σ ^ Y 2 , σ ^ X Y \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

    • 我们设置生成分布数据的 σ X 2 = 1 , σ Y 2 = 1.25 , σ X Y = 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} α^的估计可以得到:

      α ˉ = 1 1000 ∑ r = 1 1000 α 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非常接近了,这个值的标准差为:

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

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

    • 假设有一个简单的数据集 Z Z Z,从数据集 Z Z Z中随机放回采样 n n n个样本得到 b o o t s t r a p bootstrap bootstrap数据集 z ∗ i z^{*i} zi。由于是放回采样,这意味着 Z ∗ i Z^{*i} Zi中的样本是可以重复的。

    • 重复上述步骤 B B B次,可以获得 Z ∗ 1 , Z ∗ 2 , Z ∗ 3 , . . . , Z ∗ B Z^{*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

    • 于是,可以计算这些 b o o t s t r a p bootstrap bootstrap的标准误差如下式:

      S E B ( α ^ ) = 1 B − 1 ∑ r = 1 B ( α ^ ∗ r − 1 B ∑ r ′ = 1 B α ^ ∗ 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} α^的估计

  • 最后,简单总结一下 B o o t S t r a p BootStrap BootStrap:从原始数据集中随机放回采样 n n n个样本 B B B次,构建 B B B b o o t s t r a p bootstrap bootstrap数据集。通过对这些数据集的计算,获取统计量的分布。

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值