我正在研究分类问题,我需要将用户分类为购买/非购买类别。我有大约 100 多个特征或预测器来预测用户的行为。
我尝试使用随机森林和梯度提升来实现与决策树相比更好的预测。当我在使用集成技术时根据 roc_auc、准确度、精确度和召回率等性能参数进行评估时,我会获得更好的性能。
我还提取了负责我的预测的重要特征,但我无法完全可视化模型。一些随机森林如何作为黑匣子工作,我没有得到每棵树的贡献,每棵树都考虑了哪些特征,等等。
有什么方法可以让我从随机森林模型中找到更多信息?
我正在研究分类问题,我需要将用户分类为购买/非购买类别。我有大约 100 多个特征或预测器来预测用户的行为。
我尝试使用随机森林和梯度提升来实现与决策树相比更好的预测。当我在使用集成技术时根据 roc_auc、准确度、精确度和召回率等性能参数进行评估时,我会获得更好的性能。
我还提取了负责我的预测的重要特征,但我无法完全可视化模型。一些随机森林如何作为黑匣子工作,我没有得到每棵树的贡献,每棵树都考虑了哪些特征,等等。
有什么方法可以让我从随机森林模型中找到更多信息?
您可以尝试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 中的结果