数据挖掘十大经典算法学习之Naive Bayes朴素贝叶斯
2012-11-22 16:50
411 查看
贝叶斯方法的提出:
正概率问题:假如袋子里有M个黑球、N给白球,你伸手进去摸一个,摸出黑球的概率有多大?摸出白球的的概率有多大?
解答:黑球概率P(A)=M/(M+N)
,白球概率P(B)=N/(M+N)。——(1)
逆概率问题:事先不知道袋子里有多少个黑球、多少个白球,你怎样通过实验,预测黑白球的比例?
解答:采用不放回地摸取,摸出k个球,其中m个黑球,n个白球,通过计算m、n占k的比例,来推断袋子里黑球、白球的比例。
朴素贝叶斯分类器是基于贝叶斯定理的分类器。该分类器基于条件独立的假设,既样本的每个特征都与其它特征无关。贝叶斯分类器通过某对象的先验概率,来计算其后验概率。
先验概率:在实验之前,对过去资料统计或主观判断所得到的概率。(1)中P(A)、P(B)就是先验概率。
后验概率:由已知结果再追溯原因出在何处,由此修正先验概率。后验概率就是条件概率。条件概率P(A|B)=P(B|A)*P(A)/P(B),由乘法公式P(AB)=P(A)*P(B|A)=P(B)*P(A|B)推导出。
贝叶斯分类是监督学习的一种。给定一个测试样例d,估计它的后验概率,Pr(C=cj|d)。
考察什么类别对于d的概率最大,便将该类别赋予样例d。
在数据集D中,令A1, A2,…,A|A|为用离散值表示的属性的集合。令C为具有|C|个不同值的类别属性,即c1,
c2, …,c|c|。给定一个测试样例d,观察测试样例d,观察到属性值a1到a|A|,其中,ai是Ai的一个可能的取值。也就是说d=<A1=a1,…,A|A|=a|A|>。那么预测值就是cj,使得Pr(C=cj|
A1=a1,…,A|A|=a|A|)最大。cj被称为最大后验概率假设。
根据贝叶斯准则,Pr(C=cj|d)也就是Pr(C=cj| A1=a1,…,A|A|=a|A|)可以表示为:
Pr(C=cj| A1=a1,…,A|A|=a|A|)= Pr(A1=a1,…,A|A|=a|A||C=cj)Pr(C=cj)/ Pr(A1=a1,…,A|A|=a|A|)
因为我们仅仅对分类感兴趣,那么Pr(A1=a1,…,A|A|=a|A|)对于分类决策就无关紧要了,因为它对于每个类都是一样的。
Pr(A1=a1,…,A|A|=a|A||C=cj)可以展开为Pr(A1=a1| A2=a2,…,A|A|=a|A|,C=cj)*Pr(A2=a2,…,A|A|=a|A||C=cj),
Pr(A2=a2,…,A|A|=a|A||C=cj)可以展开为Pr(A2=a2|A3=a3,…,A|A|=a|A|,C=cj)*Pr(A3=a3,…,A|A|=a|A||C=cj),依此类推。
因为,由此计算的概率非常小,不适合比较。所以,我们假设所有属性都是独立于类别C=cj。
即Pr(A1=a1| A2=a2,…,A|A|=a|A|,C=cj)= Pr(A1=a1|C=cj),类似地,Pr(A2=a2|A3=a3,…,A|A|=a|A|,C=cj)=
Pr(A2=a2|C=cj)。……
于是,可以得到Pr(A1=a1,…,A|A|=a|A||C=cj)=∏Pr(Ai=ai|C=cj), (i=1,…,|A|)。
因此,测试样例d最有可能的类别c=argmaxcj Pr(C=cj) ∏Pr(Ai=ai|C=cj), (i=1,…,|A|)。
零概率问题:测试数据中出现的属性值可能并不在训练数据中出现,导致∏Pr(Ai=ai|C=cj), (i=1,…,|A|)为0。解决方法是加入一个小样本校正。未校正前:Pr(Ai=ai|C=cj)= nij/ nj, 校正后Pr(Ai=ai|C=cj)=nij+λ/nj+λmi。
为什么分子加λ,分母加λmi呢?是为了不影响整体概率,校验后∑Pr(Ai=ai|C=cj)与校验前都等于1。
例如下例:Pr(sunny|yes)+ Pr(overcast|yes)+ Pr(rainy|yes)=3/12 + 5/12 + 4/12 = 1
nij为同时满足Ai=ai和C=cj的样本数量,nj为训练数据中C=cj的数据总数。mi是Ai可能值得总数。λ是一个因子,一般设为1/n,n是训练数据的总数。当λ=1时,得到Laplace平滑。
例如:给定下列关于数据集D,该数据集是一个关于天气情况对是否适宜出去玩的统计。该数据集有4个属性,A1=“阴晴”,A2=“温度”,……,A4=“刮风”。C为具有2个类别的属性,c1=yes,
c2=no。
给定一个测试样例d=<阴晴=sunny,温度=cool,湿度=high,刮风=TRUE>,预测该天气是否适合出去玩,也就是cj=
c1或c2,哪个的可能性最大。
//c1=yes, c2=no。
Pr(cj=c1)=9/14=0.64
Pr(cj=c2)=5/14=0.36
Pr(cj=c1 |d)= Pr(cj=c1)∏Pr(Ai=ai | cj=c1)
=Pr(yes)Pr(sunny|yes)Pr(cool|yes)Pr(high|yes)Pr(TRUE|yes)
=(9/14)*(3/12)*(4/12)*(4/11)*(4/11)=0.0071
Pr(cj=c2 |d)= Pr(cj=c2)∏Pr(Ai=ai | cj=c2)
=Pr(no)Pr(sunny|no)Pr(cool|no)Pr(high|no)Pr(TRUE|no)
=(5/14)*(4/8)*(2/8)*(5/7)*(4/7)=0.0182
Pr(cj=c2 |d)>Pr(cj=c1 |d),所以该实例被划分为c2,也就是no。表示在该天气下,不适合出去玩。
Acknowledgements&References:
部分材料采自于实验室小哇同学的讲座,谢谢小哇友情提供资料。理论知识部分摘自于刘冰的《Web数据挖掘》。该文中关于“天气-出去玩”的例子来自于数据挖掘工具Weka的weather数据集。
正概率问题:假如袋子里有M个黑球、N给白球,你伸手进去摸一个,摸出黑球的概率有多大?摸出白球的的概率有多大?
解答:黑球概率P(A)=M/(M+N)
,白球概率P(B)=N/(M+N)。——(1)
逆概率问题:事先不知道袋子里有多少个黑球、多少个白球,你怎样通过实验,预测黑白球的比例?
解答:采用不放回地摸取,摸出k个球,其中m个黑球,n个白球,通过计算m、n占k的比例,来推断袋子里黑球、白球的比例。
朴素贝叶斯分类器是基于贝叶斯定理的分类器。该分类器基于条件独立的假设,既样本的每个特征都与其它特征无关。贝叶斯分类器通过某对象的先验概率,来计算其后验概率。
先验概率:在实验之前,对过去资料统计或主观判断所得到的概率。(1)中P(A)、P(B)就是先验概率。
后验概率:由已知结果再追溯原因出在何处,由此修正先验概率。后验概率就是条件概率。条件概率P(A|B)=P(B|A)*P(A)/P(B),由乘法公式P(AB)=P(A)*P(B|A)=P(B)*P(A|B)推导出。
贝叶斯分类是监督学习的一种。给定一个测试样例d,估计它的后验概率,Pr(C=cj|d)。
考察什么类别对于d的概率最大,便将该类别赋予样例d。
在数据集D中,令A1, A2,…,A|A|为用离散值表示的属性的集合。令C为具有|C|个不同值的类别属性,即c1,
c2, …,c|c|。给定一个测试样例d,观察测试样例d,观察到属性值a1到a|A|,其中,ai是Ai的一个可能的取值。也就是说d=<A1=a1,…,A|A|=a|A|>。那么预测值就是cj,使得Pr(C=cj|
A1=a1,…,A|A|=a|A|)最大。cj被称为最大后验概率假设。
根据贝叶斯准则,Pr(C=cj|d)也就是Pr(C=cj| A1=a1,…,A|A|=a|A|)可以表示为:
Pr(C=cj| A1=a1,…,A|A|=a|A|)= Pr(A1=a1,…,A|A|=a|A||C=cj)Pr(C=cj)/ Pr(A1=a1,…,A|A|=a|A|)
因为我们仅仅对分类感兴趣,那么Pr(A1=a1,…,A|A|=a|A|)对于分类决策就无关紧要了,因为它对于每个类都是一样的。
Pr(A1=a1,…,A|A|=a|A||C=cj)可以展开为Pr(A1=a1| A2=a2,…,A|A|=a|A|,C=cj)*Pr(A2=a2,…,A|A|=a|A||C=cj),
Pr(A2=a2,…,A|A|=a|A||C=cj)可以展开为Pr(A2=a2|A3=a3,…,A|A|=a|A|,C=cj)*Pr(A3=a3,…,A|A|=a|A||C=cj),依此类推。
因为,由此计算的概率非常小,不适合比较。所以,我们假设所有属性都是独立于类别C=cj。
即Pr(A1=a1| A2=a2,…,A|A|=a|A|,C=cj)= Pr(A1=a1|C=cj),类似地,Pr(A2=a2|A3=a3,…,A|A|=a|A|,C=cj)=
Pr(A2=a2|C=cj)。……
于是,可以得到Pr(A1=a1,…,A|A|=a|A||C=cj)=∏Pr(Ai=ai|C=cj), (i=1,…,|A|)。
因此,测试样例d最有可能的类别c=argmaxcj Pr(C=cj) ∏Pr(Ai=ai|C=cj), (i=1,…,|A|)。
零概率问题:测试数据中出现的属性值可能并不在训练数据中出现,导致∏Pr(Ai=ai|C=cj), (i=1,…,|A|)为0。解决方法是加入一个小样本校正。未校正前:Pr(Ai=ai|C=cj)= nij/ nj, 校正后Pr(Ai=ai|C=cj)=nij+λ/nj+λmi。
为什么分子加λ,分母加λmi呢?是为了不影响整体概率,校验后∑Pr(Ai=ai|C=cj)与校验前都等于1。
例如下例:Pr(sunny|yes)+ Pr(overcast|yes)+ Pr(rainy|yes)=3/12 + 5/12 + 4/12 = 1
nij为同时满足Ai=ai和C=cj的样本数量,nj为训练数据中C=cj的数据总数。mi是Ai可能值得总数。λ是一个因子,一般设为1/n,n是训练数据的总数。当λ=1时,得到Laplace平滑。
例如:给定下列关于数据集D,该数据集是一个关于天气情况对是否适宜出去玩的统计。该数据集有4个属性,A1=“阴晴”,A2=“温度”,……,A4=“刮风”。C为具有2个类别的属性,c1=yes,
c2=no。
给定一个测试样例d=<阴晴=sunny,温度=cool,湿度=high,刮风=TRUE>,预测该天气是否适合出去玩,也就是cj=
c1或c2,哪个的可能性最大。
阴晴 | 温度 | 湿度 | 刮风 | 出去玩 | |
1 | sunny | hot | high | FALSE | no |
2 | sunny | hot | high | TRUE | no |
3 | overcast | hot | high | FALSE | yes |
4 | rainy | mild | high | FALSE | yes |
5 | rainy | cool | normal | FALSE | yes |
6 | rainy | cool | normal | TRUE | no |
7 | overcast | cool | normal | TRUE | yes |
8 | sunny | mild | high | FALSE | no |
9 | sunny | cool | normal | FALSE | yes |
10 | rainy | mild | normal | FALSE | yes |
11 | sunny | mild | normal | TRUE | yes |
12 | overcast | mild | high | TRUE | yes |
13 | overcast | hot | normal | FALSE | yes |
14 | rainy | mild | high | TRUE | no |
Pr(cj=c1)=9/14=0.64
Pr(cj=c2)=5/14=0.36
Pr(cj=c1 |d)= Pr(cj=c1)∏Pr(Ai=ai | cj=c1)
=Pr(yes)Pr(sunny|yes)Pr(cool|yes)Pr(high|yes)Pr(TRUE|yes)
=(9/14)*(3/12)*(4/12)*(4/11)*(4/11)=0.0071
Pr(cj=c2 |d)= Pr(cj=c2)∏Pr(Ai=ai | cj=c2)
=Pr(no)Pr(sunny|no)Pr(cool|no)Pr(high|no)Pr(TRUE|no)
=(5/14)*(4/8)*(2/8)*(5/7)*(4/7)=0.0182
Pr(cj=c2 |d)>Pr(cj=c1 |d),所以该实例被划分为c2,也就是no。表示在该天气下,不适合出去玩。
Acknowledgements&References:
部分材料采自于实验室小哇同学的讲座,谢谢小哇友情提供资料。理论知识部分摘自于刘冰的《Web数据挖掘》。该文中关于“天气-出去玩”的例子来自于数据挖掘工具Weka的weather数据集。
相关文章推荐
- 数据挖掘十大经典算法学习之Naive Bayes朴素贝叶斯
- 数据挖掘十大经典算法学习之Adaboost自适应增强学习算法
- DataMining学习2_数据挖掘十大经典算法
- 数据挖掘十大经典算法学习之K均值(K-means)聚类算法
- 数据挖掘十大经典算法学习之C4.5决策树分类算法及信息熵相关
- 数据挖掘十大经典算法学习之Adaboost自适应增强学习算法
- 数据挖掘十大经典算法
- 转载 数据挖掘十大经典算法(1) C4.5
- 数据挖掘十大经典算法
- 数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes
- 数据挖掘十大经典实用算法及OpenCV算法
- ICDM评选:数据挖掘十大经典算法
- 数据挖掘领域十大经典算法
- 数据挖掘十大经典算法
- 数据挖掘十大经典算法
- 【人工智能】数据挖掘领域的十大经典算法
- 数据挖掘十大经典算法(5) EM
- 数据挖掘十大经典算法
- 数据挖掘十大经典算法(6) PageRank
- 数据挖掘十大经典算法(4) The Apriori algorithm