数据挖掘 贝叶斯算法

贝叶斯算法

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

贝叶斯的公式很简单,其实就是P(A|B)就是在B已经发生的情况,A发生的概率,这个概率P(A|B)=P(AB)/P(B)在发生B的概率中,AB一起发生的概率就是P(A|B)

那么贝叶斯公式P(B|A)=P(A|B)P(B)/P(A),朴素贝叶斯公式,依靠之前存在的事件,推测出当前在A发生下B发生的概率,因为从P(A|B)是简单的。

那么看我说的有些主观,让我们看例子

一所学校里面有 60% 的男生,40% 的女生。男生总是穿长裤,女生则一半穿长裤一半穿裙子。有了这些信息之后我们可以容易地计算“随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大”,这个就是前面说的“正向概率”的计算。然而,假设你走在校园中,迎面走来一个穿长裤的学生(很不幸的是你高度近似,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别),你能够推断出他(她)是男生的概率是多大吗?

那么数据挖掘,我们有一个要我们分类的x,他有属性a1、a2

x={a1,a2,,am}

我们还有各种类C={y1,y2,,yn}

我们计算出P(y1|x),P(y2|x),   P(yn|x)

那么得到最大的一个P(yk|x)就是我们x的类别。

简单的,假如我们按照某人是否打球来划分天气。

这个例子数据挖掘

Day

Outlook

Temperature

Humidity

Wind

PlayTennis

D1

Sunny

Hot

High

Weak

No

D2

Sunny

Hot

High

Strong

No

D3

Overcast

Hot

High

Weak

Yes

D4

Rain

Mild

High

Weak

Yes

D5

Rain

Cool

Normal

Weak

Yes

D6

Rain

Cool

Normal

Strong

No

D7

Overcast

Cool

Normal

Strong

Yes

D8

Sunny

Mild

High

Weak

No

D9

Sunny

Cool

Normal

Weak

Yes

D10

Rain

Mild

Normal

Weak

Yes

D11

Sunny

Mild

Normal

Strong

Yes

D12

Overcast

Mild

High

Strong

Yes

D13

Overcast

Hot

Normal

Weak

Yes

D14

Rain

Mild

High

Strong

No

我们要分类Outlook=sunny, Temperature=cool,Humidity=high,Wind=strong

那么我们首先算出所有

P(yes)=9/14P(no)=5/14

然后就是每个列属性
Outlook

Outlook==Sunny 有5个,其中

P(Sunny|yes)=P(sunnyyes)P(yes)=2/149/14=2/9P(sunny|no)=P(sunnyno)P(no)=35

然后Outlook==Overcast 有4,其中yes=4,no=0

outlook Sunny Overcast Rain
yes 2 4 3
no 3 0 2
5 4 5

那么就可以得到

P(Rain|yes)=3/9P(Rain|no)=2/5

接着对全部的计算

我们类别yes,no可以

P(yes)P(sunny|yes)P(cool|yes)P(high|yes)P(strong|yes)P(no)P(sunny|no)P(cool|no)P(high|no)P(strong|no)

因为P(y1|x),P(y2|x),   P(yn|x)比较最大一个,P(yi|x)=P(x|yi)P(yi)P(x),因为P(x)相同,我们比较P(yi|x)=P(x|yi)P(yi)P(x|yi)P(yi)=P(a1|yi)P(a2|yi)P(yi)

参考:
- 数学之美番外篇:平凡而又神奇的贝叶斯方法

posted @ 2016-06-22 16:40  lindexi  阅读(179)  评论(0编辑  收藏  举报