数据分类算法(2)——统计建模

本文深入探讨了朴素贝叶斯算法的原理与应用,对比1R算法,介绍了如何使用所有属性进行分类判断,通过实例讲解了算法的具体操作流程,包括属性值比率计算、连续值处理及缺失值应对策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相比于只使用一种属性作为判别依据的1R 算法,另外一种分类算法是使用所有的属性作为判别的依据,并且每一种属性对决策都同等重要,且假设他们相互独立。

算法概述

对每一个属性的所有的值对结果的影响做统计,并根据统计的结果对未知属性进行预测。假如有数据如下表。

NO.outlooktemperaturehumiditywindyplay
1sunnyhothighfalseno
2sunnyhothightrueno
3overcasethothighfalseyes
4rainymildhighfalseyes
5rainycoolnormalfalseyes
6rainycoolnormaltrueno
7overcasetcoolnormaltrueyes
8sunnymildhighfalseno
9sunnycoolnormalfalseyes
10rainymildnormalfalseyes
11sunnymildnormaltrueyes
12overcasetmildhightrueyes
13overcasethotnormalfalseyes
14rainymildhightrue

no

对表格做统计:在所有样例中,yes的总数为9,no的总数为5 [yes=9,no=5]

在outlook属性中,sunny共有yes为2天,no 为3天,则sunny的yes的两天占总的yes的比率为2/9,no占总的no的比率为3/5,同理其他属性的对应比率也可以算出来

outlook属性中:sunny 【yes=2,no=3】2/9,3/5

                          overcast 【yes=4,no=0】4/9,0/5

                          rainy 【yes=3,no=2】3/9,2/5

temperature属性:hot 2/9,2/5

                              mild 4/9,2/5

                              cool 3/9,1/5

humidity属性:high 3/9,4/5

                         normal 6/9,1/5

windy属性:false 6/9,2/5

                    true 3/9,3/5

那么,通过下面计算概率的方法来预测下面的天气情况的play情况。

NO.outlooktemperaturehumiditywindyplay
 sunnycoolhightrue?

如果是yes = 2/9 x 3/9 x 3/9 x 3/9 x 9/14 = 0.0053

如果是no   = 3/5 x 1/5 x 4/5 x 3/5 x 5/14 = 0.0206

等式的最后一项表示 yes和no占总天数的比率。从比例可以看出预测为no是比较合理的。

算法原理

基于条件贝叶斯的规则,如果存在假说H,和基于假说的证据E,有,其实就是贝叶斯公式。

Pr[H |E]=\frac{Pr[E|H]\cdot Pr[H]}{Pr[E]}

假说玩的结果是yes。那么pr[H|E],表示在需要预测那天的天气情况下,play为yes的概率。这个概率等于,play为yes的情况下预测该天天气出现的概率,乘以play为yes的概率,除以预测该天天气出现的概率

而等号右边的值可以通过训练样本进行统计得出,从而计算出预测该天play为yes,和play为no的概率,通过选择概率较大的值作为预测结果。这中方法称为朴素贝叶斯

算法问题分析

1.属性值出现为比率0的问题

如果一个属性值为零,那么无论其他的概率多大,计算的结果都是零,这就使得该属性掌握了一票否决权,这是不合理的。一般的处理办法是,对这些概率使用拉普拉斯估计器做一些微小的调整。这种方法没有什么特别好的理由,但是却有不错的效果,就是在该属性的分子分母中加上一个很小的整数,分母保留整数,分子将整数按照一定的权值分下去,对于outlook属性中的no:从3/5,0/5,2/5,经过变换为

\frac{3+\mu p_1}{5+\mu}, \frac{0+\mu p_2}{5+\mu},\frac{2+\mu p_3}{5+\mu}

(p_1+p_2+p_3 = 1)

这样就能使得属性比率为0的情况也拥有一个较小的概率。

2.连续值的问题。

对于连续值属性的问题,关键是求得Pr[E|H]的值。这时可以假设属性服从某一种分布,通过样本值求得分布参数,然后通过概率密度函数计算在预测属性值的概率密度来代表其出现的概率。比如假说一种连续属性服从正态分布,那么正态分布有2个参数,期望和标准差,通过训练样本估计出期望和标准差,求得该分布;然后使用该分布求得对应情况下的概率密度。用该密度来表示其出现的概率。

3.缺失值问题

如果属性有缺失,则忽略该属性的比率和概率情况。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值