绘制混淆矩阵(MatLab/Python)

本文主要简单介绍如何绘制混淆矩阵      

首先混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。

        其实混淆矩阵就是用来判断我们的算法的分类准确度的一个可视化矩阵

1.使用matlab绘制混淆矩阵

        可以使用函数 plotconfusion 来绘制混淆矩阵

plotconfusion(y_true, y_predict)

其中y_true是我们一开始的分类的标签值,而y_predict使我们使用某个算法或者模型进行训练后对样本进行预测得到标签

注意:在使用函数前,要分别对二者使用categorical函数进行分类   如下:

predict_label = predict(SVMModel, data);
y_true = categorical(label);
y_predict = categorical(predict_label);
plotconfusion(y_true, y_predict)

 2.使用Python绘制混淆矩阵

使用sklearn库中的matrix中的confusion_matrix完成绘制

sklearn.metrics.confusion_matrix(y_true, y_pred, *, labels=None, sample_weight=None, normalize=None)
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt

y_pred = [] # ['2','2','3','1','4'] # 类似的格式
y_true = [] # ['0','1','2','3','4'] # 类似的格式
# 对上面进行赋值
C = confusion_matrix(y_true, y_pred)

plt.matshow(C, cmap=plt.cm.Blues) # 根据最下面的图按自己需求更改颜色
for i in range(len(C)):
    for j in range(len(C)):
        plt.annotate(C[j, i], xy=(i, j), horizontalalignment='center', verticalalignment='center')

plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()

可见没有matlab绘制的图那么美观 ,当然你也可以深入研究如何使用python绘制更加精美的混淆矩阵图。

以上就是我分享的内容...

### 如何在机器学习绘制分类混淆矩阵 #### 使用 MATLAB 的 `plotconfusion` 函数绘制混淆矩阵 MATLAB 提供了内置函数 `plotconfusion` 来方便地绘制混淆矩阵。该函数适用于二分类和多分类问题,可以直观地显示分类器的性能[^1]。 ```matlab % 假设 trueLabels 是真实标签,predictedLabels 是预测标签 trueLabels = [1 2 3 4 5]; predictedLabels = [1 2 3 4 5]; % 绘制混淆矩阵 figure; plotconfusion(trueLabels, predictedLabels); title('Confusion Matrix using plotconfusion'); ``` 此代码片段展示了如何使用 `plotconfusion` 函数来创建一个简单的混淆矩阵图。通过传递实际标签 (`trueLabels`) 和预测标签 (`predictedLabels`) 到该函数,即可生成相应的可视化图表。 #### 使用 Python 和 Matplotlib 绘制混淆矩阵 对于那些更倾向于使用 Python 进行数据分析的人来说,可以通过结合 Scikit-Learn 库中的 `confusion_matrix` 方法以及 Matplotlib 或 Seaborn 库来进行绘图操作[^3]。 ```python import numpy as np from sklearn.metrics import confusion_matrix import matplotlib.pyplot as plt import seaborn as sns # 创建示例数据集 y_true = ["cat", "ant", "cat", "cat", "ant", "bird"] y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"] # 计算混淆矩阵 cm = confusion_matrix(y_true, y_pred) # 可视化混淆矩阵 plt.figure(figsize=(8,6)) sns.heatmap(cm, annot=True, fmt='d', cmap="Blues") plt.title("Confusion Matrix Visualization with Heatmap") plt.ylabel('True label') plt.xlabel('Predicted label') plt.show() ``` 这段 Python 代码首先计算了给定的真实标签与预测标签之间的混淆矩阵,接着利用热力图的形式将其呈现出来。这种方法不仅限于二元分类,在处理多个类别的时候同样适用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

He_xj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值