-
高维多标签分类matlab
2020-12-30 15:19:01高维多标签分类matlab knn,svm,随机森林等算法 784维数据 分为10类 -
大量多标签多类别分类代码和算法matlab版本
2015-05-05 08:44:00内含有大量多标签多类别分类算法和对应的代码,包括MIML_LPT,MIMLBoost,MIMLSVM,MIMLfast,KISAR,MIMLKNN,MLKNN,DMIMLSVM,MIMLMISVM等等,部分代码含有对应的文献,学习多类标分类的好资源。 -
使用matlab处理分类数据多标签问题
2019-01-20 22:33:40在使用matlab处理数据标签时, 1,首先要判断这张图片标签是否是符合规则的,对于不符合要舍去。在某些情况下,可能不能完全舍去。那么就需要,根据保留标签的特点,来存储数据。比如 使用case 语句。 2,标签可以...在使用matlab处理数据标签时,
1,首先要判断这张图片标签是否是符合规则的,对于不符合要舍去。在某些情况下,可能不能完全舍去。那么就需要,根据保留标签的特点,来存储数据。比如 使用case 语句。
2,标签可以过多或者需要融合,可以根据原始图片的特点来融合数据。
-
决策树matlab实现二分类或者多分类
2018-11-16 17:41:50代码解释 maketree函数递归建立树 tree=struct(‘isnode’,1,‘a’,0.0,‘mark’,0.0,...代码可以自动适应不同的分类标签和类别个数 代码 function tree=maketree(D,a) tree=struct('isnode',1,'a',0.0,'mark',...代码解释
maketree函数递归建立树
tree=struct(‘isnode’,1,‘a’,0.0,‘mark’,0.0,‘child’,{}) 所有分支递归的存在child{}中
函数gan(D)计算D的信息率
代码可以自动适应不同的分类标签和类别个数代码
function tree=maketree(D,a) tree=struct('isnode',1,'a',0.0,'mark',0.0,'child',{});%isnode判断是否是分支还是叶子,a表示节点属性,若节点是叶子,a表示分类结果,child是孩子 tree(1).a=1;%给tree分配一个确切的内存 if length(unique(D(:,end)))==1%D中样本属于同一类别 tree.isnode=0;%把tree标记为树叶 tree.a=D(1,end);%把tree的类别标记为D的类别 return end if sum(a)==0 ||length(D)==0 %属性划分完毕 tree.isnode=0;%把tree标记为树叶 tree.a=mode(D(:,end));%把tree的类别标记为D出现最多的类别 return end for i=1:length(a) if a(i)==1 if length(unique(D(:,i)))==1 tree.isnode=0;%把tree标记为树叶 tree.a=mode(D(:,end));%把tree的类别标记为D出现最多的类别 return end end end gain=zeros(length(a),1); %保存每个属性的信息增益 best=zeros(length(a),1); %保存每个属性的最佳划分 for i=1:length(a) if a(i)==1 t=D(:,i); t=sort(t); gain1=zeros(length(t)-1,1); for j=1:length(t)-1%二分划分 ta=(t(j)+t(j+1))/2; Df=D(D(:,i)<=ta,:); Dz=D(D(:,i)>ta,:); gain1(j)=ent(D)-(ent(Df)*length(Df(:,end))/length(D(:,end))+ent(Dz)*length(Dz(:,end))/length(D(:,end))); end [gain(i),j]=max(gain1); ta=(t(j)+t(j+1))/2; best(i)=ta; end end [g,m]=max(gain);%选择信息增益最大的属性 D1=D(D(:,m)<=best(m),:); D2=D(D(:,m)>best(m),:); a(m)=0; tree.a=best(m); %建立分支 tree.mark=m; % disp('****************************') % tree.a % tree.mark tree.isnode=1; tree.child(1)=maketree(D1,a); tree.child(2)=maketree(D2,a); end function f=ent(D)%计算信息商 l=unique(D(:,end)); if length(D)==0 f=0; return end f=0; t=zeros(length(l),1); for i=1:length(D(:,end)) for j=1:length(l) if D(i,end)==l(j) t(j)=t(j)+1; break; end end end n=length(D(:,end)); for i=1:length(l) f=f+(t(i)/n)*log2(t(i)/n); end f=-f; end
测试结果
在训练集测试结果精度是0.91
该测试函数是测试随机森林的函数,但不影响测试决策树。function randomforest() clc clear all T=1;%bagging采样的次数 M = importdata('D:\毕业设计\数据集1\australian.txt'); %读取数据 [sm,sn]=size(M); % for i=1:sm %归一化 % mins=min(M(i,1:sn-1)); % maxs=max(M(i,1:sn-1)); % for j=1:sn-1 % M(i,j)=2*(M(i,j)-mins)/(maxs-mins)-1; % end % end indices=crossvalind('Kfold',M(1:sm,sn),10); %十折交叉,划分训练集和测试集 testindices=(indices==1); %测试集索引 trainindices=~testindices;%训练集索引 trainset=M(trainindices,:); %获取训练集 testset=M(testindices,:);%获取测试集 [testm,~]=size(testset); [trainm,trainn]=size(trainset); predict=zeros(trainm,T); for t=1:T %开始bagging采样 D=[];%训练集 for i=1:trainm%采样 k=randperm(trainm,1); D=[D;trainset(k,:)]; end [~,sn]=size(D); a=ones(sn-1,1);%属性集合a,1代表该属性未被划分 tree=maketree(D,a);%递归构造简单决策树 for i=1:trainm treet=tree; while 1 if treet.isnode==0 predict(i,T)=treet.a; break; end if trainset(i,treet.mark)<=treet.a treet=treet.child(1); else treet=treet.child(2); end end end end acc=0; for i=1:trainm if trainset(i,end)==mode(predict(i,:)) acc=acc+1; end end acc=acc/trainm end
-
利用Matlab生成文本格式的图像目录及分类标签
2018-10-18 10:01:24%% 生成txt格式的图像分类标签 path='D:\人工智能\图像识别数据\'; folders=dir(path);% dir是direcory的缩写,是目录的意思,返回的folders是结构体,包含所有的目录和两个特殊的目录,一个是“.”,代表该文件夹...话不多说,直接上代码,有问题请留言
clc;clear;close; %% 生成txt格式的图像分类标签 path='D:\人工智能\图像识别数据\'; folders=dir(path);% dir是direcory的缩写,是目录的意思,返回的folders是结构体,包含所有的目录和两个特殊的目录,一个是“.”,代表该文件夹本身,还有一个是“..”,代表该文件夹的上一层文件夹 fid_train=fopen('D:\人工智能\图像识别数据\train.txt','wt'); fid_test=fopen('D:\人工智能\图像识别数据\test.txt','wt'); num_folders=numel(folders); for i=3:num_folders folders_name=folders(i).name; files=dir([path folders_name '\*.jpg']);% 仅列出里面jpg格式的文件 x=numel(files); y=randperm(x);% 打乱图像的顺序 for j=1:x if j<=390 fprintf(fid_train,'%s %s\n',['\' folders(i).name '\' files(y(j)).name],folders_name);% 在train.txt里面写入目录及标签 else fprintf(fid_test,'%s %s\n',['\' folders(i).name '\' files(y(j)).name],folders_name);% 在test.txt里面写入目录及标签 end end end fclose(fid_train); fclose(fid_test);
效果如下:
train.txt
\1\0483.jpg 1
\1\0123.jpg 1
\1\0393.jpg 1
\1\0458.jpg 1
\1\0074.jpg 1
\1\0367.jpg 1
\1\0236.jpg 1
\1\0471.jpg 1
\1\0291.jpg 1
\1\0052.jpg 1....................
test.txt
\1\0056.jpg 1
\1\0012.jpg 1
\1\0372.jpg 1
\1\0010.jpg 1
\1\0414.jpg 1
\1\0423.jpg 1
\1\0355.jpg 1
\1\0411.jpg 1
\1\0311.jpg 1
\1\0138.jpg 1
\1\0386.jpg 1
\1\0473.jpg 1
\1\0178.jpg 1
.................... -
Matlab画混淆矩阵(多分类)
2020-12-09 16:52:13在神经网络和机器学习的结果分析中,常常会用混淆矩阵和ROC曲线来分析识别/分类结果的好坏,而且论文中也经常出现这种图。对于卷积神经网络来说画混淆矩阵很简单,要用到函数plotconfusion,格式为plotconfusion...在神经网络和机器学习的结果分析中,常常会用混淆矩阵和ROC曲线来分析识别/分类结果的好坏,而且论文中也经常出现这种图。对于卷积神经网络来说画混淆矩阵很简单,要用到函数plotconfusion,格式为plotconfusion(实际标签,预测标签),画出来是这样的:
实际标签是我们提前就知道的,预测标签在神经网络训练并测试后会得到。
对于支持向量机来说如何画混淆矩阵呢?其实也很简单,只不过网上很少有代码,我看的也是稀里糊涂的,昨天看到今天才弄明白,所以想分享给大家,其实很简单的,用的也是plotconfusion函数。
支持向量机的实际标签和预测标签是数值形式的,而这个函数要求的是分类数组形式的,这就需要用到函数categorical,格式为B=categorical(a),a是实际标签或则预测标签(数值格式的,其实就是数字),通过这个函数就把数值转化为了分类数组,然后再调用plotconfusion函数就OK了。
这里预测标签是double型数值↑↑↑
转化为分类数组形式↑↑↑
Ps:这两图片用到的数据不一样,所以画出来有所差别,应该就是这样画的,终于明白了,看别人讲的好复杂,有一种画出来的是灰色的图,那个网上有代码,但是没有这个彩色的好看。
好,第一篇文章,到此为止。下次再见。 -
matlab机器视觉工具箱学习随笔2-分类模型训练的标签图片
2017-12-28 23:16:00这一篇比较简单,讲的是利用matlab提供的一个工具来生成带标签区域的图片,作为对象检测器模型的训练数据。其实机器学习领域,数据的重要性是大于算法的,但是没有多少人会安安静静成下心来研究怎么收集和处理数据,... -
MATLAB实现多分类预测混淆矩阵(Confusion matrix)可视化
2020-10-11 21:17:46对于多分类问题,如何对预测结果进行可视化是对比分析的关键一步,在实际多分类问题,除了简单展示模型预测精度外,如何分别不同类别之间的预测结果对于分析样本相关性和属性区别具有重要意义,在MATLAB中一般通过... -
MATLAB中的分类器
2017-05-18 15:34:13MATLAB中的分类器 ...现将其主要函数使用方法总结如下,更多细节需参考MATLAB 帮助文件。 设 训练样本:train_data % 矩阵,每行一个样本,每列一个特征 训练样本标签:train_label % 列向量 -
MATLAB 中常用分类器 总结
2017-05-29 10:54:31MATLAB中分类器有:K近邻分类器,随机森林分类器,朴素贝叶斯,集成学习方法,鉴别分析分类器,支持向量机。 现将其主要函数使用方法总结如下,更多细节需参考MATLAB 帮助文件。设: 训练样本 :train_data ... -
三支决策算法(Three Decison Way)用于多分类任务的Matlab程序
2019-03-25 16:53:31function [ result ] = TDW_multiclass( ...% 该函数是基于one-vs-one方法的得到的处理多类问题的TDW分类器 % trainX 训练样本的特征向量构成的n行m列矩阵,每一行是一个样本 % trainY 训练样本的标签构成的n行... -
matlab自带常见分类器的使用
2020-11-27 18:28:21现将其主要函数使用方法总结如下,更多细节需参考MATLAB帮助文件。 设 训练样本:train_data%矩阵,每行一个样本,每列一个特征 训练样本标签:train_label %列向量 测试样本:test_data 测试样本标签:test... -
matlab中自带的分类器
2017-10-24 05:24:14目前了解到的MATLAB中分类器有:K近邻分类器,随机森林分类器,朴素贝叶斯,集成学习方法,鉴别分析分类器,支持向量机。现将其主要函数使用方法总结如下,更多细节需参考MATLAB 帮助文件。 设 训练样本:train... -
多分类问题中混淆矩阵(Confusion Matrix)的Matlab画法
2016-04-03 14:20:22在多分类问题中,有一种很实用的分类问题结果统计图。 比如说多类别文类问题,那么...我最近也在做多分类问题,要画这样的图,但是发现确实很少有代码,自己画的确实不好看,还牵扯到值的显示和x轴标签的旋转问题, -
matlab自带各种分类器的使用示例
2020-09-28 15:44:35现将其主要函数使用方法总结如下,更多细节需参考MATLAB帮助文件。 设 训练样本:train_data%矩阵,每行一个样本,每列一个特征 训练样本标签:train_label %列向量 测试样本:test_data 测试样本标签:test... -
matlab 下交叉验证与 svm (多分类)模型的使用
2018-06-03 22:04:30%datas为读入的数据集 labels为读入的标签 %规范化数据 [datas_normal] = premnmx(datas) ; %交叉验证 k =10;%预将数据分成十份 sum_accuracy_svm = 0; [m,n] = size(datas_normal); %交叉验证,使用十折交叉验证 ... -
matlab自带的分类器的使用实例
2017-11-16 00:55:27目前了解到的MATLAB中分类器有:K近邻分类器,随机森林分类器,朴素贝叶斯,集成学习方法,鉴别分析分类器,支持向量机。现将其主要函数使用方法总结如下,更多细节需参考MATLAB 帮助文件。 设 训练样本:train... -
【caffe-Windows】以mnist为例的hdf5单标签处理——matlab实现
2017-06-21 11:10:24前言主要是想尝试看一下多标签的caffe是如何进行输入输出的,但是目前还未找到基于原始caffe做多标签输入的代码,大部分都是基于源码做了一部分修改实现多标签分类,caffe官网倒是有一个多标签的Python程序,这个我... -
多分类问题中混淆矩阵(Confusion Matrix)的Matlab画法 | 丕子
2011-07-01 15:18:00在多分类问题中,有一种很实用的分类问题结果统计图。...我最近也在做多分类问题,要画这样的图,但是发现确实很少有代码,自己画的确实不好看,还牵扯到值的显示和x轴标签的旋转问题,所以一直自己也没... -
matlab中的分类器使用小结(SVM、KNN、RF、AdaBoost、Naive Bayes、DAC)
2017-05-21 17:35:16目前了解到的MATLAB分类器有:K近邻,随机森林,朴素贝叶斯,集成学习方法,鉴别分析,支持向量机。现将其主要函数使用方法总结如下,更多细节需参考MATLAB 帮助文件。 设: 训练样本:train_data % 矩阵,每行一... -
随机森林原理及其用于分类问题的matlab实现
2018-11-16 22:03:33随机森林是多个决策树的集成学习,每个决策树用bagging的方法选数据集,并且在选择最佳属性划分的时候随机划分一些属性进行分类,比单个分类器效果更好,泛化能力更强。 代码解释 1.用结构体的嵌套实现树的结构。 2.... -
yeast.mat多标签数据集
2020-07-28 22:50:08yeast(酵母菌)数据集是一个多标签数据集,里面包括14种标签,已经划分好了训练集和测试集,可以直接进行调用,可用于机器学习,多标签分类等等,在MATLAB和python中都可调用。 -
Matlab中RandomForest分类器的使用
2018-06-06 09:22:08随机森林算法的相关资料,参考:https://www.cnblogs.com/maybe2030/p/4585705.html(1)首先制作训练样本,并对样本打分类标签;(2)训练样本,并在训练集上的利用“包外错误率oob”评估模型效果;(注意:训练... -
Matlab 用途
2018-11-06 15:17:01置顶 2017年08月24日 13:25:46 前进前进 阅读数:23899 标签: matlabmatlab学习matlab功能硬件自动化控制 更多 个人分类: Matlab 版权声明:本文为博主原创文章,允许转载,转载必须须在文章(首部)明显...
-
项目经理成长之路
-
【爱码农】C#制作MDI文本编辑器
-
鸿蒙系统Harmonyos源码架构分析-第1期第2课
-
linux ubuntu18.04 英伟达驱动 实测能装上 识别1080ti 1070ti显卡 NVIDIA-Linux-x86_64-460.39.run
-
【考研初试】安徽建筑大学501建筑设计考研真题库资料
-
大数据的基本概况.jpg
-
Galera 高可用 MySQL 集群(PXC v5.7+Hapro)
-
【考研初试】安徽建筑大学911物理化学考研真题库资料
-
vue3从0到1-超详细
-
python,numpy中np.random.choice()解释
-
FPGA进阶学习路线.pdf
-
linux没有权限操作文件
-
Galera 高可用 MySQL 集群(PXC v5.6 + Ngin
-
小议ReLU激活函数
-
常用端口号
-
在 Linux 上构建企业级 DNS 域名解析服务
-
第四章 C语言 PTA数组——作业-答案.html
-
数据源网站.xlsx
-
凡客诚品 微博营销实践暨品牌创新.ppt
-
a2a-ip-trust-ip-configuration:用于访问IP音频信任组件的OpenShift构建和部署配置-源码