多标签分类结果可视化

一、多标签混淆矩阵

cm= multilabel_confusion_matrix(y_test,y_pred_df )

这里的y_test与y_pred_df需要是二进制的多标签编码

多标签分类的混淆矩阵与多分类混淆矩阵不同,不再是二维矩阵,而变成了三维矩阵,第一维度是多个标签类别数的相加,如我的数据有两个标签,第一个标签下有六类,第二个标签有16类,那么多标签混淆矩阵的第一维度就是22,其形状是22*2*2

[[[123   0]
  [  1  20]]

 [[133   0]
  [  2   9]]

 [[134   0]
  [  1   9]]...........]

也就是有22个2*2的小矩阵组成。

 第一个矩阵代表第一类的分类情况(我的数据类别标签在第一篇博文中)

第一行数据的第一个,123表示不是第一类并且判断时也认为不是第一类的样本数,第一行数据第二个,0表示不是第一类但判断为第一类的样本数

第二行数据第一个,1表示是第一类但判断结果不是第一类,第二个数据20,表示是第一类且判断结果也是第一类

二、多标签混淆矩阵的可视化

需要将每个小矩阵都画成热图,然后组合在一起

import seaborn as sns
import matplotlib.pyplot as plt


matrix_list = cm

# 设置画布大小
plt.figure(figsize=(10, 10))

# 遍历小矩阵列表
labels = ["".join("c" + str(i)) for i in range(0, 22)]
for i, matrix in enumerate(matrix_list):
    labels = ["A", "A1", "A2", "B", "B1", "B2", "B3", "B4", "C", "C1", "C2", "C3", "D", "D1", "D2", "E", "E1", "E2",
              "F", "F1", "F2", "F3"]#这里是我的类别,要作为热图的标题

    plt.subplot(6, 4, i + 1)
      # 创建一个子图,共有6行4列,当前子图为第i+1个子图
    sns.heatmap(matrix, annot=True,fmt="d", cmap="Blues", cbar=False,xticklabels=["N","Y"],yticklabels=["N","Y"])  # 绘制热图,不显示颜色条
    plt.title(f"class{labels[i]}")#为每个热图加上对应的类别标题

# 调整子图之间的间距
plt.tight_layout()

# 显示图像
plt.show()

                
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可视化随机森林分类结果,你可以使用以下步骤: 1. 获取随机森林模型分类结果。这可以通过模型的predict方法来实现,它会返回每个样本的预测标签。 2. 将分类结果与真实标签进行比较,以评估模型的准确性。你可以使用混淆矩阵或分类报告来获得更详细的评估结果。 3. 使用合适的图表库(例如matplotlib)创建可视化图表。根据数据的特点,你可以选择绘制柱状图、热力图、散点图等。 下面是一个示例代码,展示如何可视化随机森林分类结果: ```python import numpy as np import matplotlib.pyplot as plt from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.metrics import confusion_matrix # 生成一些随机数据用于演示 X, y = make_classification(n_samples=1000, n_features=10, random_state=42) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 训练随机森林模型 model = RandomForestClassifier() model.fit(X_train, y_train) # 获取预测结果 y_pred = model.predict(X_test) # 创建混淆矩阵 cm = confusion_matrix(y_test, y_pred) # 绘制混淆矩阵 plt.imshow(cm, interpolation='nearest', cmap=plt.cm.Blues) plt.colorbar() plt.xlabel("Predicted") plt.ylabel("Actual") plt.xticks(np.arange(len(np.unique(y))), np.unique(y)) plt.yticks(np.arange(len(np.unique(y))), np.unique(y)) plt.title("Confusion Matrix") plt.show() ``` 这段代码会生成一个混淆矩阵的热力图,用于可视化随机森林分类结果。你可以根据需要进行修改和调整,以适应你的数据和模型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值