机器学习面试--特征选择

机器学习面试之特征选择方法

一、特征选择的目标

构造机器学习的模型的目的是希望能够从原始的特征数据集中学习出问题的结构与问题的本质,此时的挑选出的特征就应该能够对问题有更好的解释;特征决定了机器学习的上限,而模型和算法只是去逼近这个上限,所以特征选择的目标大概如下:

  • 提高预测的准确性 构造更快
  • 消耗更低的预测模型
  • 能够对模型有更好的理解和解释

二、特征选择的方法

一般来说特征选择都是从两个方面考虑:

  • 特征是否发散:如果一个特征不发散,例如方差接近于0(方差衡量了每个样本到样本均值的距离的和),也就是说样本在这个特征上基本没有差异,这个特征对样本的区分并没有用。
  • 特征与目标值的相关性:即与目标值相关性高的特征应该优先选择。
    根据特征选择的形式可以将特征选择方法分为3种:
1.Fitler方法

核心思想是利用发散性或者和目标值的相关性对各个特征进行评分,设定阈值或者带选择特征的个数来进行特征选择。常用方法有:

  • 方差选择法
    使用方差选择法,首先计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。即去掉变化程度小的特征,这种方法是最简单的方法,但是并不好用,因为大部分特征并不是一成不变的。
  • 相关系数法
    • 常用的衡量方法是皮尔森相关系数,该方法衡量的是变量之间的线性相关性,结果的取值区间为[-1,1],-1表示完全的负相关,+1表示完全的正相关,0表示没有线性相关。但是这种方法有一个明显的缺陷:只对线性关系敏感,如果关系是非线性的,即使两个变量具有一一对应的关系,person相关性也可能会接近于0(如x和x**2)。
    • 卡方检验
    • 互信息法:可以用来衡量非线性相关性
    • 利用机器学习模型,将单个特征作为输入,目标值作为待预测值。为每个特征打分,若特征与目标值之间是线性关系,那么可以使用普通的线性回归模型;若特征与目标值之间是非线性的,那么可以使用树模型来进行打分。
      以上最常用的方法还是person系数,因为其计算速度快,在大规模数据中表现也很好,而且其取值为[-1,1],这使得其能够表征更丰富的关系,符号表示关系的正负,绝对值能够表示强度。
2.Wrapper方法
  • 递归特征消除(RFE)的主要思想时反复的构建模型,然后选择出最好的特征,把选出来的特征放在一边,继续在剩余的特征上进行上述操作,直到所有的特征都被遍历,其稳定性在于基模型的选择(即数据变化结果是否会跟着变化),选择正则化的基模型会产生稳定的结果,反之可能会产生不稳定的结果。
3.Embedded方法

  上面filter方法是独立的衡量每个特征与响应变量之间的关系,另一种主流的特征选择方法是基于机器学习模型的方法。有些机器学习方法本身就具有对特征进行打分的机制,例如回归模型、树模型等。

  • 回归模型
      回归模型中越是重要的特征对应的系数就会越大,而跟输出变量越是无关的特征对应的系数越接近于0。在噪音不多的数据上,或者是数据量远远大于特征维数的数据上,如果特征之间相对来说是独立的,那么使用简单的线性回归模型也能取得不错的特征选择效果。比如下面例子,
    from sklearn.linear_model import LinearRegression
    import numpy as np
    np.random.seed(0)
    size = 5000
    
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值