Regularization&feature selection

Cross validation / multual information / Bayesian statistics and regularization

在之前我们讨论了最小化风险函数,但很多时候这样做的效果并不好,这是由于bias and variance的权衡。因此,我们需要进行模型选择,来自动的选择最合适的模型。

Cross validation

假设我们有一些有限的模型,如何来选择哪个模型能够使得其泛化能力最好?

常用的方法是交叉验证:

  1. hold-out cross validation
    • 使用一部分数据(70%)作为train data进行训练,使用剩下的数据作为validation data进行验证,选择在验证集上误差最小的模型
  2. k-fold cross validation
    • hold-out cross validation中,我们的30%的数据实际上都被浪费了。而如果数据量本来就很小,那么这样做并不合理。因此,更常用的是每次使用30%的数据作为验证集,训练多次得到其平均误差。
    • k=10是常用的做法,但计算量会很大
  3. leave-one-out cross validation.
    • 可以令k=m,也就是划分的数量和数据集大小一样,每次只用一个样本作为验证。
    • 只适合在数据量非常少的情况下使用。

Feature selection

如果我们有很多feature,但很可能大部分feature对于我们的分类任务都没有太大帮助。因此,我们要选择最为合适的feature子集,但其选择空间有 2 n 2^n 2n,是在太大了。

因此,有几种启发式的feature selection方法:

  1. Wrapper model feature selection
    • forward search
      • 很简单的想法,我们每次尝试加入一个feature,如果加入这个feature能在验证集上表现得更好,那么我们就要他;如果表现得更差,那么就抛弃他
    • backward search
      • 同样的想法,每次删去一个feature,看训练集上的表现是否提高
  2. Filter feature selection
    • 在之前的算法中,计算量非常大。因此,一个直观的想法是定义一个score function,来衡量某个feature能表示的信息量大小,即 S ( i ) S(i) S(i),然后,选择 k k k个能使得score 最大的feature。
    • 一般来说, S ( i ) S(i) S(i)是根据 x i x_i xi y y y之间的相关性来度量的
    • mutual information
      • MI ⁡ ( x i , y ) = ∑ x i ∈ { 0 , 1 } ∑ y ∈ { 0 , 1 } p ( x i , y ) log ⁡ p ( x i , y ) p ( x i ) p ( y ) \operatorname{MI}\left(x_{i}, y\right)=\sum_{x_{i} \in\{0,1\}} \sum_{y \in\{0,1\}} p\left(x_{i}, y\right) \log \frac{p\left(x_{i}, y\right)}{p\left(x_{i}\right) p(y)} MI(xi,y)=xi{ 0,1}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值