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

📄 classifier.m

📁 無監督分類方法
💻 M
字号:
function wineclassifier = classifier(t)
load wine.data
prior1=59/178;
prior2=71/178;
prior3=48/178;

feature=wine;
feature(:,1)=[];
%normalize data
fmin=min(feature);
fmax=max(feature);
for i=1:178
    feature(i,:)=((feature(i,:)-fmin)./(fmax-fmin))*4;
end
%caculate training data
for i=1:t
    fea1(i,:)=feature(i,:);
    fea2(i,:)=feature(i+59,:);
    fea3(i,:)=feature(i+130,:);
end

mu1=mean(fea1);
mu2=mean(fea2);
mu3=mean(fea3);

%zero mean
for i=1:t
    fea1(i,:)=fea1(i,:)-mu1;
    fea2(i,:)=fea2(i,:)-mu2;
    fea3(i,:)=fea1(i,:)-mu3;
end

c1=cov(fea1);
c2=cov(fea2);
c3=cov(fea3);
correct1=0;
correct2=0;
correct3=0;

for i=1:178
    lratio(i,1)=(1/(((2*pi)^(13/2))*det(c1)^(1/2)))*exp(-(1/2)*(feature(i,:)-mu1)*inv(c1)*(feature(i,:)-mu1).');
    posterior(i,1)=lratio(i,1)*prior1;    
    
    lratio(i,2)=(1/(((2*pi)^(13/2))*det(c2)^(1/2)))*exp(-(1/2)*(feature(i,:)-mu2)*inv(c2)*(feature(i,:)-mu2).');
    posterior(i,2)=lratio(i,2)*prior2;    
    
    lratio(i,3)=(1/(((2*pi)^(13/2))*det(c3)^(1/2)))*exp(-(1/2)*(feature(i,:)-mu3)*inv(c3)*(feature(i,:)-mu3).');
    posterior(i,3)=lratio(i,3)*prior3;    
    if max(posterior(i,:))==posterior(i,1)
        posterior(i,4)=1;
    elseif max(posterior(i,:))==posterior(i,2)
            posterior(i,4)=2;
    else
            posterior(i,4)=3;
    end
    if posterior(i,4)==wine(i,1)
        if i>=1 && i<=59
           correct1=correct1+1;
        elseif i>=60 && i<=130
           correct2=correct2+1;
        else
            correct3=correct3+1;
        end
    end
end
    
totalReRate=(correct1+correct2+correct3)/178;    
class1rate=correct1/59;    
class2rate=correct2/71;
class3rate=correct3/48;

wineclassifier=[class1rate,class2rate,class3rate,totalReRate];

⌨️ 快捷键说明

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