【20200422】数据挖掘DM课程课业打卡七之贝叶斯分类器
叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!
一、课业打卡七
1、已知训练数据集如表1:
该数据集中,分类为“yes”“no”的先验概率各自是多少?
P(yes)= _____。
P(no)= _____。
正确答案:
第一空:
6/10;3/5;0.6
第二空:
4/10;2/5;0.4
2、接上题,已知训练数据集如表1。已知待分类的测试样本X=(Attribute1= V1c, Attribute2= V2c)
计算以下条件概率:(答案请表示为分数b/a;b/a约分为最简形式)
P(Attribute1= V1c |yes)= _____。
P(Attribute1= V1c |no)= _____。
P(Attribute2= V2c |yes)= _____。
P(Attribute2= V2c |no)= _____。
P(Attribute1= V1c, Attribute2= V2c |yes)= _____。
P(Attribute1= V1c, Attribute2= V2c |no)= _____。
正确答案:
第一空: 1/2
第二空: 1/4
第三空: 1/2
第四空: 1/4
第五空: 1/4
第六空: 1/16
3、接上题,已知训练数据集如表1。已知待分类的测试样本X=(Attribute1= V1c, Attribute2= V2c)。
后验概率P(no|X)、P(yes|X) 各自是多少?
(答案请表示为分数b/a;b/a约分为最简形式)
P(yes | Attribute1= V1c, Attribute2= V2c)= _____。 (说明:忽略分母1/P(X))
P(no| Attribute1= V1c, Attribute2= V2c)= _____。 (说明:忽略分母1/P(X))
正确答案:
第一空: 3/20
第二空: 1/40
4、接上题,已知训练数据集如表1。已知待分类的测试样本X=(Attribute1= V1c, Attribute2= V2c)。
该测试样本被分成哪一类?_____。
A 、yes
B、 no
请填写A或B
正确答案:
第一空: A;a
二、知识点巩固
1、贝叶斯定理
对条件概率P(Y|X) 、 P(X|Y) ,有
P(X,Y)=P(Y|X) ×P(X)= P(X|Y) ×P(Y)
P(饮食油腻 && 不经常运动, 患心脏病)
=P(患心脏病|饮食油腻 && 不经常运动) ×P(饮食油腻 && 不经常运动)
=P(饮食油腻 && 不经常运动 | 患心脏病) ×P( 患心脏病)
每个记录用一个d 维特征向量X = (x 1 , x 2 , …, x d ) 表示
假定有k 个类y 1 , y 2 , …, y k .
给定X, X 属于y j 类的后验概率P(y j |X) 满足贝叶斯( Bayes) 定理
MAP (maximum posteriori hypothesis, 最大后验假设)
将X 指派到具有最大后验概率P(yj|X) 的类yj
,即将X 指派到P(X|y j )P(y j ) 最大的类y j
2、贝叶斯定理在分类中的应用
后验概率:
在比较不同Y值的后验概率时:
分母P(X)总是常数, 因此可以忽略 。
先验概率P(Y)可以通过计算训练集中属于每一个类的训练样本所占的比例容易地估计。
对于类条件概率P(X|Y)的估计比较麻烦。
3、贝叶斯分类的不同实现方法
根据类条件概率P(X|Y)的估计方法不同,贝叶斯分类的不同实现方法包括:
朴素贝叶斯分类
贝叶斯信念网络
4、朴素贝叶斯分类
朴素贝叶斯分类 (Naïve Bayes Classifier) 工作原理:
朴素贝叶斯分类步骤:
(1) 估计P(yj )
类y j 的先验概率可以用下式估计
P(y j )=n j /n
其中, n j 是类y j 中的训练样本数, 而n 是训练样本总数
(2)估计P(X|yj )
为便于估计P(X|y j ), 假定类条件独立---- 给定样本的类标号, 假定属性值条件地相互独立。
于是, P(X|Y=y j ) 可以用下式估计
其中, P(x i |y j ) 可以由训练样本估值。
(3)估计P(xi |yj )
设第i 个属性A i 是分类属性, 则P(xi |yj ) = nij /nj
;
其中n ij 是在属性A i 上具有值x i 的y j 类的训练样本数, 而n j 是y j 类的训练样本数。
设第i 个属性A i 是连续值属性;
把A i 离散化;
假定A i 服从高斯分布;
5、朴素贝叶斯分类器所需要的信息(计算步骤)
6、朴素贝叶斯分类实例
7、朴素贝叶斯分类的特点
8、朴素贝叶斯算法的 matlab 求解
朴素贝叶斯算法在matlab 中可通过调用统计工具箱中的Naive BayesClassification 类中函数来实现。
主要是由fit 函数和predict 函数实现,其中fit 函数用于对于训练数据进行拟合,predict 函数对于测试数据进行朴素贝叶斯分类。
NaiveBayes.fit 函数的语法和使用规则如下:
nb = NaiveBayes.fit(training, class)
其中,输入参数training 是训练样本的属性,class 是训练样本的类别,在使用时,training 和的class 的数据行数必须相等;
输出参数nb 含有拟合的各种参数和结果,包含了求解得到的先验概率分布,可以用来对测试样本进行分类。
NaiveBayes. predict 函数的语法和使用规则如下:
cpre = predict(nb,test)
其中,输入参数nb 是之前的拟合结果,test 是测试样本的属性;
输出参数cpre 是根据先验概率分布得到的对测试样本的分类结果。
post = posterior (nb,test)
输出参数post 是得到的对测试样本的分类后验概率估计值。
Ending!
更多课程知识学习记录随后再来吧!
就酱,嘎啦!
注:
人生在勤,不索何获。