统计建模基本方法

数据集:所有属性独立的、均等的对最终结果做出贡献。(这是不现实的,现实的数据集属性并不同等重要,也不彼此独立。只是通过假设,引出一个简单的方案,并在实际中表现极佳。)
方法:朴素贝叶斯方法。
特点:基于贝叶斯规则并“朴素”的假设属性独立。只有当事件彼此独立时,概率的相乘才是有效的。
想法:使用属性值和类别值共现的次数,假设 每个属性时同等重要、彼此独立的,来预测新样本的分类。
样本数据:以天气数据为例,如下:
outlook
(Attribute)
temperature
(Attribute)
humidity
(Attribute)
windy
(Attribute)
play
(Category)
sunny
hot
high
false
no
sunny
hot
high
true
no
overcast
hot
high
false
yes
rainy
mild
high
false
yes
rainy
cool
normal
false
yes
rainy
cool
normal
true
no
overcast
cool
normal
true
yes
sunny
mild
high
false
no
sunny
cool
normal
false
yes
rainy
mild
normal
false
yes
sunny
mild
normal
true
yes
overcast
mild
high
true
yes
overcast
hot
normal
false
yes
rainy
mild
high
true
no
算法实现:下面介绍一个实现的算法,如下:
(1) 数据统计。统计属性值和类别值一同出现的次数。

outlook

temperature

humidity

windy

play


yes

no


yes

no


yes

no


yes

no

yes

no

sunny

2

3

hot

2

2

high

3

4

false

6

2

9

5

overcast

4

0

mild

4

2

normal

61


true

3

3



rainy

3

2

cool

3

1









sunny

2/9

3/5

hot

2/9

2/5

high

3/9

4/5

false

6/9

2/5

9/14

5/14

overcast

4/9

0/5

mild

4/9

2/5

normal

6/9

1/5

true

3/9

3/5



rainy

3/9

2/5

cool

3/9

1/5









(2) 新样本类别值预测。新样本数据如下:
outlook
(Attribute)
temperature
(Attribute)
humidity
(Attribute)
windy
(Attribute)
play
(Category)
sunny
cool
high
true
?
这个简单直观的方法基于有条件概率的贝叶斯规则。贝叶斯规则如下:


新样本E的属性值集合表示:E={outlook=sunny,temperature=cool,humidity=high,windy=true}
由于属性是独立的,将概率相乘得到组合概率为:

根据上述的公式,计算得到组合概率,如下:
类别值为yes的总体似然= 2/9* 3/9* 3/9* 3/9* 9/14=0.0053
类别值为no的总体似然= 3/5* 1/5* 4/5* 3/5* 5/14=0.0206

通过规范化将这两个结果转化成概率,使它们的概率之和为1:
类别值为yes的概率= 0.0053/( 0.0053+ 0.0206 )=20.5%;
类别值为no的概率 = 0.0206 /( 0.0053+ 0.0206 )=79.5%;

算法说明
(1)“似然性”与“或然性”或“ 概率 ”意思相近,都是指某个事件发生的肯能性 。但是在统计学中, “似然性”和“或然性”或“概率”又有明确的区分。 概率 用于在已知一些参数的情况下,预测接下来的观测所得到的结果,而似然性则是用于在已知某些观测所得到的结果时,对有关事物的性质的参数进行估计。
(2) 数据统计存在缺陷,如果某个属性值没有与一个类别值一起出现在训练集里,那么朴素贝叶斯法将会出错。例如,训练数据集outlook=overcast,总是伴随着结论yes,那么属性值outlook=overcast为no的概率是0,无论其他概率值有多大,最终no的概率均为0。 在实践中常使用拉普拉斯估计器估计频率,将计数结果初始化为1而不是0。
缺省值处理:在一个训练集中,如果一直属性值缺失,它就不被包括在频率的计算中,即忽略掉这个属性。
数值属性处理:下面将介绍数值属性处理方法,具体如下:

outlook

temperature

humidity

windy

play


yes

no


yes

no


yes

no


yes

no

yes

no

sunny

2

3


83

85


86

85

false

6

2

9

5

overcast

4

0


70

80


96

90

true

3

3



rainy

3

2


68

65


80

70










64

72


65

95










69

71


70

91










75



80











75



70











72



90











81



75







sunny

2/9

3/5

平均

73

74.6

平均

79.1

86.2

false

6/9

2/5

9/14

5/14

overcast

4/9

0/5

标准差

6.2

7.9

标准差

10.2

9.7

true

3/9

3/5



rainy

3/9

2/5












(1) 数值属性处理。
a. 如果知道属性数值遵循某种分布形式,例如正态分布(或者高斯分布),那么将用这种分布形式的标准估计过程;
b. 如果不知道属性数值的分布形式,那么使用“核密度估计”过程,核密度估计并不把属性值的分布假设成任何特定的分布形式。
c. 属性值离散化处理,按照某些规则,将数值属性映射到一定的区间内。
我们以正态分布为例,进行数值属性处理。
(2) 计算数值属性在每一个类别上的平均值、标准差。(具体的计算方法省略)
(3) 假设数值属性服从正态分布,概率密度函数如下:
概率密度函数 为正态分布的 期望值 μ决定了其位置,其 标准差 σ决定了分布的幅度。
(4) 新样本类别值预测。样本数据如下:
outlook
(Attribute)
temperature
(Attribute)
humidity
(Attribute)
windy
(Attribute)
play
(Category)
sunny
66
99
true
?
类别值为yes的总体似然= 2/9*0.0340 *0.0221 * 3/9* 9/14=0.000036
类别值为no的总体似然 = 3/5* 0.0279* 0.0381* 3/5* 5/14=0.000137
说明:如果出现很多小概率相乘,可以通过对概率取对数替代概率本省来处理。

通过规范化将这两个结果转化成概率,使它们的概率之和为1:
类别值为yes的概率= 0.000036 /( 0.000036 + 0.000137 )=20.8%;
类别值为no的概率 = 0.000137 /( 0.000036 + 0.000137 )=79.2%;

总结:朴素贝叶斯方法给出了一个简单并且清晰的方法,使用它能够达到很好的预测结果。但是在很多数据集上表现的差强人意,因为朴素贝叶斯处理属性的时候认为属性时独立的,所以一些冗余的属性会破坏机器学习的过程,这种情况可以采用挑选属性子集的方法来避免。另外朴素贝叶斯在忽略特征频次的文档分类中,使用的效果非常好,但是特征频次拥有潜在的重要价值不可忽略,可以采用一种改进的方法,这个方法叫做多项式朴素贝叶斯。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值