資源簡介
matlab貝葉斯分類源碼,數(shù)據(jù)集為UCI下載的Iris,代碼包括數(shù)據(jù)預(yù)處理

代碼片段和文件信息
function?[targetacc]=?bayes(?trainXtrainYtestXtestY?)
%?樸素貝葉斯分類器
%?target:???預(yù)測結(jié)果
%?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‘a(chǎn)cc*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
評論
共有 條評論