java 朴素贝叶斯_朴素贝叶斯算法分析及java 实现

@decision P(yes) {0.6428571428571429}

@decision P(no) {0.35714285714285715}

@data

P(outlook=sunny|yes),0.2222222222222222

P(outlook=sunny|no),0.6

P(outlook=overcast|yes),0.4444444444444444

P(outlook=overcast|no),0.0

P(outlook=rainy|yes),0.3333333333333333

P(outlook=rainy|no),0.4

P(temperature=hot|yes),0.2222222222222222

P(temperature=hot|no),0.4

P(temperature=mild|yes),0.4444444444444444

P(temperature=mild|no),0.4

P(temperature=cool|yes),0.3333333333333333

P(temperature=cool|no),0.2

P(humidity=high|yes),0.3333333333333333

P(humidity=high|no),0.8

P(humidity=normal|yes),0.6666666666666666

P(humidity=normal|no),0.2

P(windy=TRUE|yes),0.3333333333333333

P(windy=TRUE|no),0.6

P(windy=FALSE|yes),0.6666666666666666

P(windy=FALSE|no),0.4

2.3

上面的各个概率计算过程如下:P(yes)=9/14 (在训练集中,yes出现9次,总数是14 )

P(no)=5/14

P(outlook=sunny|yes)=2/9(同时为sunny和yes的记录出现了2次,而yes总数出现了9次)

P(outlook=sunny|no)=3/5 (同时为sunny和no的记录出现了3次,no出现了5次)其它的计算一样,这里不例举了。

2.4  测试:

求 (sunny,hot,high,FALSE) 属于yes还是no呢?

为了显示好看,把(sunny,hot,high,FALSE) 用1来表示

计算方法如下:

属于yes的概率(其它这里严格意义的概率,因为没有除以分母)

P(1|yes)= P(yes)*P(sunny|yes)*P(hot|yes)*P(high|yes)*P(FALSE|yes)=0.6428571428571429*0.2222222222222222*0.2222222222222222*0.3333333333333333*0.6666666666666666=0.007(约等)

P(1|no)=0.027显然它属于no的概率大一点,判定它为no.

2.5 零频问题

以上计算没有考虑零频问题,实际的计算中应该避免零频问题,即在每个项计数时加1。

3.数学语言描述

关于数学公式的描述,这位大牛写得非常详细,建议大家看一看。

3.1贝叶斯定理:

6ed2f0c97ec0f09f5b4ba26c5894a653.gif

3.2 推导

朴素贝叶斯分类的正式定义如下:

1、设

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值