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

📄 bayes_1.m

📁 Bayes分类器应用于IRIS数据集的例子
💻 M
字号:
clear;

load ('classalldatafile.mat');

sampleNum_1 = size(class_1,1);   %样本数目 sampleNum_1,2,3=500
sampleNum_2 = size(class_2,1);
sampleNum_3 = size(class_3,1);

sampleAll = sampleNum_1 + sampleNum_2 + sampleNum_3;   %总样本数

prior_1 = sampleNum_1/sampleAll;   %计算先验概率
prior_2 = sampleNum_2/sampleAll;
prior_3 = sampleNum_3/sampleAll;

mean_1 = sum(class_1(:,1:3),1)./sampleNum_1;   %计算均值P55
mean_2 = sum(class_2(:,1:3),1)./sampleNum_2;
mean_3 = sum(class_3(:,1:3),1)./sampleNum_3;

sigma_1 = sum(sum((class_1(:,1:3)-repmat(mean_1,[sampleNum_1 1])).^2,1)./sampleNum_1)./3;   %计算方差
sigma_2 = sum(sum((class_2(:,1:3)-repmat(mean_2,[sampleNum_2 1])).^2,1)./sampleNum_2)./3;
sigma_3 = sum(sum((class_3(:,1:3)-repmat(mean_3,[sampleNum_3 1])).^2,1)./sampleNum_3)./3;

gx = zeros(sampleAll,3);
gx(:,1) = -sum( (ClassAllData(:,1:3)- repmat(mean_1, [sampleAll 1])).^2/(2*sigma_1), 2) ...
            - 3*log(sqrt(sigma_1))  +  log(prior_1);      %判别函数P31(2-88)
gx(:,2) = -sum( (ClassAllData(:,1:3)- repmat(mean_2, [sampleAll 1])).^2/(2*sigma_2), 2) ...
            - 3*log(sqrt(sigma_2))  +  log(prior_2);
gx(:,3) = -sum( (ClassAllData(:,1:3)- repmat(mean_3, [sampleAll 1])).^2/(2*sigma_3), 2) ...
            - 3*log(sqrt(sigma_3))  +  log(prior_3);
[max_gx, ClassLabel] = max(gx,[],2);    %max_gx:判别函数矩阵gx中每一行的最大值   ClassLabel:最大值所在的列

Err_ind = find(ClassAllData(:,4)~=ClassLabel);   %Err_ind:分类错误的点的编号

errorrate=size(Err_ind,1)/sampleAll;   %错误率

figure(1)
hold on
scatter3(class_1(:,1),class_1(:,2),class_1(:,3),3,'r');   %画图
scatter3(class_2(:,1),class_2(:,2),class_2(:,3),3,'g');
scatter3(class_3(:,1),class_3(:,2),class_3(:,3),3,'b');
scatter3(ClassAllData(Err_ind,1),ClassAllData(Err_ind,2),ClassAllData(Err_ind,3),23,'k');
view(127.5,30)
grid
xlabel('x');
ylabel('y');
zlabel('z');
hold off
figure(2)
hold on
scatter3(class_1(:,1),class_1(:,2),class_1(:,3),3,'r');   %画图
scatter3(class_2(:,1),class_2(:,2),class_2(:,3),3,'g');
scatter3(class_3(:,1),class_3(:,2),class_3(:,3),3,'b');
scatter3(ClassAllData(Err_ind,1),ClassAllData(Err_ind,2),ClassAllData(Err_ind,3),23,'k');
xlabel('x');
ylabel('y');
zlabel('z');
view(0,90)
hold off
figure(3)
hold on
scatter3(class_1(:,1),class_1(:,2),class_1(:,3),3,'r');   %画图
scatter3(class_2(:,1),class_2(:,2),class_2(:,3),3,'g');
scatter3(class_3(:,1),class_3(:,2),class_3(:,3),3,'b');
scatter3(ClassAllData(Err_ind,1),ClassAllData(Err_ind,2),ClassAllData(Err_ind,3),23,'k');
view(90,0)
xlabel('x');
ylabel('y');
zlabel('z');
hold off
figure(4)
hold on
scatter3(class_1(:,1),class_1(:,2),class_1(:,3),3,'r');   %画图
scatter3(class_2(:,1),class_2(:,2),class_2(:,3),3,'g');
scatter3(class_3(:,1),class_3(:,2),class_3(:,3),3,'b');
scatter3(ClassAllData(Err_ind,1),ClassAllData(Err_ind,2),ClassAllData(Err_ind,3),23,'k');
view(0,0)
xlabel('x');
ylabel('y');
zlabel('z');
hold off



⌨️ 快捷键说明

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