如何根据 GradientBoost 结果绘制热图?

     2023-03-12     192

关键词:

【中文标题】如何根据 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)元... 查看详情