机器学习 | 变量选择

变量选择方法

  • 1 背景
  • 2 变量选择方法有哪些?
  • 3 什么叫向前/向后选择以及逐步回归、最优子集?AIC/BIC又是怎么定义的?
    • 3.1 四种统计上变量选择的方法
    • 3.2 什么是AIC/BIC
      • 3.2.1 AIC
      • 3.2.2 BIC
  • 4 如何实现
  • 5 参考

1 背景

为什么要聊一聊机器学习中的变量选择问题呢?因为这个问题在机器学习中相当重要,并且也是面试必问题之一,刚好前几天面试还被问到了变量选择中一个很细节的知识点(AIC/BIC)所以今天我们好好梳理一下!

2 变量选择方法有哪些?

之前面试的时候自己准备的答案:

学术派:从统计上讲,有三大类方法。

  • 子集选择。包括下面4种方法:

    ①向前选择;

    ②向后选择;

    ③逐步回归(结合一些准则:AIC、BIC(解决过拟合问题,加入模型复杂度的惩罚项)。(BIC的惩罚项比AIC的大,考虑了样本数量,样本数量过多时,可有效防止模型精度过高造成的模型复杂度过高。);

    ④最优子集

  • 收缩方法。

    ①岭回归(L2正则);

    ②Lasso(L1正则)

  • 维数缩减。

    ①主成分回归

    ②偏最小二乘法。

实际业务中

  1. 结合业务人员的判断
  2. 先计算各个特征的缺失率,如果缺失率较高的就删了。
  3. 计算特征的方差,为0的删去
  4. 树模型用feature_importance来筛选。
  5. 相关性较高的两个变量可以考虑保留一个。
  6. 结合IV指标来进行变量重要性的判断

除了上述这么多方法,还有其余的吗?是否有补充呢?

  • 之前发过的一篇推文中,里面的IV指标可以来度量变量重要性,进而实现变量选择的功能。

  • 相关性较高的两个变量可以考虑保留一个。

3 什么叫向前/向后选择以及逐步回归、最优子集?AIC/BIC又是怎么定义的?

3.1 四种统计上变量选择的方法

可以看到,上面变量选择引申出来的方法有很多种,后面我们慢慢介绍,今天先说第一种,也是最简单的一类统计方法,这个在考研的时候复习的还是蛮多的,附上当时专业课的笔记:
机器学习 | 变量选择_第1张图片

可以看到上面图片中对于四种方法解释的还是蛮清楚的,其实就是如何选最优变量,使得模型整体的SSE减少比较多,或者说得到尽可能多且有意义的显著的变量。

同时上面引申出来一个问题,如何评价模型的优劣呢?即,模型都训练出来了,如何进行比较呢?这时候AIC/BIC就闪亮登场啦!

3.2 什么是AIC/BIC

这一部分在考研复习阶段我也 涉及过,而且总结的比较全面,先上图:
机器学习 | 变量选择_第2张图片
可以看到上面我的分析思路是:

  • 首先为什么要有调整的R2?
  • 然后引入的准则统计量
  • 结合准则统计量将问题进行了一般化处理,即针对机器学习中出现的拟合问题,我们可以采用准则统计量来进行衡量模型的优劣!

所以说AIC/BIC都是准则统计量,他们是用来衡量模型的优劣的!但上述图片中并没有详细对这两个用的最多的统计量进行展开描述,接下来重点说一下,毕竟上周面试还被问到了!

3.2.1 AIC

  1. 公式定义:
    机器学习 | 变量选择_第3张图片

AIC称为赤池信息准则(Akaike Information Criterion,AIC),提供了权衡估计模型复杂度(K)和拟合数据优良性(似然函数L)的标准。

可以看到当两个模型之间存在较大差异时,差异主要体现在似然函数项

当似然函数差异不显著时,上式第一项,即模型复杂度则起作用,从而参数个数少的模型是较好的选择。

  1. 原理

如何起作用的呢?

一般而言,当模型复杂度提高(k增大)时,似然函数L也会增大,从而使AIC变小,但是k过大时,似然函数增速减缓,导致AIC增大,模型过于复杂容易造成过拟合现象。【即AIC越小总的来说还是模型更优】

目标是选取AIC最小的模型,AIC不仅要提高模型拟合度(极大似然),而且引入了惩罚项,使模型参数尽可能少,有助于降低过拟合的可能性。

3.2.2 BIC

  1. 公式定义:
    机器学习 | 变量选择_第4张图片

BIC称为贝叶斯信息准则(Bayesian Information Criterion,BIC)

BIC不仅考虑了模型参数的惩罚,还考虑了样本量的惩罚,惩罚比AIC更加的严重,故而模型的变量会比AIC要小

  1. 原理

如何起作用的呢?

目标是选取BIC最小的模型,BIC不仅要提高模型拟合度(极大似然),而且引入了模型参数和样本量的惩罚项,有助于降低过拟合的可能性。

4 如何实现

  • 对于这四个方法,尤其是前三个,在R语言里实现即可,使用的函数就是step函数!

  • 一般我们的做法就是模型建立ok之后,我们通过逐步回归的方法来进行变量选择,其实变量选择也就是相当于帮我们选择了最优的模型了,那怎么去筛选呢?也就是使用AIC准则或者BIC准则!
    机器学习 | 变量选择_第5张图片
    总结:

  • 具体的R语言实现见上图

  • 使用的package是MASS

  • k=log(n)表示用BIC准则(其中n表示建模样本量),k=2表示用AIC准则

5 参考

  • https://zhuanlan.zhihu.com/p/31186014
  • https://www.jianshu.com/p/6b8722d5b4f3

你可能感兴趣的:(机器学习,R)