资源简介
Iris 是一种鸢尾属植物。在数据记录中,每组数据包含Iris花的四种属性:萼片长度,萼片宽度,花瓣长度,和花瓣宽度,三种不同的花各有50组数据. 这样总共有150组数据或模式。此为基于matlab的Iris花的三分类程序。

代码片段和文件信息
clear;
irisData = dlmread(‘iris.data‘);
% irisData is 150x5.
% row:
% Sepal.Length Sepal.Width Petal.Length Petal.Width Group(12or 3)
% the first 50x5 is Isis-setosa(1)
% the second 50x5 is Isis-versicolor(2)
% the last 50x5 is Isis-virginica(3).
%
% !!! Caution !!!
% X(50 + 21 :) equals X(50 + 50 + 27 :) but Y(50 + 50 + 21) DOESNOT equal Y(50 + 50 + 27)!
% So the algorithm will NEVER be 100% correct.
plotAxis = [min(irisData(: 3)) max(irisData(: 3)) min(irisData(: 4)) max(irisData(: 4))];
kernel = ‘rbf‘;
c = [1 10 100 1000 10000];
sigma = 1 : 0.5: 3;
[C Sigma] = meshgrid(c sigma);
C = C(:);
Sigma = Sigma(:);
Err = zeros(size(C));
n = length(Err);
Xtest = irisData(1 : 150 3 : 4);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% First train Isis-setosa(1) and Isis-versicolor(2) using grid search.
%
disp(‘.....................................................................‘)
X = irisData(1 : 100 3 : 4);
Y = irisData(1 : 100 5);
Y(find(Y==1)) = 1;
Y(find(Y==2)) = -1;
Xtrain = X;
disp(‘Training Isis-setosa(1) and Isis-versicolor(2) using grid search.‘)
disp(‘Please wait a while.‘);
for i = 1 : n
[alphaStar bStar SVIndex] = yxcSVMtrain(X Y C(i) kernel Sigma(i));
[YClassified Z Err(i)] = yxcSVMclassifer(Xtrain Xtrain Y alphaStar bStar kernel Sigma(i));
%disp(sprintf(‘Cross Validation: %d in %d‘ i n));
end
[mErr i] = min(Err);
%Compute the minimum one again using the optimal C and Sigma.
[alphaStar bStar SVIndex] = yxcSVMtrain(X Y C(i) kernel Sigma(i));
[YClassified Z Err(i)] = yxcSVMclassifer(Xtrain Xtrain Y alphaStar bStar kernel Sigma(i));
disp(sprintf(‘Error rate is %%%d with C = %d sigma = %d‘ mErr*100 C(i) Sigma(i)));
disp(sprintf(‘There are %d support vectors %d out of %d are wrongly classified‘ ...
length(SVIndex) mErr*length(Y) length(Y)));
yxcSVMplot(X Y SVIndex alphaStar bStar kernel Sigma(i) plotAxis);
title(sprintf(‘Isis-setosa(1) and Isis-versicolor(2) SV = %d Err = %%%d C = %d Sigma = %d‘ ...
length(SVIndex) mErr*100 C(i) Sigma(i)));
% Test all data on the Isis-setosa(1) and Isis-versicolor(2) data set.
[Y12 Z] = yxcSVMclassifer(Xtrain Xtest Y alphaStar bStar kernel Sigma(i));
Y12(find(Y12==1)) = 1;
Y12(find(Y12==-1)) = 2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Then train Isis-versicolor(2) and Isis-virginica(3) using grid search.
%
disp(‘.....................................................................‘)
X = irisData(51 : 150 3 : 4);
Y = irisData(51 : 150 5);
Y(find(Y==2)) = 1;
Y(find(Y==3)) = -1;
Xtrain = X;
disp(‘Training Isis-versicolor(2) and Isis-virginica(3) using grid search.‘)
disp(‘Please wait a while.‘);
for i = 1 : n
[alphaStar bStar SVIndex] = yxcSVMtrain(X Y C(i) kernel Sigma(i));
[YClassified Z Err(i)] = yxcSVMclassifer(Xtrain Xtrain
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2699 2007-04-04 10:23 三分类_svm_matlab\iris.data
文件 6455 2007-11-09 10:31 三分类_svm_matlab\irisSVM.m
文件 1905 2007-11-09 09:22 三分类_svm_matlab\yxcSVMclassifer.m
文件 1079 2007-11-09 09:22 三分类_svm_matlab\yxcSVMkernel.m
文件 2118 2007-11-09 09:30 三分类_svm_matlab\yxcSVMplot.m
文件 2415 2007-11-09 09:19 三分类_svm_matlab\yxcSVMtrain.m
目录 0 2009-08-03 21:57 三分类_svm_matlab
----------- --------- ---------- ----- ----
16671 7
- 上一篇:故障分类svm代码
- 下一篇:BP神经网络Matlab程序--绝对经典
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论