2024-05-28 18:34:10 发布
网友
我试图找到一种方法来计算XGBoostClassifier中树的每个决策节点的值。我知道这可以通过sklearn树方法来实现,如RandomForest、DecisionTree等。例如-
我发现xgboostget_dump方法只显示叶节点的值。目标是在结果中找到树中每个特征的贡献。如- 结果=偏差+贡献(特征1)+…+贡献(特征n)
这里有一个类似的例子-https://blog.datadive.net/interpreting-random-forests/
有两种方法可供参考
pred_contribs
import lightgbm as lgb import numpy as np import pandas as pd import sklearn X, y = sklearn.datasets.load_breast_cancer(return_X_y=True) model = xgb.XGBClassifier( ) model.fit(X, y) model._Booster.predict(xgb.DMatrix(X[[0],:]),pred_contribs=True) # for first sample, each feature's contribu # array([[ 0.01069788, 0.5564505 , 0. , -0.18979889, -0.12519032, # 0.0419167 , -0.04723313, -1.0029427 , 0.00691214, 0.0219936 , # -0.24528527, -0.01379179, -0.08468378, -0.870576 , 0.00372334, # 0.11168513, -0.01564308, 0.01463292, 0.03310397, 0.01167833, # -0.70834243, 1.7004861 , -0.53104496, -1.2110311 , -0.2576103 , # -0.07476614, -0.40844473, -1.656179 , -0.02658875, -0.03065292, # 0.9892135 ]], dtype=float32)
有两种方法可供参考
pred_contribs
参数:相关问题 更多 >
编程相关推荐