一、基本介绍
Boruta 算法是一种特征筛选方法,其核心是基于两个思想:shadow features和binomial distribution。
该算法可以自动在数据集上执行特征选择。作为 R 的一个包而诞生。目前 Python 的 Boruta 版本是 BorutaPy。
二、基本原理
2.1 算法原理
2.1.1 前言
假设检验原理:https://blog.csdn.net/andy_shenzl/article/details/81453509
2.1.2 算法步骤
-
创建阴影特征 (shadow feature) 。从X开始,对每个真实特征R,随机打乱顺序,这些被打乱顺序的原始特征称为阴影特征(shadow features)。此时,阴影数据帧将附加到原始数据帧以获得新的数据帧,该数据帧的列数是X的列数的两倍。 在Boruta中,原始特征之间不会相互竞争。相反,原始特征与shuffle后的特征(shadow features)竞争
-
获取重要性。用新的特征矩阵N作为输入,训练模型,能输出feature_importances_的模型,如RandomForest, lightgbm,xgboost都可以,得到真实特征和阴影特征的feature importances