机器学习 | 变量选择

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 四种统计上变量选择的方法

可以看到,上面变量选择引申出来的方法有很多种,后面我们慢慢介绍,今天先说第一种,也是最简单的一类统计方法,这个在考研的时候复习的还是蛮多的,附上当时专业课的笔记:
在这里插入图片描述
在这里插入图片描述
可以看到上面图片中对于四种方法解释的还是蛮清楚的,其实就是如何选最优变量,使得模型整体的SSE减少比较多,或者说得到尽可能多且有意义的显著的变量。

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

3.2 什么是AIC/BIC

这一部分在考研复习阶段我也 涉及过,而且总结的比较全面,先上图:
在这里插入图片描述
可以看到上面我的分析思路是:

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

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

3.2.1 AIC

  1. 公式定义:
    在这里插入图片描述

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

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

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

  1. 原理

如何起作用的呢?

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

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

3.2.2 BIC

  1. 公式定义:
    在这里插入图片描述

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

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

  1. 原理

如何起作用的呢?

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

4 如何实现

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

  • 一般我们的做法就是模型建立ok之后,我们通过逐步回归的方法来进行变量选择,其实变量选择也就是相当于帮我们选择了最优的模型了,那怎么去筛选呢?也就是使用AIC准则或者BIC准则!
    在这里插入图片描述
    总结:

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

  • 使用的package是MASS

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

5 参考

  • 8
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ?隐含变量是指在机器学习过程中没有被直接观测到或测量到的变量。它们对于理解和预测数据的关系非常重要,因为它们可以捕捉到数据中的复杂性和隐藏的因素。在概率图模型中,隐含变量常常是连接观测变量和模型参数的必要因素,它们通常需要通过推理和学习来进行估计。 ### 回答2: 机器学习中的隐含变量是指在训练数据中未明确给出的但对模型性能起着重要影响的变量。这些变量通常无法从训练数据中直接观察到,但却对模型的输出产生影响。 隐含变量的存在使得机器学习模型能够处理复杂的问题,并从训练数据中学习到更多的潜在关系和模式。这些变量可以是未知的特征、隐藏的状态或潜在的类别。在训练过程中,模型通过分析数据中的隐藏模式或潜在依赖关系来推测这些隐含变量。 通过引入隐含变量机器学习模型可以更好地捕捉数据背后的潜在结构,帮助我们更好地理解和解释数据。例如,潜在语义分析(Latent Semantic Analysis)就是一种使用隐含变量方法,它能够从大量的文本数据中提取出隐含的语义关系,帮助我们理解文本之间的关联性。 但是,隐含变量也给机器学习带来了挑战。因为这些变量无法直接观察到,所以模型需要通过对观测数据进行推断来估计这些变量的值。这个推断过程可能需要耗费大量的计算资源,而且在某些情况下,由于数据不完全或噪声干扰,推断出的结果可能也不准确。 总而言之,隐含变量机器学习中扮演着重要的角色,帮助模型更好地理解和解释数据。我们通过建立模型来推断这些变量的值,从而提高模型的性能和预测能力。 ### 回答3: 在机器学习中,隐含变量指的是在给定数据和已知变量的情况下,不能直接观测或测量到的变量。隐含变量也被称为潜在变量或不可观测变量。 隐含变量是在数据中产生的,但是无法通过直接观测来得到。它们可以是未知的特征、属性或状态。隐含变量的存在可以提供对数据生成过程更准确的建模。通过引入隐含变量,我们可以更好地理解数据的结构、关系和分布。 隐含变量在许多机器学习算法中起着重要的作用。一些常见的机器学习模型,如潜在语义索引模型(Latent Semantic Indexing)和潜在狄利克雷分配(Latent Dirichlet Allocation),都利用了隐含变量来对数据进行建模和解释。 使用隐含变量可以更好地理解数据背后的潜在机制和关系,并且能够提供更准确的预测和推断。然而,由于隐含变量本身不可见,因此需要通过使用统计推断、最大似然估计或其他优化方法来确定隐含变量的值。 总之,机器学习中的隐含变量是指无法直接观测或测量的变量,它们在数据建模和解释中发挥着重要作用,可以提高对数据的理解和预测能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值