Boruta 算法是目前非常流行的一种特征筛选方法,其核心是基于两个思想:shadow features和binomial distribution。 它是一个非常聪明的算法,可以追溯到 2010 年,Boruta 可以自动在数据集上执行特征选择。作为 R 的一个包而诞生。目前 Python 的 Boruta 版本是 BorutaPy,https://github.com/scikit-learn-contrib/boruta_...
一、引言 Boruta是一种基于随机森林算法的特征筛选方法。其核心是基于两个思想:随机生成的特征(shadow features)和 不断迭代(循环),它通过循环比较原始特征(real features)和随机生成的特征(shadow features)的重要性来确定哪些特征与因变量相关。它可以应用于任何需要特征选择的监督学习问题,帮助我们确定哪些特征与因变...
SHAP + RFE 最好不要选择无用的特征,但同时承认一些错误的选择。 作为最后一步,我们重复相同的过程,但使用 Boruta。 Boruta(左)选择一个特征的次数;使用 Boruta + SHAP 选择某个特征的次数(右) 单独的标准 Boruta 在不考虑随机变量和 CustomerId 方面做得很好。SHAP + BORUTA 似乎也能更好地减少选择过程中的...
总之,Boruta算法是一种基于随机森林的特征选择方法,通过使用影子特征和迭代过程来确定重要特征,具有较高的准确性和鲁棒性。相对于其他特征选择方法,Boruta算法在处理高维和非线性数据方面表现优异,并且可以与其他模型集成以提高预测性能。 三、Boruta的优点及应用 3.1 Boruta算法的有效性和可靠性 Boruta算法具有以下几个优...
Boruta算法首先对数据集进行多次自助重采样(bootstrap),每次采样生成不同的数据集,并用这些数据集构建出多个随机森林。这样做的目的是通过多次采样和建模来减少随机误差,提高特征选择的稳定性。 2. 计算特征重要性 在每个随机森林中,Boruta算法使用变量重要性指标(如平均不纯度减少mean decrease impurity)来计算每个特征...
Boruta 算法是基于随机森林算法发展而来的。随机森林算法就像是一群聪明的“小助手”,每个“小助手”(决策树)都能从数据里学到一些东西,然后大家一起商量得出最终结论。Boruta 借助随机森林这个强大的工具,来判断每个特征到底重不重要。它的来源是为了解决在数据挖掘和机器学习中,特征选择不准确、不全面的问题。随着数...
Boruta算法的原理是基于随机森林(Random Forest)的特征重要性评估。其具体步骤如下: 1.创建阴影特征(shadow feature):从X开始,对每个真实特征R,随机打乱顺序,这些被打乱顺序的原始特征称为阴影特征(shadow features)。 2.训练模型:将新的特征矩阵N作为输入,训练模型,能输出feature_importances_的模型,如RandomForest,...
全面特征选择:Boruta 能够全面地评估特征的重要性,避免遗漏重要特征。 一致解释:SHAP 提供一致且可解释的特征贡献度量,有助于理解模型的行为。 结合使用:将 Boruta 和 SHAP 结合使用,可以先进行特征选择,再进行详细解释,效果更佳。 缺点: 计算复杂度:Boruta 和 SHAP 都涉及大量计算,尤其是当数据集较大时,计算时间...
由于Boruta期间随机森林运行的数量受到maxrunning参数的限制,因此当仍然存在判断为既不被确认也不被拒绝的属性时,可以强制停止计算,从而最终标记为暂定属性。instance: R> set.seed(1) R> Boruta.Short <- Boruta(V4 ~ ., data = Ozone, maxRuns = 12) ...
Boruta 拒绝和接受区域之间没有硬性规定 相反,有3个区域: 拒绝区域(红色区域):此处结束的要素被视为噪音,因此将其丢弃;一个无法解决的区域(蓝色区域):Boruta对于该区域中的特征犹豫不决;可接受区域(绿色区域):此处的特征被认为是可预测的,因此将其保留。