SHAP(SHapleyAdditiveexPlanations)以一种统一的方法来解释任何机器学习模型的输出。SHAP将博弈论与局部解释联系起来,将以前的几种方法结合起来,并根据预期表示唯一可能的一致且局部准确的加法特征归因方法(详见SHAPNIPSpaper 论文)。
虽然SHAP值可以解释任何机器学习模型的输出,但我们已经开发了一种用于树集合方法的高速精确算法(TreeSHAParXivpaper)。XGBoost,LightGBM,CatBoost和scikit-learn树模型支持快速C++实现:
importxgboostimportshap#loadJSvisualizationcodetonotebookshap.initjs()#trainXGBoostmodelX,y=shap.datasets.boston()model=xgboost.train({"learning_rate":0.01},xgboost.DMatrix(X,label=y),100)#explainthemodel'spredictionsusingSHAPvalues#(samesyntaxworksforLightGBM,CatBoost,andscikit-learnmodels)explainer=shap.TreeExplainer(model)shap_values=explainer.shap_values(X)#visualizethefirstprediction'sexplanation(usematplotlib=TruetoavoidJavascript)shap.force_plot(explainer.expected_value,shap_values[0,:],X.iloc[0,:])
评论