SHAP(SHapleyAdditiveexPlaatios)以一种统一的方法来解释任何机器学习模型的输出。SHAP将博弈论与局部解释联系起来,将以前的几种方法结合起来,并根据预期表示唯一可能的一致且局部准确的加法特征归因方法(详见SHAPNIPSpaper 论文)。
虽然SHAP值可以解释任何机器学习模型的输出,但我们已经开发了一种用于树集合方法的高速精确算法(TreeSHAParXivpaper)。XGBoost,LightGBM,CatBoost和scikit-lear树模型支持快速C++实现:
importxgboostimportshap#loadJSvisualizatiocodetootebookshap.iitjs()#traiXGBoostmodelX,y=shap.datasets.bosto()model=xgboost.trai({"learig_rate":0.01},xgboost.DMatrix(X,label=y),100)#explaithemodel'spredictiosusigSHAPvalues#(samesytaxworksforLightGBM,CatBoost,adscikit-learmodels)explaier=shap.TreeExplaier(model)shap_values=explaier.shap_values(X)#visualizethefirstpredictio'sexplaatio(usematplotlib=TruetoavoidJavascript)shap.force_plot(explaier.expected_value,shap_values[0,:],X.iloc[0,:])
评论