matlab朴素贝叶斯工具箱,机器学习之分类器——Matlab中各种分类器的使用总结(随机森林、支持向量机、K近邻分类器、朴素贝叶斯等)...

机器学习之分类器——Matlab中各种分类器的使用总结(随机森林、支持向量机、K近邻分类器、朴素贝叶斯等)

发布时间:2018-04-19 15:29,

浏览次数:1270

, 标签:

Matlab

Matlab中常用的分类器有随机森林分类器、支持向量机(SVM)、K近邻分类器、朴素贝叶斯、集成学习方法和鉴别分析分类器等。各分类器的相关Matlab函数使用方法如下:

首先对以下介绍中所用到的一些变量做统一的说明:

train_data——训练样本,矩阵的每一行数据构成一个样本,每列表示一种特征

train_label——训练样本标签,为列向量

test_data——测试样本,矩阵的每一行数据构成一个样本,每列表示一种特征

test_label——测试样本标签,为列向量

①随机森林分类器(Random Forest)

TB=TreeBagger(nTree,train_data,train_label);

predict_label=predict(TB,test_data);

②支持向量机(Support Vector Machine,SVM)

SVMmodel=svmtrain(train_data,train_label);

predict_label=svmclassify(SVMmodel,test_data);

③K近邻分类器(KNN)

KNNmodel=ClassificationKNN.fit(train_data,train_label,'NumNeighbors',1);

predict_label=predict(KNNmodel,test_data);

④朴素贝叶斯(Naive Bayes)

Bayesmodel=NaiveBayes.fit(train_data,train_label);

predict_label=predict(Bayesmodel,test_data);

⑤集成学习方法(Ensembles for Boosting)

Bmodel=fitensemble(train_data,train_label,'AdaBoostM1',100,'tree','type','classification');

predict_label=predict(Bmodel,test_data);

⑥鉴别分析分类器(Discriminant Analysis Classifier)

DACmodel=ClassificationDiscriminant.fit(train_data,train_label);

predict_label=predict(DACmodel,test_data);

具体使用如下:(练习数据下载地址如下http://en.wikipedia.org/wiki/Iris_flower_data_set,

简单介绍一下该数据集:有一批花可以分为3个品种,不同品种的花的花萼长度、花萼宽度、花瓣长度、花瓣宽度会有差异,根据这些特征实现品种分类)

%% 随机森林分类器(Random Forest) nTree=10;

B=TreeBagger(nTree,train_data,train_label,'Method', 'classification');

predictl=predict(B,test_data); predict_label=str2num(cell2mat(predictl));

Forest_accuracy=length(find(predict_label ==

test_label))/length(test_label)*100; %% 支持向量机 % SVMStruct =

svmtrain(train_data, train_label); % predictl=svmclassify(SVMStruct,test_data);

% predict_label=str2num(cell2mat(predictl)); %

SVM_accuracy=length(find(predict_label == test_label))/length(test_label)*100;

%% K近邻分类器(KNN) % mdl =

ClassificationKNN.fit(train_data,train_label,'NumNeighbors',1); %

predict_label=predict(mdl, test_data); % KNN_accuracy=length(find(predict_label

== test_label))/length(test_label)*100 %% 朴素贝叶斯 (Naive Bayes) % nb =

NaiveBayes.fit(train_data, train_label); % predict_label=predict(nb,

test_data); % Bayes_accuracy=length(find(predict_label ==

test_label))/length(test_label)*100; %% 集成学习方法(Ensembles for Boosting, Bagging,

or Random Subspace) % ens = fitensemble(train_data,train_label,'AdaBoostM1'

,100,'tree','type','classification'); % predictl=predict(ens,test_data); %

predict_label=str2num(cell2mat(predictl)); %

EB_accuracy=length(find(predict_label == test_label))/length(test_label)*100;

%% 鉴别分析分类器(discriminant analysis classifier) % obj =

ClassificationDiscriminant.fit(train_data, train_label); %

predictl=predict(obj,test_data); % predict_label=str2num(cell2mat(predictl)); %

DAC_accuracy=length(find(predict_label == test_label))/length(test_label)*100;

%% 练习 % meas=[0 0;2 0;2 2;0 2;4 4;6 4;6 6;4 6]; % [N n]=size(meas); %

species={'1';'1';'1';'1';'-1';'-1';'-1';'-1'}; %

ObjBayes=NaiveBayes.fit(meas,species); % x=[3 3;5 5]; %

result=ObjBayes.predict(x);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值