⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multi_wine.m

📁 标准svm3.0程序 内有mex优化程序
💻 M
字号:
clear all
close all
load wine.txt
load winetest.txt
traindata=wine;
testdata=winetest;
[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


testSI=testdata(:,1:column-1);
testLI=testdata(:,column);
testS=testSI';
testL=testLI';
PreLabelsu=[];
Preu=[];
for i=1:num
    for j=1:num
    if (i<j)
eval(['[ClassRate' num2str(i) num2str(j) ', DecisionValue' num2str(i) num2str(j) ', Ns' num2str(i) num2str(j) ', ConfMatrix' num2str(i) num2str(j) ', PreLabels' num2str(i) num2str(j) ']= SVMTest(testS,testL, 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) ');']);
xx=eval(['DecisionValue' num2str(i) num2str(j)]);
mfparams = [log(.25) 0];
mftype = 'sigmf';
eval(['Preu' num2str(i) num2str(j) '=evalmf(xx,mfparams,mftype);']);
%eval(['PreLabels' num2str(i) num2str(j) ',Preu' num2str(i) num2str(j)])
%pause
eval(['PreLabelsu=[PreLabelsu;[PreLabels' num2str(i) num2str(j) ';Preu' num2str(i) num2str(j) ']];']);
eval(['Preu=[Preu;Preu' num2str(i) num2str(j) '];']);
    end
    end   
end


            
PreLabels=[PreLabels12;PreLabels13;PreLabels23];


for i=1:length(Preu)
    %for j=1:num
       % Labelnum(j)=length(find(Preu(:,i)==max(Preu(:,i))));
        %end    
    %Decision(i)=min(find(Labelnum==max(Labelnum)));
    PreLabelsrow=PreLabels(:,i);
    Decision(i)=PreLabelsrow(find(Preu(:,i)==max(Preu(:,i))));
    Decisionu(i)=max(Preu(:,i));
end
    ClassRate=length(find((Decision-testL)==0))/length(testL)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -