【MATLAB第30期】基于MATLAB的adaboost多分类预测集成学习模型(四种模型GDA高斯判别分析、Knn、NB朴素贝叶斯、SVM)
一、简介
弱分类器
%1.GDA高斯判别分析
%2.Knn (NumNeighbors = 5) K邻近
%3.Naive Bayes 朴素贝叶斯
%4.SVM 支持向量机
强分类器
1.adaboost
adaboost算法:被前一个基分类器错误分类的样本的权重会增加,而被正确分类的样本的权重会减少,它将被用来再次训练下一个基本分类器。同时,在每次迭代中,增加一个新的弱分类器,直到预定的错误率足够小或者达到预设的最大迭代次数,将这些分类器加权融合确定最终的强分类器。
以上针对二分类思路, 针对多分类,需要将四种弱分类器权重之和设为1。
二、数据及参数
12输入,1输出,最后分类标签4种即1-4 。
训练集70%,测试集30%,
adaboost运行次数5次 ,求五次Fmeasure结果最好的权重。
每种分类器运行后评价指标为Fmeasure和正确率。
三、展示代码
clear all %% 选择弱分类器: %1.GDA %2.Knn (NumNeighbors = 5) %3.Naive Bayes %4.SVM data=xlsread('数据集.xlsx'); [trset,teset ] = holdout( data,70 ); %70%训练 30测试 %% 训练集 测试集样本 X=trset(:,1:end-1);Y=trset(:,end); Xtest=teset(:,1:end-1);Ytest=teset(:,end); %% 1. Gaussian Discriminant Analysis Classification gda_in=fitcdiscr(X,Y); %训练模型 gda_out=predict(gda_in, Xtest); %仿真预测 Fmeasure_GDA=Fmeasure(1) %Fmeasure值 Accuracy_GDA=Accuracy(1)% 准确率 %% 2.Knn Classification %% 3.Naive Bayes Classification %% 4.SVM Classification % Choose best in maxItr number of iterations maxItr=5; %五次运行 取最大 %Performance Measures Fmeasure_AdaBoost=Fmeasure(5) Accuracy_AdaBoost=Accuracy(5)
四、运行结果
五、获取代码
后台私信回复“30”即可获取下载链接