资源简介
用MatLab编写的正态分布模式下的贝叶斯分类器。很多模式识别的课设就有相关题目。不仅有样本分类而且会在二维坐标系下画出,正确分类与错误分类的点都会有不同的标志。
代码片段和文件信息
clear; clc;
N = 30
C1 =[3.50;03.5];
C2 = [3.50;03.5];
M1 = [-22];
M2 = [2-2];
w1=mvnrnd(M1C130); %产生随即数
w2 =mvnrnd(M2C230);
f1 = 0;
f2 = 0;
M1 = [00];
M2 = [00];
C1 = [00;00];
C2 = [00;00];
mm = max(abs(w1)); %控制样本特征值在[-55]之间
mm = max(mm);
w1 = w1/mm*5
mm = max(abs(w2));
mm = max(mm);
w2 = w2/mm*5
for i = 1:N
M1 = M1 + w1(i:);
M2 = M2 + w2(i:);
end
M1 = M1/N
M2 = M2/N
for i=1:N
C1 = C1 + transpose(w1(i:))*w1(i:)-transpose(M1)*M1;
C2 = C2 + transpose(w2(i:))*w2(i:)-transpose(M2)*M2;
end
C1 = C1/N
C2 = C2/N
figure(1); %以样本的第一个特征值进行分类
axis([-55-55]);
hold on
grid on
f1=0;
f2=0;
for i=1:N
t=(w1(i1)-M1(1))*(1/C1(11))*(w1(i1)-M1(1));
d1 = log(0.5)-0.5*log(C1(11))-0.5*t;
t=(w1(i1)-M2(1))*(1/C2(11))*(w1(i1)-M2(1));
d2 = log(0.5)-0.5*log(C2(11))-0.5*t;
if d1 plot(w1(i1)w1(i2)‘rx‘)
f1 = f1+1;
else
plot(w1(i1)w1(i2)‘ro‘)
end
t=(w2(i1)-M1(1))*(1/C1(11))*(w2(i1)-M1(1));
d1 = log(0.5)-0.5*log(C1(11))-0.5*t;
t=(w2(i1)-M2(1))*(1/C2(11))*(w2(i1)-M2(1));
d2 = log(0.5)-0.5*log(C2(11))-0.5*t;
if d2 plot(w2(i1)w2(i2)‘x‘)
f2 = f2+1;
else
plot(w2(i1)w2(i2)‘o‘)
end
end
p1 = f1/N*100
p2 = f2/N*100
figure(2); %以样本的第二个特征值进行分类
axis([-55-55]);
hold on
grid on
f1=0;
f2=0;
for i=1:N
t=(w1(i2)-M1(2))*(1/C1(22))*(w1(i2)-M1(2));
d1 = log(0.5)-0.5*log(C1(22))-0.5*t;
t=(w1(i2)-M2(2))*(1/C2(22))*(w1(i2)-M2(2));
d2 = log(0.5)-0.5*log(C2(22))-0.5*t;
if d1 plot(w1(i1)w1(i2)‘rx‘)
f1 = f1+1;
else
plot(w1(i1)w1(i2)‘ro‘)
end
t=(w2(i2)-M1(2))*(1/C1(22))*(w2(i2)-M1(2));
d1 = log(0.5)-0.5*log(C1(11))-0.5*t;
t=(w2(i2)-M2(2))*(1/C2(22))*(w2(i2)-M2(2));
d2 = log(0.5)-0.5*log(C2(22))-0.5*t;
if d2 plot(w2(i1)w2(i2)‘x‘)
f2 = f2+1;
else
plot(w2(i1)w2(i2)‘o‘)
end
end
p1 = f1/N*100
p2 = f2/N*100
figure(3) %以样本的两个特征值进行分类
axis([-55-55]);
f1 = 0;
f2 = 0;
hold on
grid on
for i=1:N
t=(w1(i:)-M1)*inv(C1)*transpose(w1(i:)-M1);
d1 = log(0.5)-0.5*log(det(C1))-0.5*t;
t=(w1(i:)-M2)*inv(C2)*transpose(w1(i:)-M2);
d2= log(0.5)-0.5*log(det(C2))-0.5*t;
if d1 plot(w1(i1)w1(i2)‘rx‘)
f1 = f1+1;
else
plot(w1(i1)w1(i2)‘ro‘)
end
t=(w2(i:)-M1)*inv(C1)*transpose(w2(i:)-M1);
d1 = log(0.5)-0.5*log(det(C1))-0.5*t;
t=(w2(i:)-M2)*inv(C2)*transpose(w2(i:)-M2);
d2= log(0.5)-0.5*log(det(C2))-0.5*t;
if d2 plot(w2(i1)w2(i2)‘x‘)
f2 = f2+1;
else
plot(w2(i1)w2(i2)‘o‘)
end
end
p1 = f1/N*10
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3316 2012-12-20 18:43 BYS.m
----------- --------- ---------- ----- ----
3316 1
相关资源
- 贝叶斯最小错误分类器 matlab
- matlab 手写数字/字母模式识别
- 信号检测贝叶斯
- matlab基于贝叶斯的手写输入数字识别
- 超全的模式识别Matlab源程序
- 朴素贝叶斯算法matlab实现
- MATLAB代码最小风险贝叶斯决策
- 差分进化自适应的参数优化、模式识
- 四种支持向量机用于函数拟合与模式
- matlab贝叶斯分类(3)-UCI数据集通用分
- Matlab正态分布随机数
- 基于matlab的Iris、乳腺癌数据集的模式
- Matlab贝叶斯分类器 (Bayers)程序
- 朴素贝叶斯算法matlab代码实现
- 基于最小错误率的Bayes分类器的MATLA
- 以身高与体重为特征进行C-均值聚类
- 朴素贝叶斯分类matlab实现
- mo_2_3.m3. 图像分割matlab实现源代码
- 模式识别-ID3决策树matlab代码
- matlab贝叶斯源码iris分类
- 基于MATLAB的车牌识别系统设计
- 贝叶斯估计方法的matlab程序
- matlab-朴素贝叶斯-鸢尾花数据集
- 贝叶斯分类Matlab代码
- boxmuller方法生成正态分布随机数
- 模式识别matlab:最小错误率、最小风
- 基于贝叶斯算法的图像像素分割
- 模式识别之线性分类器的matlab实现
- 朴素贝叶斯算法在matlab中实现
- 模式识别K-均值聚类法matlab实现程序
评论
共有 条评论