如何使用 1000 个估计器可视化集成模型(随机森林)

数据挖掘 分类 预测建模 可视化 随机森林 合奏
2022-02-17 03:44:00

我正在研究分类问题,我需要将用户分类为购买/非购买类别。我有大约 100 多个特征或预测器来预测用户的行为。

我尝试使用随机森林和梯度提升来实现与决策树相比更好的预测。当我在使用集成技术时根据 roc_auc、准确度、精确度和召回率等性能参数进行评估时,我会获得更好的性能。

我还提取了负责我的预测的重要特征,但我无法完全可视化模型。一些随机森林如何作为黑匣子工作,我没有得到每棵树的贡献,每棵树都考虑了哪些特征,等等。

有什么方法可以让我从随机森林模型中找到更多信息?

2个回答

您可以尝试SHAP,它直观地解释了(许多)机器学习模型的输出,包括 LightGBM 和 XGBoost。

但是,请注意,它不会为您提供整个集成模型(树)作为图片。
进一步注意,它不适用于RandomForest

如果您使用 python,sklearn 允许您以 DOT 格式导出决策树。

文档可以在这里找到

from sklearn.tree import export_graphviz
export_graphviz(decision_tree, out_file=None, max_depth=None, feature_names=None, class_names=None, label=’all’, filled=False, leaves_parallel=False, impurity=True, node_ids=False, proportion=False, rotate=False, rounded=False, special_characters=False, precision=3)

还有一个有用的指南来提取 png 中的结果