关键词:
【中文标题】如何根据 GradientBoost 结果绘制热图?【英文标题】:How to plot heatmap based on GradientBoost results? 【发布时间】:2019-08-18 11:25:41 【问题描述】:我想根据 y_predict 和 y_train 的结果打印混淆矩阵的热图。
我有点卡住了,我已经查看了热图的 pandas 文档,但仍然不知道如何将它应用到我的结果中。我使用的数据集是关于收入的,有分类和数字数据。我已经应用了 GB 分类器并得到了结果。 唯一剩下的就是热图。
print(confusion_matrix(y_train,y_pred_train))
print(y_train)
这就是结果
Confusion Matrix:
[[14151 710]
[ 1844 2831]]
Name: income, Length: 19536, dtype: int64
这是制作热图的尝试
import seaborn as sns
class_names = y_train, y_pred_train
def print_confusion_matrix(confusion_matrix, class_names, figsize = (10,7), fontsize=14):
df_cm = pd.DataFrame(
confusion_matrix, index=class_names, columns=class_names,
)
fig = plt.figure(figsize=figsize)
try:
heatmap = sns.heatmap(df_cm, annot=True, fmt="d")
except ValueError:
raise ValueError("Confusion matrix values must be integers.")
heatmap.yaxis.set_ticklabels(heatmap.yaxis.get_ticklabels(), rotation=0, ha='right', fontsize=fontsize)
heatmap.xaxis.set_ticklabels(heatmap.xaxis.get_ticklabels(), rotation=45, ha='right', fontsize=fontsize)
plt.ylabel('True label')
plt.xlabel('Predicted label')
return fig
返回的
NameError Traceback (most recent call last)
<ipython-input-36-3bd0e9ee90a4> in <module>()
18 plt.xlabel('Predicted label')
19 return fig
---> 20 print(fig)
NameError: name 'fig' is not defined
那么当我在我的结果上制作混淆矩阵的热图时,我错过了什么?
【问题讨论】:
你可以用你的混淆矩阵来调用函数,例子见我的回答 而print(fig)
的错误是fig
是在函数内部定义的,如果要在函数范围之外使用,可以用fig = print_confusion_matrix(...
设置,因为它是从您的函数返回 return fig
【参考方案1】:
您可以使用混淆矩阵和类名列表作为参数调用print_confusion_matrix
函数:
def print_confusion_matrix(confusion_matrix, class_names, figsize = (10,7), fontsize=14):
df_cm = pd.DataFrame(
confusion_matrix, index=class_names, columns=class_names,
)
fig = plt.figure(figsize=figsize)
try:
heatmap = sns.heatmap(df_cm, annot=True, fmt="d")
except ValueError:
raise ValueError("Confusion matrix values must be integers.")
heatmap.yaxis.set_ticklabels(heatmap.yaxis.get_ticklabels(), rotation=0, ha='right', fontsize=fontsize)
heatmap.xaxis.set_ticklabels(heatmap.xaxis.get_ticklabels(), rotation=45, ha='right', fontsize=fontsize)
plt.ylabel('True label')
plt.xlabel('Predicted label')
return fig
confusion_matrix = np.array([[14151, 710], [1844, 2831]])
fig = print_confusion_matrix(confusion_matrix, ['0', '1'])
输出:
【讨论】:
非常感谢您的帮助!如何在绘制多个热图时修复plt.tight_layout()错误(代码片段)
...的结果没有plt.tight_layout():heatmapswithoutplt.tight_layout()如何在没有重叠/过度拥挤的情况下将这些热图绘制在一起?这些plt.tight_layout()错误意味着什么?这是我得到的错误:Traceback(most 查看详情
如何从 pandas DataFrame 绘制热图
】如何从pandasDataFrame绘制热图【英文标题】:HowtoplotaheatmapfrompandasDataFrame【发布时间】:2016-06-1718:00:00【问题描述】:这是我的数据框:janfmamj\\2000-7.89473722.38700622.07792214.545515.8038-3.333332001-3.57894711.95876328.7410935.0541574.715111.242 查看详情
如何将数组绘制为热图时间序列
】如何将数组绘制为热图时间序列【英文标题】:Howtoplotanarrayasaheatmaptimeseries【发布时间】:2019-10-2316:04:41【问题描述】:我正在尝试创建一个sns热图,其中每一行代表一个数组条目。我的数组看起来像:arr=[[a,b,c],[b,c,d],[e,f,g]]... 查看详情
用文本绘制美国热图
...每个州都印有Percent.Turnout。此外,使用ColorBrewer包,我想根据Percen 查看详情
网格搜索后如何在 pivot_table 上绘制热图
】网格搜索后如何在pivot_table上绘制热图【英文标题】:howtoplotaheatmaponpivot_tableaftergrid-search【发布时间】:2018-07-2507:02:04【问题描述】:我使用ElasticNet进行了网格搜索,但在绘制热图以查看alpha和l1比率之间的关系时遇到了麻烦... 查看详情
如何在网格搜索后绘制热图并找到决策树的最佳超参数
】如何在网格搜索后绘制热图并找到决策树的最佳超参数【英文标题】:howtoplotaheatmapandfindbesthyperparameterfordecisiontreeaftergridsearch【发布时间】:2019-10-1115:31:48【问题描述】:我需要绘制一个热图,以便在网格搜索kaggle提供的捐助... 查看详情
如何从python中的两个一维数组中绘制相似度热图?
】如何从python中的两个一维数组中绘制相似度热图?【英文标题】:Howtodrawaheatmapofsimilarityfromtwoonedimensionalarraysinpython?【发布时间】:2021-09-1607:08:12【问题描述】:我有两个数组如下,a=np.array([5.,10.,20.,19.,1.,10.,60.])b=np.array([7.,10.,... 查看详情
珍藏史上最全热图绘制工具及操作流程(一)
...浅表示出来。热图使复杂的数据可视化和一目了然。通常根据需要将数据进行物种或样品间丰度相似性聚类,将聚类后数据表示在热图上,可将高丰度和低丰度的物种分块聚集,通过颜色梯度及相似程度来反映多个样品在各分类... 查看详情
我们如何在热图中绘制来自多索引数据框的数据?
】我们如何在热图中绘制来自多索引数据框的数据?【英文标题】:Howcanweplotdatafromamulti-indexdataframeinaheatmap?【发布时间】:2021-10-1118:40:09【问题描述】:我正在像这样旋转一个数据框。pvt=pd.pivot_table(df_build,values=\'Expense\',index=[\'... 查看详情
如何使用纬度,经度和值作为幅度正确绘制密度热图?
】如何使用纬度,经度和值作为幅度正确绘制密度热图?【英文标题】:Howtoproperlyplotadensityheatmapusinglat,lonandvaluesasmagnitude?【发布时间】:2021-05-0910:05:41【问题描述】:作为有用的信息,我使用的是spyder,我的数据集包含4,173,841... 查看详情
如何根据预先确定的约束值自定义热图颜色?
】如何根据预先确定的约束值自定义热图颜色?【英文标题】:Howtocustomizeheatmapcoloronpredecidedconstraintvalues?【发布时间】:2015-09-0504:18:52【问题描述】:我正在研究热图,情况是我必须根据一些约束更改热图标记的颜色,并且颜... 查看详情
一个函数实现基因内具有多种突变类型的热图的绘制(代码片段)
...用data.table进行数据处理。对于一个基因内多种突变类型如何表现出来的问题,这个函数先采用image将初步的热图绘制出来 查看详情
热图没有根据我的数组值工作[关闭]
】热图没有根据我的数组值工作[关闭]【英文标题】:Heatmapnotworkingaccordinglytomyarrayvalue[closed]【发布时间】:2021-12-0400:45:22【问题描述】:我目前正在尝试绘制范围从0(红色)到1(蓝色)的浓度图。这是我已经拥有的一组数据(... 查看详情
运用r语言pheatmap包绘制热图进阶部分
...可以参考上一期内容这是注释颜色,好像不是特别好看,根据自己美感慢慢调节运用R语言pheatmap包绘制热图进阶部分的内容就到这结束了。 查看详情
我可以为散景热图绘制颜色条吗?
...制热图的颜色条?Inthisexample这将是一个条带,说明颜色如何与值对应。在matlab中,它被称为“颜色条”,如下所示:【问题讨论】:【参考方案1】:更新:现在要容易得多:请参阅http://docs.bokeh.org/en 查看详情
从三个列表中绘制热图:X、Y、强度
...02-2918:56:18【问题描述】:当我有x、y、强度时,我不知道如何创建热图(或等高线图)。我有一个看起来像这样的文件:0,1,60,2,10....到目前为止:withopen(\'eye_.txt\',\'r\')asf:forlineinf:forwordinlin 查看详情
python如何根据存储在python列表中的数据制作热图(代码片段)
使用 Matplotlib 绘制 2D 热图
】使用Matplotlib绘制2D热图【英文标题】:Plottinga2DheatmapwithMatplotlib【发布时间】:2016-01-2119:28:05【问题描述】:使用Matplotlib,我想绘制2D热图。我的数据是一个n×nNumpy数组,每个数组的值都在0和1之间。所以对于这个数组的(i,j)元... 查看详情