作者:王冶

2021.05.06 字节安全风控算法面经

1、特征选择的方法

特征选择的目的:
特征选择的目的是从众多特征中,挑选出最相关、最有利于提升效果的特征,进行训练。
为什么要进行特征选择?
可以从三个方面进行总结:

  • 避免特征维度灾难。在工业上,数据的特征是超高维度的,使用特征选择,可以减少待训练特征的维度。避免维度灾难
  • 减轻训练压力。特征较多,模型训练成本较高
  • 增强模型的可解释性。如果存在多个非相关特征,最终实验效果可能不是很好解释。
  • 避免过拟合。去除掉非相关的特征可以有效的缓解过拟合风险。尤其对与神经网络或者回归分析的方法,额外的非相关特征将给模型带来额外的自由度,这些额外的自由度将会令模型学习到一些细节信息,但是这些细节信息对于模型整体的泛化却没有帮助。也就是说,太多的非相关特征将增加模型过拟合的风险。

以上也均是特征选择带来的好处。
特征选择的常用方法?
首先特征选择基本都是从两个角度来处理的。一个是特征的发散程度、另外一个是特征与目标的相关程度。
特征自身的发散程度:
基本使用的就是方差,如果这个特征的方差为0,也就是说这个特征在所有样本上基本没有差异,那该特征便可以舍弃掉。下文的filter方法便是基于方差的方法。
特征与目标的相关程度:
这里主要就是计算特征和目标之间相关程度。下文会有对应方法。

具体的方法有哪些:

  • Filter方法(过滤法):根据相关性或者发散程度对特征进行评分,设置阈值选择特征
    • 方差选择法:计算特征的方差,根据阈值筛选
    • 相关系数法:计算每个特征和目标的相关系数,然后根据相关系数进行排序,选择TopN个特征
      • 相关系数法主要使用的就是皮尔森系数。其实皮尔森系数描述的是线性相关关系,取值范围是[-1,1],一般取绝对值,越接近于1,线性相关性越强,越接近0,越没有关系。
    • 以上方法都是连续性变量与目标变量的相关性分析方法
    • 卡方检验:
      • 卡方检验是检验定性自变量对定性因变量的相关性,可以理解为类别特征和目标变量之间的相关性。卡方校验还需要另行总结!
      • image.png
    • 互信息法

  • Wrapper方法:基本思想是每一次选出一组特征子集,在训练集上训练一遍模型,然后根据测试集上的测试指标进行选择。
    • 递归特征消除法(RFE)
      • 递归消除特征法使用一个基模型来进行多轮训练,每轮训练后通过学习器返回的 coef 或者feature_importances 消除若干权重较低的特征,再基于新的特征集进行下一轮训练。
  • Embedding方法:该方法更多的是基于惩罚项的特征选择法
  • 基于树模型的特征选择法
    • 使用GBDT、XGB、LGB等模型对训练数据进行初步训练,然后根据模型给出的特征的重要度或者gain排序,选择重要程度较高的特征。