RF+SHAP分析是一种可解释分析的机器学习技术,可以量化特征重要性等,但是原始的SHAP分析图容易出现较为杂乱,信息单一的情况,下面分享一下我常用的SHAP分析图的绘制代码:
最终绘图结果展示:
废话不多说,直接上代码:
模型运行前数据准备部分:
### 选择自己使用的数据,行为样本,列为特征
merged_data = data
# 选择特征和目标标签
# 部分特征
initial_features = ['Year', 'Athletes_Num', 'F', 'M', 'Gold_Ratio', 'Silver_Ratio', 'Bronze_Ratio', 'is_host', 'Participated_Projects', 'Total_Projects']
# 数据中18列及以后的特征
additional_features = merged_data.columns[17:].tolist()
# 这里可以直接对features进行命名,如 features = ['year','Age','Gender']替换成自己的即可
features = initial_features + additional_features
X = merged_data[features]
# 处理缺失值,均值填充
imputer = SimpleImputer(strategy='mean')
X = pd.DataFrame(imputer.fit_transform(X), columns=X.columns)
# 选择标签
targets = ['Gold','Total'] # 这里也可以选择单个特征作为标签如 targets = ['Gold']
# 定义空模型
models = {}
shap_values_list &