贝叶斯算法实例

190 阅读2分钟

「这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战

朴素贝叶斯分类是一种十分简单的分类算法,说它十分简单是因为它的解决思路非常简单。即对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。

而朴素贝叶斯(Native Bayes)算法是基于贝叶斯定理和特征条件独立假设的分类算法。朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。

下面我们就用一道题来解释贝叶斯算法的应用

给定如下表所示事务数据库,待分类样本为X={age≤30,income=”high”,student=”yes”,credit_rating=”Excellent”},使用朴素贝叶斯方法对X进行分类。

TIDageincomestudentcredit_ratingbuys_computer
1≤30HighNoFairNo
2≤30HighNoExcellentNo
331~40HighNoFairYes
4>40MediumNoFairYes
5>40LowYesFairYes
6>40LowYesExcellentNo
731~40LowYesExcellentYes
8≤30MediumNoFairNo
-----------------------------
9≤30LowYesFairYes
10>40MediumYesFairYes
11≤30MediumYesExcellentYes
1231~40MediumNoExcellentYes
1331~40HighYesFairYes
14>40MediumNoExcellentNo

由事务数据库可知,类标号属性 buys_computer具有两个不同的值{yes,no},设buys_computer=”yes ”为类别C1,buys_computer= ” no ” 为类别C2

由贝叶斯定理可知,我们需要最大化P(X/Ci)P(Ci),i=1,2。

每个类的先验概率P(Ci)根据样本数据库可得:

P(C1)=9/14=0.643

P(C2)=5/14=0.357

由事务数据库可知,类标号属性buys_computer具有两个不同的值{yes,no},设buys_computer=”yes”为类别C1,buys_computer=”no”为类别C2 由贝叶斯定理可知,我们需要最大化P(X/Ci)P(Ci),i=1,2。

每个类的先验概率P(Ci)根据样本数据库可得:

P(C1)=9/14=0.643  

P(C2)=5/14=0.357   待分类样本X中各属性条件独立,故:P(X/C1)=P(age≤30/C1)P(income=”high”/C1)P(student=”yes”/C1)P(credit_rating=”Excellent”/C1)=(2/9)(2/9)(6/9)*(3/9)=0.011

P(X/C2)=P(age=≤30/C2)P(income=”high”/C2)P(student=”yes”/C2)P(credit_rating=”Excellent”/C2)=(3/5)(2/5)(1/5)*(3/5)=0.0288

P(X/C1)P(C1)=0.0110.643=0.0071

P(X/C2)P(C2)=0.02880.357=0.0103

X属于C2的概率大于C1,故X应归为C2类。