最近在看美团机器学习实践,看到特征工程,特征选择方法一部分觉得写的很好,总结一下。
特征选择主要目的就是,选择合适的特征,这样对于节省计算,模型最后的效果都有很大的好处,主要有下面三种类型。
1 过滤方法,就是直接统计特征和最后结果直接的相关性,留下相关性比较大的,这种方法和模型没有关系。
2 封装方法,结合模型来评估是否要留下某项特征。这样可能需要一项,一项的试,所以计算量很大。
3 嵌入方法,主要考虑了模型的特点,对于特征选择进行了重要程度排序,比如随机深林,boost方法。这样计算量很小,而且考虑了模型的特点。
详细如下图:
特征选择的工具使用:
针对特征选择,目前已经有很多开源的工具包可以使用 。 针对过滤方法,若数据量较小,可 以使用Skleam里面的feature selection模块;若数据量较大,可以使用SparkMLlib。针对嵌入方法, 一般机器学习包的线性模型都支持LI正则,如SparkMLlib和Skleam等。 除此之外,在实际应用中 比较常用的特征选择方法还有 基于树模型的算法包,如ISkleam中的随机森林以及目前在工业界广 泛使用的XGBoost,它们都支持根据不同指标(如增益或者分裂次数等)对特征进行排序。 针对 XGBoost模型 , Xgbfi提供了 多种指标对特征以及特征组合进行排序 。