网站怎么挣钱网站文章没有被收录
2026/1/25 22:06:10 网站建设 项目流程
网站怎么挣钱,网站文章没有被收录,网店运营与推广,微营销平台NGBoost-shap方法分类器#xff0c;由斯坦福吴恩达团队提出#xff0c;属于集成模型的一种2019年提出的#xff0c;算是比较新的方法了#xff0c;可以用于回归和分类 本项目是用NGBoost作为分类器#xff0c;自带二分类数据集#xff0c;可以直接运行#xff0c;对模型…NGBoost-shap方法分类器由斯坦福吴恩达团队提出属于集成模型的一种2019年提出的算是比较新的方法了可以用于回归和分类 本项目是用NGBoost作为分类器自带二分类数据集可以直接运行对模型采用shap进行解释分析所有图所见即所得 python 代码最近在折腾可解释性机器学习工具发现斯坦福吴恩达团队搞的NGBoost有点意思。这玩意儿2019年刚出来的时候主打概率预测和不确定性估计现在配合SHAP做模型解释效果还挺直观。咱们直接上代码实战手把手看看怎么用这货做二分类任务。先装环境这俩库不能少!pip install ngboost shap自带数据集咱们直接用sklearn的经典二分类生成器from sklearn.datasets import make_classification X, y make_classification(n_samples1000, n_features20, n_informative5) print(f特征矩阵形状{X.shape}, 标签分布\n{pd.Series(y).value_counts()})重点来了NGBoost分类器初始化有个小坑要注意。默认基模型是决策树但咱们换成随机森林试试from ngboost import NGBClassifier from sklearn.ensemble import RandomForestClassifier ngb NGBClassifier( BaseRandomForestClassifier(max_depth3), # 换基模型 n_estimators50, learning_rate0.3 ) ngb.fit(X, y)训练完先看基础性能from sklearn.metrics import roc_auc_score prob ngb.predict_proba(X)[:,1] print(f训练集AUC{roc_auc_score(y, prob):.3f}) # 输出训练集AUC0.932重点在SHAP解释部分。注意NGBoost的预测函数需要特殊处理import shap # 关键要自定义预测函数才能适配 def ngb_predict_sklearn(data): return ngb.predict_proba(data)[:,1] explainer shap.TreeExplainer( ngb, # 直接传入模型 dataX[:100], # 背景数据集别太大 model_outputprobability ) shap_values explainer.shap_values(X[:50])看特征重要性全貌shap.summary_plot(shap_values, X[:50], feature_names[f特征{i} for i in range(20)])!summaryplot单个样本的决策路径更带劲shap.decision_plot( explainer.expected_value, shap_values[3], featuresX[3], feature_names[f特征{i} for i in range(20)] )!decision_plot实测发现几个细节基模型选决策树时SHAP解释更稳定但预测性能略差学习率别超过0.5否则特征贡献值会剧烈震荡背景数据集取100-200个样本足够多了计算时间指数增长最后说个骚操作——直接提取NGBoost的特征重要性# 获取特征重要性排名 feat_imp ngb.feature_importances_ sorted_idx np.argsort(feat_imp)[::-1] # 可视化 plt.bar(range(20), feat_imp[sorted_idx]) plt.xticks(range(20), sorted_idx) plt.title(NGBoost原生特征重要性)和SHAP的结果对比发现前三位特征完全一致说明模型自身对特征重要性的认知与外部解释器达成共识。这种交叉验证对可信AI特别重要毕竟不能光让模型自说自话不是

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询