cushing_svm.m
资源名称:SVM--SVM.rar [点击查看]
上传用户:liu_jing
上传日期:2013-07-02
资源大小:4k
文件大小:1k
源码类别:
数值算法/人工智能
开发平台:
Matlab
- %============================
- %使用SVM实现三类模式识别
- %============================
- clear;
- clc;
- load train.data;
- train_data=train(:,1:2);% 全部训练样本集合
- expected_output=[-1;-1;-1;-1;-1;-1;1;1;1;1;1;1;1;1;1;1;-1;-1;-1;-1;-1]; % 先分成ac和b两类时的全部期望输出
- train_data_partly=[];
- temp1=train_data(1:6,:);
- temp2=train_data(17:21,:);
- train_data_partly=[temp1;temp2];% 部分训练样本集合,a类和c类样本集合
- expected_output_partly=[-1;-1;-1;-1;-1;-1;1;1;1;1;1];% 部分期望输出,a类和c类样本的期望输出集合
- ker='rbf';
- C=100.0;
- X=train_data;
- Y=expected_output;
- [nsv alpha bias]=svc(X,Y,ker,C);
- alpha1=alpha;
- X=train_data_partly;
- Y=expected_output_partly;
- [nsv alpha bias]=svc(X,Y,ker,C);
- alpha2=alpha;
- load test.data
- test_data=test;% 测试样本集
- clc;
- % 测试识别输出
- fprintf('测试样本的识别结果为: n');
- for i=1:6
- X=train_data;
- Y=expected_output;
- Z=test_data(i,:);
- predictedY = svcoutput(X,Y,Z,ker,alpha1,bias,0);
- if (predictedY==1)
- fprintf(' b n');
- else
- X=train_data_partly;
- Y=expected_output_partly;
- predictedY = svcoutput(X,Y,Z,ker,alpha2,bias,0);
- if (predictedY==1)
- fprintf( ' c n');
- else
- fprintf(' a n');
- end
- end
- end