Gini 重要性(平均不纯度减少)是随机森林中评估特征重要性的核心指标,通过量化特征对节点分裂的贡献度进行排序。
定义
特征重要性 = 该特征在所有决策树中带来的基尼不纯度减少量的平均值。
数学推导
基尼不纯度
- :纯度最高(所有样本同类)
- :纯度最低(样本均匀分布)
不纯度减少量
Gini 重要性聚合
核心性质
| 优势 | 局限性 |
|---|---|
| 计算高效(仅平方运算) | 高基数特征偏向 |
| 可解释性强 | 训练数据依赖 |
| 适配大规模数据 | 相关特征相互稀释 |
| 集成鲁棒性 | 不适用于回归任务 |
适用场景
适用:分类任务特征筛选、模型可解释性分析、大规模数据探索
不适用:因果分析、高基数特征场景、回归任务、高精度评估
代码实现
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
import numpy as np
data = load_iris()
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(data.data, data.target)
importances = rf.feature_importances_
indices = np.argsort(importances)[::-1]
for idx in indices:
print(f"{data.feature_names[idx]}: {importances[idx]:.4f}")去偏实现
from ranger import RangerForestClassifier
rf_debias = RangerForestClassifier(
n_estimators=100,
importance="impurity_debiased" # 启用去偏
)
rf_debias.fit(X, y)
debiased_importances = rf_debias.feature_importances_实践技巧
- 规避高基数偏向:合并低频类别、结合排列重要性验证
- 参数调优:
n_estimators≥100、限制max_depth减少过拟合 - 结果解读:关注排序而非绝对值、处理类别不平衡后再评估