统计学习_朴素贝叶斯分类器实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业6
编程题实验报告
(一)实验内容:
编程实现朴素贝叶斯分类器,假设输入输出都是离散变量。用讲义提供的训练数据进行试验,观察分类器在
121.x x m ==时,输出如何。如果在分类器中加入Laplace 平滑(取∂=1)
,结果是否改变。 (二)实验原理:
1)朴素贝叶斯分类器:
对于实验要求的朴素贝叶斯分类器问题,假设数据条件独立,于是可以通过下式计算出联合似然函数:
12(,,)()D i i p x x x y p x y =∏
其中,()i p x y 可以有给出的样本数据计算出的经验分布估计。
在实验中,朴素贝叶斯分类器问题可以表示为下面的式子:
~1*arg max ()()D
i y i y p y p x y ==∏ 其中,~
()p y 是从给出的样本数据计算出的经验分布估计出的先验分布。
2)Laplace 平滑:
在分类器中加入Laplace 平滑目的在于,对于给定的训练数据中,有可能会出现不能完全覆盖到所有变量取值的数据,这对分类器的分类结果造成一定误差。
解决办法,就是在分类器工作前,再引入一部分先验知识,让每一种变量去只对应分类情况与统计的次数均加上Laplace 平滑参数∂。依然采用最大后验概率准则。
(三)实验数据及程序:
1)实验数据处理:
在实验中,所用数据中变量2x 的取值,对应1,2,3s m I ===
讲义中所用的两套数据,分别为cover all possible instances 和not cover all possible instances 两种情况,在实验中,分别作为训练样本,在给出测试样本时,输出不同的分类结果。
2)实验程序:
比较朴素贝叶斯分类器,在分类器中加入Laplace 平滑(取∂=1)两种情况,在编写matlab 函数时,只需编写分类器中加入Laplace 平滑的函数,朴素贝叶斯分类器是∂=0时,特定的Laplace 平滑情况。
实现函数:[kind] =N_Bayes_Lap(X1,X2,y,x1,x2,a)
输入参数:X1,X2,y 为已知的训练数据;
x1,x2为测试样本值;
a 为调整项,当a=0时,就是朴素贝叶斯分类器,a=1时,为分类器中加入Laplace 平滑。 输出结果:kind ,输出的分类结果。
(四)实验结果分析和讨论:
1)实验结果:
对于讲义中的两套训练数据,分别得到分类器在121.x x m ==时,朴素贝叶斯分类器,以及分类器中加入Laplace 平滑(取∂=1),结果为:
a) 不存在Missing values 时:
X1=[1;1;1;1;1;2;2;2;2;2;3;3;3;3;3];
X2=[1;2;2;1;1;1;2;2;3;3;3;2;2;3;3];
y=[-1;-1;1;1;-1;-1;-1;1;1;1;1;1;1;1;-1];
平滑前:y=-1,平滑后:y=1。
b) 存在Missing values 时:
X1=[1;1;1;1;1;2;2;2;2;2;3];
X2=[1;2;2;1;1;1;2;2;3;3;3];
y=[-1;-1;1;1;-1;-1;-1;1;1;1;1];
平滑前:y=-1,平滑后:y=-1。
结果并未改变。
2)分析和讨论:
在分类器中加入Laplace 平滑,在引入一部分先验知识的基础上,对分类器的判决性能是没有破坏的,相反的,在训练样本不能完全覆盖到所有变量取值的情况下,可以帮助分类器做出更好的判决。