📄 winesvm.m
字号:
close all;
clear all;
load wine.txt
load winetest.txt
[row column]=size(wine);
traindata=[wine(:,1),wine(:,7),wine(:,column)];
for i=1:row
if (wine(i,column)==1)
plot(wine(i,1),wine(i,7),'. r')
end
hold on
if (wine(i,column)==2)
plot(wine(i,1),wine(i,7),'. b')
end
% if (wine(i,column)==3)
% plot(wine(i,1),wine(i,7),'. g')
% end
end
[row,column]=size(traindata);
num=max(traindata(:,column));
%每两类数据建立一个分类器
for i=1:num
for j=1:num
if (i<j)
% eval(['ssr' num2str(col) '=r;']);
iloc=find(traindata(:,column)==i);
jloc=find(traindata(:,column)==j);
SamplesI=traindata([iloc;jloc],1:column-1);
LabelsI=traindata([iloc;jloc],column);
Samples=SamplesI';
Labels=LabelsI';
eval(['[AlphaY' num2str(i) num2str(j) ', SVs' num2str(i) num2str(j) ', Bias' num2str(i) num2str(j) ', Parameters' num2str(i) num2str(j) ', nSV' num2str(i) num2str(j) ', nLabel' num2str(i) num2str(j) ']=LinearSVC(Samples, Labels);']);
end
end
end
SVs12=SVs12';
SVs13=SVs13';
SVs23=SVs23';
for i=1:num
for j=1:num
if (i<j)
eval(['w' num2str(i) num2str(j) '=AlphaY' num2str(i) num2str(j) '*SVs' num2str(i) num2str(j) ';'])
eval(['loc' num2str(i) num2str(j) '=find(AlphaY' num2str(i) num2str(j) '~=-1|AlphaY' num2str(i) num2str(j) '~=1);'])
end
end
end
SVs12=SVs12';
SVs13=SVs13';
SVs23=SVs23';
plot(SVs12(1,loc12),SVs12(2,loc12),'o')
%plot(SVs13(1,loc13),SVs13(2,loc13),'*')
%plot(SVs23(1,loc23),SVs23(2,loc23),'^')
b12=1-AlphaY12*SVs12'*SVs12(:,1)
plot([11:.1:14],-w12(1)/w12(2)*[11:.1:14]+80/w12(1))%*sqrt(w12(1)^2+w12(2)^2))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -