52matlab技术网站,matlab教程,matlab安装教程,matlab下载

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 14648|回复: 0
打印 上一主题 下一主题

categorical数组绘制混淆矩阵遇到的问题

[复制链接]

125

主题

209

帖子

3064

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3064
跳转到指定楼层
楼主
发表于 2023-2-16 17:16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


使用相同categorical数组绘制混淆矩阵,由于要将其中的数字标签替换成字符标签{'直流电压偏差','直流电压波动','直流电压纹波','动态电压暂降','线路故障暂降','正常'},开始使用find寻找index替换的方式,具体代码如下:
  1. YTest(find(YTest == categorical(1))) = categorical({'直流电压偏差'});
  2.     YTest(find(YTest == categorical(2))) = categorical({'直流电压波动'});
  3.     YTest(find(YTest == categorical(3))) = categorical({'直流电压纹波'});
  4.     YTest(find(YTest == categorical(4))) = categorical({'动态电压暂降'});
  5.     YTest(find(YTest == categorical(5))) = categorical({'线路故障暂降'});
  6.     YTest(find(YTest == categorical(6))) = categorical({'正常'});

  7.     YPred(find(YPred == categorical(1))) = categorical({'直流电压偏差'});
  8.     YPred(find(YPred == categorical(2))) = categorical({'直流电压波动'});
  9.     YPred(find(YPred == categorical(3))) = categorical({'直流电压纹波'});
  10.     YPred(find(YPred == categorical(4))) = categorical({'动态电压暂降'});
  11.     YPred(find(YPred == categorical(5))) = categorical({'线路故障暂降'});
  12.     YPred(find(YPred == categorical(6))) = categorical({'正常'});
复制代码
结果使用绘制的混淆矩阵如下图所示:

结果显示的混淆矩阵除了修改后的标签,还包含原来的数字标签,但是看标签的数据类型还是categorical数组,如下图示:

查看数据类型,完全一致,无法解决问题。后来使用categorical自带的替换功能,代码如下:

  1. YTest = categorical(double(YTest),[1,2,3,4,5,6],{'直流电压偏差','直流电压波动','直流电压纹波','动态电压暂降','线路故障暂降','正常'})
复制代码
解决。绘制的混淆矩阵中字符标签完美取代数字标签,如下图示:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|52matlab技术网站 ( 粤ICP备14005920号-5 )

GMT+8, 2024-11-1 07:48 , Processed in 0.067013 second(s), 20 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表