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。
我们还可以使用 linewidths
和 linecolor
参数指定每个单元格周围线条的宽度和颜色。我们可以使用任何浮点值来设置线宽的值。我们可以使用颜色名称或颜色的首字母来设置线条颜色的值。
我们可以使用 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 的值。