Seaborn 混淆矩阵图

Ammar Ali 2024年2月15日
Seaborn 混淆矩阵图

本教程将讨论在 Python 中使用 Seaborn 的 heatmap() 函数绘制混淆矩阵。

使用 Seaborn 绘制混淆矩阵

在分类问题中,预测结果的摘要存储在混淆矩阵中。我们必须绘制混淆矩阵来查看正确和错误预测的计数。

要绘制混淆矩阵,我们必须创建混淆矩阵的数据框,然后我们可以使用 Seaborn 的 heatmap() 函数在 Python 中绘制混淆矩阵。例如,让我们创建一个随机混淆矩阵并使用 heatmap() 函数绘制它。请参阅下面的代码。

import seaborn as snNew
import pandas as pdNew
import matplotlib.pyplot as pltNew

array = [
    [11, 1, 0, 2, 0],
    [3, 8, 0, 1, 0],
    [0, 16, 3, 0, 0],
    [0, 0, 12, 0, 0],
    [0, 0, 0, 13, 0],
    [0, 1, 0, 0, 16],
]

DetaFrame_cm = pdNew.DataFrame(array, range(6), range(5))
snNew.heatmap(DetaFrame_cm, annot=True)
pltNew.show()

输出:

混淆矩阵图

为了创建混淆矩阵的数据框,我们使用了 pandas 库的 DataFrame() 函数。要创建数据框,我们必须传递数组、行数和列数。

heatmap() 函数中的第二个参数用于在图上显示混淆矩阵值。如果我们不使用第二个参数 annot,矩阵值将不可见,我们只会看到颜色。

我们可以将绘图的颜色图更改为冬季、夏季、凉爽、铜和热等功能支持的任何颜色图。我们还可以使用 cbar 参数关闭绘图右侧显示的颜色条并将其设置为 false。

我们还可以使用 linewidthslinecolor 参数指定每个单元格周围线条的宽度和颜色。我们可以使用任何浮点值来设置线宽的值。我们可以使用颜色名称或颜色的首字母来设置线条颜色的值。

我们可以使用 square 参数将每个单元格形状设置为正方形并将其设置为 true。我们还可以使用用于 x 轴刻度标签的 xticklabels 和用于 y 轴刻度标签的 yticklabels 设置每个轴的刻度标签。

我们可以将刻度标签参数设置为与 x 轴单元格大小相同的列表。例如,让我们更改上面提到的参数。请参阅下面的代码。

import seaborn as snNew
import pandas as pdNew
import matplotlib.pyplot as pltNew

array = [
    [11, 1, 0, 2, 0],
    [3, 8, 0, 1, 0],
    [0, 16, 3, 0, 0],
    [0, 0, 12, 0, 0],
    [0, 0, 0, 13, 0],
    [0, 1, 0, 0, 16],
]

DetaFrame_cm = pdNew.DataFrame(array, range(6), range(5))
snNew.heatmap(
    DetaFrame_cm,
    annot=True,
    cmap="summer",
    cbar=False,
    linewidths=3,
    linecolor="r",
    square=True,
    xticklabels=["a", "b", "c", "d", "e"],
)
pltNew.show()

输出:

更改混淆矩阵图的参数

我们还可以使用 Seaborn 的 set() 函数设置两个轴的刻度标签的字体大小。我们可以使用 set() 函数中的 font_scale 参数将字体值设置为任何浮点数。例如,要设置上图的字体大小,我们可以使用下面的代码。

snNew.set(font_scale=1.9)

如果我们想减小字体大小,我们必须使用小于 1 的值。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - Seaborn Plot