You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何绘制决策树GridSearchCV中AUC分数的参数热力图

解决GridSearchCV结果绘制热力图的参数与分数整合问题

核心思路

GridSearchCV的cv_results_字典包含了所有参数组合及对应分数,只需将这些数据转换为透视表格式(行对应max_depth,列对应min_samples_split,单元格值为AUC分数),即可直接用于热力图绘制。

完整实现代码

# 导入所需库
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 从cv_results_中提取参数与AUC分数,转为DataFrame
results_df = pd.DataFrame(clf.cv_results_)
# 筛选需要的字段:max_depth、min_samples_split、测试集AUC(若用训练集则替换为mean_train_score)
plot_data = results_df[['param_max_depth', 'param_min_samples_split', 'mean_test_score']]

# 转换为透视表,适配热力图格式
heatmap_data = plot_data.pivot(
    index='param_max_depth',
    columns='param_min_samples_split',
    values='mean_test_score'
)

# 绘制热力图
sns.set_style("whitegrid")
plt.figure(figsize=(8, 6))
ax = sns.heatmap(heatmap_data, annot=True, fmt=".3f", cmap="YlGnBu", cbar=True)

# 设置轴标签与标题
ax.set_xlabel('min_samples_split')
ax.set_ylabel('max_depth')
ax.set_title('GridSearchCV Test AUC Heatmap')

plt.show()

关键说明

  1. 数据转换:pivot方法将长格式的参数-分数数据转为宽格式,每个单元格对应一组参数组合的AUC结果;
  2. 热力图配置:annot=True显示单元格内的AUC数值,fmt=".3f"控制保留三位小数,cmap可根据需求更换颜色主题(如coolwarm);
  3. 切换数据集:若需绘制训练集AUC热力图,只需将mean_test_score替换为mean_train_score即可。

内容的提问来源于stack exchange,提问作者immrm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 18:15:47