如何解决如何解释GradientBoostingClassifier或DecisionTreeRegressor的Graphviz输出
我正在尝试实现由sklearn训练的小型GradientBoostingClassifier(GBDT)模型的决策功能。但是,了解模型的工作原理似乎不是很简单。我不知道GBDT如何从树叶上的值计算logit(decision_function输出)。
为简化问题,我训练了只有1棵树(深度= 1)的GBDT(二进制分类),可以将其可视化如下:
由于它只有一棵树,因此我希望GBDT输出是-0.527599
或2.573845
的叶子值。相应的概率(通过S型prob = 1/(1+exp(-x))
)是0.371077
和0.929159
。
但是,当我使用decision_function
检查GBDT结果时,logit为-1.055683
和-0.43539427
,概率为0.2581353
和0.39283897
,即这些logit是Sigmoid,但我真的不知道这些logit是如何从树叶值中得出的。有谁知道decision_function是如何计算的?
如果它是多树GBDT模型怎么办?谢谢!
gbdt.decision_function(X_test)
[-1.055683 -1.055683 -1.055683 -1.055683 -0.43539427 -1.055683 ]
gbdt.predict_proba(X_test)
[[0.7418647 0.2581353 ]
[0.7418647 0.2581353 ]
[0.7418647 0.2581353 ]
[0.7418647 0.2581353 ]
[0.60716103 0.39283897]
[0.7418647 0.2581353 ]]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。