資源簡介
樸素貝葉斯算法寫的關于鳶尾花分類的程序,有需要的可以自己下載修改使用。重新更改一下積分設置,怎么變成13了

代碼片段和文件信息
clc
clear
close?all
total_data=load(‘C:\Users\ZAN\Desktop\matalb_drive\machine-learnning\Bayes\iris_data.mat‘);
len?=?size(total_data.features1);
rand_num=randperm(len);%disorder?sequence
ratio=0.8;
train_num=ratio*len;
test_num=len-train_num;
data_mat?=?total_data.features(rand_num:);%attribute
labels?=?total_data.classes(rand_num);%class?labels
%?normalization?
maxV?=?max(data_mat);
minV?=?min(data_mat);
range?=?maxV-minV;
newdataMat?=?(data_mat-repmat(minV[len1]))./(repmat(range[len1]));
newtrain_dataMat=newdataMat(1:train_num:);
newtest_dataMat=newdataMat(train_num+1:end:);
train_labels=labels(1:train_num);
test_labels=labels(train_num+1:end);
dataMat_1=newtrain_dataMat(find(train_labels==1):);
dataMat_2=newtrain_dataMat(find(train_labels==2):);
dataMat_3=newtrain_dataMat(find(train_labels==3):);
%compute?the?mean?and?stdandard?diviation?of?each?class
mean_1=mean(dataMat_1);
std_1=std(dataMat_1);
mean_2=mean(dataMat_2);
std_2=std(dataMat_2);
mean_3=mean(dataMat_3);
std_3=std(dataMat_3);
right_pre=0;
for?i=1:test_num
????????prob_1=prod(?normpdf(newtest_dataMat(i:)mean_1std_1)?2);
????????prob_2=prod(?normpdf(newtest_dataMat(i:)mean_2std_2)?2);
????????prob_3=prod(?normpdf(newtest_dataMat(i:)mean_3std_3)?2);
????????max_prob=max([prob_1prob_2prob_3]);
????????if?max_prob==prob_1
????????????pre_class=1;
????????elseif?max_prob==prob_2
????????????pre_class=2;
????????else?
????????????pre_class=3;
????????end
????fprintf(‘predict?class?is:%d??true?result?is:%d?\n‘[pre_class??test_labels(i)]?);
????if?pre_class?==?test_labels(i)
????????right_pre=right_pre+1;
????end
???
end
?fprintf(‘the?accuracy?of?the?classifiter?is:%d‘right_pre/test_num);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1105??2010-10-17?14:51??iris_data.mat
?????文件????????1762??2018-08-31?09:37??my_bayes.m
- 上一篇:自相關法求時間延遲tau
- 下一篇:MATLAB實現SVPWM
評論
共有 條評論