模式识别实验一.pdf

  • 格式:pdf
  • 大小:257.86 KB
  • 文档页数:7

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ji
(x)
Байду номын сангаас
1 2
(x
i
) Ci1(x
i
)
ln
P(i
)
1 2
ln
Ci
(6)
然后根据(1)中所述最大后验准则判断样本所属类别。
三、实验过程 实验数据: IRIS 数据集 实验假设: 各类数据服从正态分布 实验方法: 最大后验概率 实验环境: MATLAB 2010b
(1)数据导入 导入 iris_dataset.txt 文件中数据,并将三类数据分别存储,每个数据都为一
贝叶斯分类又称为最大后验概率(MAP)分类,其基本原理如下:
两种类别标号分别为1 ,2
a) 分类所使用的特征为 n 维特征向量 x [x1 x2
xn ]
b) 两类先验概率值分别为 P 1 , P 2
c) 两类条件概率密度函数分别为 p x | 1 , p x | 2
对于两类别 i ,i 1, 2分类问题,已知先验概率 P(i ) 及条件概率密度函数
%导入iris数据集
%---------抽取训练数据----------% %各组训练数据个数 NUM_train = 30; %在各组中随机抽取NUM_train个训练样本 %随机打乱各组数据顺序 temp_w1= randperm(50); temp_w2= randperm(50); temp_w3= randperm(50); %取随机打乱顺序后的前NUM_train个数据作为训练样本,并存储 %第5列数据代表其所属分类 for i=1:NUM_train
p x | i ,可以得出某样本属于各类别的概率,即后验概率。
P(i
|
x)
p
x
| i
P
x
P(i
)
,
i
1,
2
(1)
后验概率代表了 x 是属于1 类的概率,x 来自i* 类的概率大则判别 x 属于第
i* 类,即
P(1 | x) P(2 | x) 则 x 1
(2)
P(1 | x) P(2 | x) 则 x 2
data_train_w1(i,:) = iris_w1(temp_w1(i),:); data_train_w2(i,:) = iris_w2(temp_w2(i),:); data_train_w3(i,:) = iris_w3(temp_w3(i),:); end %选择非训练样本作为测试样本,并存储 %第5列数据代表其所属分类 for i=(NUM_train+1):50 data_test_w1(i-NUM_train,:) = iris_w1(temp_w1(i),:); data_test_w2(i-NUM_train,:) = iris_w2(temp_w2(i),:); data_test_w3(i-NUM_train,:) = iris_w3(temp_w3(i),:); end
实验所使用的 IRIS 鸢尾花数据中各类数据服从正态分布,则概率密度函数为
P(x | i )
1
n
(2 ) 2
Ci
1 2
exp[
1 2
(
x
i
)T
Ci1
(
x
i
)]
i 1, 2
(4)
其中,特征向量 x [x1, x2,
, xn ] 是 n 维列向量,i 1, 2,
,
n

n
维均值
向 量 , Ci 是 n n 协 方 差 矩 阵 ; Ci 为 矩 阵 Ci 的 行 列 式 。 且 i Ei x ,
个 4 维行特征向量。
close all; clear all; clc; %---------数据导入----------% iris_dataset = load('iris_dataset.txt'); %分别存储3类数据 iris_w1 = iris_dataset(1:50,:); iris_w2 = iris_dataset(51:100,:); iris_w3 = iris_dataset(101:150,:);
Ci Ei
x i
x
T i
, Ei x 表示对类别属于i 的模式作数学期望运算。
因此判别函数可表示为 Ji (x) P(x | i )P(i ) 对判别函数取自然对数
J
i
(
x)
1 2
(
x
i
)
Ci1
(
x
i
)
ln
P(i
)
1 2
ln
Ci
n ln(2 ) 2
(5)
在样本维数相同的情况下,上式中的最后一项为常数,与样本所属类别无关, 所以可以将其从判别函数中去掉,不会改变分类结果。判别函数化简为
%计算三类训练数据的协方差矩阵 var_w1 = cov(data_train_w1(:,:)); var_w2 = cov(data_train_w2(:,:)); var_w3 = cov(data_train_w3(:,:));
一、实验目的 1. 掌握统计判别问题的含义,理解贝叶斯判别原理。 2. 编写两类正态分布模式的贝叶斯分类程序。 3. 观察各种因素对分类错误概率的影响。
二、实验原理 模式识别的分类问题是根据识别对象特征的观察值将其分到某个类别中去,
统计决策理论是处理模式分类问题的基本理论之一。贝叶斯判别原理是统计模式 识别中的一个基本方法。 (1)贝叶斯判别原理
%导入iris数据集
(2)抽取训练数据 设置每组训练数据个数 NUM_train,从每类 50 个数据中随机抽取 NUM_train
个向量作为训练数据并存储,剩余数据作为测试样本存储。
%---------数据导入----------% iris_dataset = load('iris_dataset.txt'); %分别存储3类数据 iris_w1 = iris_dataset(1:50,:); iris_w2 = iris_dataset(51:100,:); iris_w3 = iris_dataset(101:150,:);
(3)分类器训练 计算各类训练数据的均值矢量和协方差矩阵。
%---------分类器训练----------% %计算三类训练数据的均值向量 avr_w1 = mean(data_train_w1(:,:)); avr_w2 = mean(data_train_w2(:,:)); avr_w3 = mean(data_train_w3(:,:));
p(x | i ) 称似然函数,将其代入(2)式中
p(x | 1)P(1) p(x | 2 )P(2 ) 则 x 1
(3)
p(x | 1)P(1) p(x | 2 )P(2 ) 则 x 2
(2)样本正态分布的贝叶斯分类器
对于具有多个特征参数的样本(本实验的 IRIS 数据为 n=4 维)。假设本