资源描述:
《matlab30个案例分析案例12-SVM神经网络的数据分类预测.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、%%SVM神经网络的数据分类预测----意大利葡萄酒种类识别%%清空环境变量closeall;clear;clc;formatcompact;%%数据提取%载入测试数据wine,其中包含的数据为classnumber=3,wine:178*13的矩阵,wine_labes:178*1的列向量loadchapter12_wine.mat;%画出测试数据的box可视化图figure;boxplot(wine,'orientation','horizontal','labels',categories);title('wine数据的box可视化图','Fon
2、tSize',12);xlabel('属性值','FontSize',12);gridon;%画出测试数据的分维可视化图figuresubplot(3,5,1);holdonforrun=1:178plot(run,wine_labels(run),'*');endxlabel('样本','FontSize',10);ylabel('类别标签','FontSize',10);title('class','FontSize',10);forrun=2:14subplot(3,5,run);holdon;str=['attrib',num2str(run-
3、1)];fori=1:178plot(i,wine(i,run-1),'*');endxlabel('样本','FontSize',10);ylabel('属性值','FontSize',10);title(str,'FontSize',10);end%选定训练集和测试集%将第一类的1-30,第二类的60-95,第三类的131-153做为训练集train_wine=[wine(1:30,:);wine(60:95,:);wine(131:153,:)];%相应的训练集的标签也要分离出来train_wine_labels=[wine_labels(1:3
4、0);wine_labels(60:95);wine_labels(131:153)];%将第一类的31-59,第二类的96-130,第三类的154-178做为测试集test_wine=[wine(31:59,:);wine(96:130,:);wine(154:178,:)];%相应的测试集的标签也要分离出来test_wine_labels=[wine_labels(31:59);wine_labels(96:130);wine_labels(154:178)];%%数据预处理%数据预处理,将训练集和测试集归一化到[0,1]区间[mtrain,ntr
5、ain]=size(train_wine);[mtest,ntest]=size(test_wine);dataset=[train_wine;test_wine];%mapminmax为MATLAB自带的归一化函数[dataset_scale,ps]=mapminmax(dataset',0,1);dataset_scale=dataset_scale';train_wine=dataset_scale(1:mtrain,:);test_wine=dataset_scale((mtrain+1):(mtrain+mtest),:);%%SVM网络训练
6、model=svmtrain(train_wine_labels,train_wine,'-c2-g1');%%SVM网络预测[predict_label,accuracy]=svmpredict(test_wine_labels,test_wine,model);%%结果分析%测试集的实际分类和预测分类图%通过图可以看出只有一个测试样本是被错分的figure;holdon;plot(test_wine_labels,'o');plot(predict_label,'r*');xlabel('测试集样本','FontSize',12);ylabel('
7、类别标签','FontSize',12);legend('实际测试集分类','预测测试集分类');title('测试集的实际分类和预测分类图','FontSize',12);gridon;