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

基于ElasticNet网格搜索后的pivot_table绘制热力图求助

解决ElasticNet网格搜索结果热力图绘制问题

嘿,我之前做ElasticNet调参的时候也碰到过一模一样的情况!既然你已经成功生成了pivot_table,那距离画出清晰的热力图只差最后几步——用seaborn的heatmap就能完美实现你想要的效果,下面是具体的操作步骤和代码示例:

第一步:确认依赖库已导入

首先确保你已经安装并导入了可视化所需的库:

import seaborn as sns
import matplotlib.pyplot as plt

第二步:用seaborn热力图可视化pivot_table

假设你已经从GridSearchCV的结果中生成了包含alpha、l1_ratio和对应测试分数的pivot_table(比如命名为score_pivot),直接传入seaborn.heatmap即可,还可以通过参数优化显示效果:

# 设置画布大小,避免图表拥挤
plt.figure(figsize=(12, 8))

# 绘制热力图,关键参数说明:
# - annot=True: 在每个单元格显示具体的测试分数
# - cmap='coolwarm': 选择颜色映射(可以换成viridis、RdYlBu等你喜欢的主题)
# - fmt='.3f': 控制分数显示的小数位数
# - cbar=True: 显示右侧的颜色条,对应分数与颜色的映射关系
heatmap = sns.heatmap(score_pivot, annot=True, cmap='coolwarm', fmt='.3f', cbar=True)

# 自定义图表标签和标题,让结果更易读
heatmap.set_xlabel('L1 Ratio')
heatmap.set_ylabel('Alpha')
heatmap.set_title('ElasticNet Grid Search: Mean Test Score Distribution')

# 调整布局,防止坐标轴标签被截断
plt.tight_layout()
# 显示图表
plt.show()

额外提示

如果你的pivot_table是从GridSearchCV的cv_results_生成的,记得确保pivot的行是alpha、列是l1_ratio,值是交叉验证的平均测试分数(比如mean_test_score),示例生成pivot_table的代码参考:

import pandas as pd

# 假设grid_search是你训练好的GridSearchCV实例
results_df = pd.DataFrame(grid_search.cv_results_)
# 生成pivot_table
score_pivot = results_df.pivot_table(
    index='param_alpha',
    columns='param_l1_ratio',
    values='mean_test_score'
)

这样就能得到一张清晰展示alpha和l1_ratio组合对应模型性能的热力图啦,不同颜色深浅直观反映分数高低,单元格里的数值也能让你精准定位最优参数组合~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:18:57