• 大小: 4KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: Matlab
  • 标签: matlab  bayes  

资源简介

matlab贝叶斯分类源码,数据集为UCI下载的Iris,代码包括数据预处理

资源截图

代码片段和文件信息

function [targetacc]= bayes( trainXtrainYtestXtestY )
% 朴素贝叶斯分类器
% target:   预测结果
% acc:      正确率

target=zeros(601);
acc=0;
% 把每个属性划均分为三段
for i=1:size(testX1)
p1=1/3;
p2=1/3;
p3=1/3;
 for j=1:4
     s=testX(ij);
     mean = (max(trainX(:j)) - min(trainX(:j)))/3;
     mean1 = min(trainX(:j))+mean;
     mean2=min(trainX(:j))+2*mean;
     
     if(s>mean2)
         p1=p1*length(find(trainX(1:30j)>mean2))/30;
         p2=p2*length(find(trainX(31:60j)>mean2))/30;
         p3=p3*length(find(trainX(61:90j)>mean2))/30;
     end
    if(s         p1=p1*length(find(trainX(1:30j)         p2=p2*length(find(trainX(31:60j)         p3=p3*length(find(trainX(61:90j)    end
    if(s<=mean2&&s>=mean1)
         p1=p1*(1-length(find(trainX(1:30j)>mean2))/30-length(find(trainX(1:30j)         p2=p2*(1-length(find(trainX(31:60j)>mean2))/30-length(find(trainX(31:60j)         p3=p3*(1-length(find(trainX(61:90j)>mean2))/30-length(find(trainX(61:90j)    end
 end
 if(p1>=p2&&p1>=p3)
     target(i)=1;
 end
 if(p2>=p3&&p2>=p1)
     target(i)=2;
 end
 if(p3>=p1&&p3>=p2)
    target(i)=3;
 end
 if(target(i)==testY(i))
     acc=acc+1;
 end
end
  
acc=acc/60;
fprintf(‘test accuracy: %f%% \n‘acc*100)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1371  2016-02-23 20:09  Bayes\bayes.m

     文件        947  2016-02-23 20:28  Bayes\datapreprocessing.m

     文件       3512  2016-02-21 20:47  Bayes\Iris.mat

     目录          0  2016-02-23 16:37  Bayes

----------- ---------  ---------- -----  ----

                 5830                    4


评论

共有 条评论