前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【数据挖掘】拉普拉斯修正 ( 判别模型 | 概率模型 | 贝叶斯分类 | 拉普拉斯修正 | 朴素贝叶斯分类应用场景 | 朴素贝叶斯优缺点 )

【数据挖掘】拉普拉斯修正 ( 判别模型 | 概率模型 | 贝叶斯分类 | 拉普拉斯修正 | 朴素贝叶斯分类应用场景 | 朴素贝叶斯优缺点 )

作者头像
韩曙亮
发布2023-03-27 19:35:45
4700
发布2023-03-27 19:35:45
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

I . 判别模型 与 概率模型

计算

P(C|X)

当属性值取

X

时 , 类别属于

C

的概率 ;

使用 判别模型 和 概率模型 计算上述

P(C|X)

概率对比 ;

① 判别模型 : 直接正面对

P(C|X)

进行建模 ; 如 决策树 , 神经网络 , 支持向量机 ;

② 概率模型 :

P(C|X)

的逆向概率

P(X|C)

进行建模 , 再计算

P(C|X)

; 如 贝叶斯分类器 ;

II . 贝叶斯分类

贝叶斯分类中 , 计算

P(C|X)

当属性值取

X

时 , 类别属于

C

的概率 ;

P(C|X)

很难直接获得 , 使用贝叶斯公式可以通过其逆概率计算该值 :

P(C|X) = \frac{P(X|C) P(C)}{P(X)}
  • 先验概率 :
P(C)

是先验概率 , 数据集中类别为

C

的样本数出现的概率 , 数据集越大越准确 ;

  • 证据因子 :
P(X)

是属性取值

X

的概率 , 该值也是从数据集中统计样本属性为

X

的概率 , 数据集越大越准确 , 该值与类别判定无关 ;

  • 类条件概率 ( 似然 ) :
P(X|C)

样本是

C

类别时 , 属性值是

X

的概率 , 可以通过机器学习获得 ;

P(X|C)

是通过机器学习基于有限样本估算概率 ,

P(X)

P(C)

可以根据当前样本统计获得 ;

III . 拉普拉斯修正

1 . 分类属性

P( X_k | C_i )

计算方式 : 如果第

k

个属性的取值是离散的 , 即分类属性 , 那么通过以下公式计算 :

P( X_k | C_i ) = \frac{S_{ik}}{S_i}
S_i

是分类为

C_i

类型的数据集样本个数 ;

S_{ik}

是被分类成

C_i

类型的样本中 , 并且第

k

个值是

X_k

的样本个数 ;

2 . 属性屏蔽的情况 :

给出一个样本 , 预测其分类 ;

如果该样本的某个属性值 , 在某一个预测的分类

C_i

中没有出现过 , 即

S_{ik}

0

, 那么计算出来的分类属性

P( X_k | C_i ) = \dfrac{S_{ik}}{S_i}

就是

0

;

进而

P(X|C_i) = \prod_{k=1}^n P( X_k | C_i )

多属性分类的联合概率也就成为

0

;

那么计算其分类为

C_i

的概率肯定是

0

, 整体的联合概率是通过乘法法则计算的 , 这样会抹去其它属性的信息 , 即使其它属性的权重很大 , 整体概率也会成为

0

;

其它属性的概率权重被屏蔽了 , 结果肯定不准确 ; 这种情况就要 引入 拉普拉斯修正 ;

3 . 拉普拉斯修正 :

① 计算 先验概率 时 进行 拉普拉斯修正 :

P(C) = \frac{| D_c | + 1}{ | D | + N }
D_c

表示训练集中 , 分类为

C

的样本个数 ;

D

表示训练集中样本中个数 ;

N

表示按照某属性分类的类别数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里

N=2

;

② 计算 类条件概率 ( 似然 ) 时 进行 拉普拉斯修正 :

P( X_k | C_i ) = \frac{S_{ik} + 1}{S_i + N_i}
S_i

是分类为

C_i

类型的数据集样本个数 ;

S_{ik}

是被分类成

C_i

类型的样本中 , 并且第

k

个值是

X_k

的样本个数 ;

N_i

表示该属性的可取值个数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里

N_i=2

;

IV . 使用 朴素贝叶斯分类器 + 拉普拉斯修正 为样本分类 ( 完整分类流程 )

1 . 需求 : 根据 年龄 , 收入水平 , 是否是学生 , 信用等级 , 预测该用户是否会购买商品 ;

年龄

收入水平

是否是学生

信用等级

是否购买商品

小于 30 岁

高收入

不是

一般

不会

小于 30 岁

高收入

不是

很好

不会

31 ~ 39 岁

高收入

不是

一般

40 岁以上

中等收入

不是

一般

40 岁以上

低收入

一般

40 岁以上

低收入

很好

不会

31 ~ 40 岁

低收入

不是

很好

小于 30 岁

中等收入

不是

一般

不会

小于 30 岁

低收入

一般

40 岁以上

中等收入

一般

小于 30 岁

中等收入

很好

31 ~ 39 岁

中等收入

不是

很好

31 ~ 39 岁

高收入

一般

40 岁以上

中等收入

不是

很好

不会

2 . 为某未知类型样本进行分类 ;

① 未知样本的

4

个属性值为 : 年龄 小于 30 岁 , 收入 中等 , 是否是学生 是 , 信用等级 一般 , 四个值组成向量

X

;

② 分类类型 : 是否购买商品 , 是 或者 否 ; 购买商品为 时间

Y

, 不购买商品为事件

N

;

③ 样本

4

个属性取值

X

, 并且类型为

Y

的概率 :

P(Y | X)

;

④ 样本

4

个属性取值

X

, 并且类型为

N

的概率 :

P(N | X)

;

3 . 计算取值

X

向量时 , 某分类的概率

P(Y | X)

:

① 以

P(Y | X)

计算为例 : 样本

4

个属性取值

X

, 并且类型为

Y

的概率 , 直接求该概率是无法计算的 ;

② 引入贝叶斯公式 : 使用其逆概率

P(X|Y)

, 当类型是

Y

是 , 取值为

X

的概率 ;

P(Y | X) = \frac{P(X|Y) P(Y)}{P(X)}

③ 逆概率

P(X|Y)

: 当类型是

Y

是 , 取值为

X

的概率 ; 即 当购买商品时 , 前

4

个属性取值为

X

向量的概率 ;

4 . 计算取值

X

向量时 , 某分类的概率

P(N | X)

:

① 以

P(N | X)

计算为例 : 样本

4

个属性取值

X

, 并且类型为

N

的概率 , 直接求该概率是无法计算的 ;

② 引入贝叶斯公式 : 使用其逆概率

P(X|N)

, 当类型是

N

是 , 取值为

X

的概率 ;

P(N | X) = \frac{P(X|N) P(N)}{P(X)}

③ 逆概率

P(X|N)

: 当类型是

N

是 , 取值为

X

的概率 ; 即 当购买商品时 , 前

4

个属性取值为

X

向量的概率 ;

5 . 比较取值

Y

和 取值

N

的两个概率 :

① 原始概率 :

P(N | X)

P(Y | X)

两个概率进行比较 ;

\frac{P(X|Y) P(Y)}{P(X)}

\frac{P(X|N) P(N)}{P(X)}

两个概率进行比较 ;

② 省略分母比较分子 : 分母都是

P(X)

, 可以只比较分子 ,

P(X|Y) P(Y)

P(X|N) P(N)

进行比较 ;

6 . 计算

2

个先验概率 : ( 引入拉普拉斯修正 )

这里使用引入 拉普拉斯修正 的公式进行计算 :

P(C) = \frac{| D_c | + 1}{ | D | + N }
D_c

表示训练集中 , 分类为

C

的样本个数 ;

D

表示训练集中样本中个数 ;

N

表示按照某属性分类的类别数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里

N=2

;

P(Y)

表示购买商品的概率 , 即上面

14

个训练集样本中 , 购买商品的概率 , 是

\frac{9 + 1}{14 + 2}

;

P(N)

表示不买商品的概率 , 即上面

14

个训练集样本中 , 不买商品的概率 , 是

\frac{5 + 1}{14 + 2}

;

7 . 计算

P(X|Y)

概率 : 样本用户购买商品时 , 前

4

个属性取值

X

向量的概率 ; ( 引入拉普拉斯修正 )

这里使用引入拉普拉斯修正的 分类概率 计算公式 :

P( X_k | C_i ) = \frac{S_{ik} + 1}{S_i + N_i}
S_i

是分类为

C_i

类型的数据集样本个数 ;

S_{ik}

是被分类成

C_i

类型的样本中 , 并且第

k

个值是

X_k

的样本个数 ;

N_i

表示该属性的可取值个数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里

N_i=2

;

① 属性独立 : 朴素贝叶斯分类中认为属性间都是独立的 , 互不干扰 , 可以将 “前

4

个属性取值

X

向量的概率” 变成概率乘积 ;

② 未知样本的

4

个属性值为 : 年龄 小于 30 岁 , 收入 中等 , 是否是学生 是 , 信用等级 一般 , 四个值组成向量

X

;

P(X|Y)

计算 : 买商品的用户样本中 , 取值为

X

向量的概率 , 如下 :

P(X|Y) = P( 年龄小于 30 | Y) \times P( 收入中等 | Y) \times P( 是学生 | Y) \times P( 信用等级一般 | Y)

其中 :

P( 年龄小于 30 | Y)

买商品的用户中 , 年龄 小于 30 岁的概率 ;

P( 收入中等 | Y)

买商品的用户中 , 收入中等的概率 ;

P( 是学生 | Y)

买商品的用户中 , 是学生的概率 ;

P( 信用等级一般 | Y)

买商品的用户中 , 信用等级一般的概率 ;

P( 年龄小于 30 | Y)

计算 :

9

个人买商品 , 其中有

2

个小于 30 岁 ;

拉普拉斯修正 : 年龄有

3

种取值 , 分别是 小于 30 , 30 ~ 40 , 40 以上 , 拉普拉斯修正的

N_i = 3

;

P( 年龄小于 30 | Y) = \frac{2 + 1}{9 + 3}

P( 收入中等 | Y)

计算 :

9

个人买商品 , 其中有

4

个 中等收入者 ;

拉普拉斯修正 : 收入水平有

3

种取值 , 分别是 高 , 中 , 低 , 拉普拉斯修正的

N_i = 3

;

P( 收入中等 | Y) = \frac{4 + 1}{9 + 3}

P( 是学生 | Y)

计算 :

9

个人买商品 , 其中有

6

个 是学生 ;

拉普拉斯修正 : 是否是学生有

2

种取值 , 分别是 是 , 否 , 拉普拉斯修正的

N_i = 2

;

P( 是学生 | Y) = \frac{6 + 1}{9 + 2}

P( 信用等级一般 | Y)

计算 :

9

个人买商品 , 其中有

6

个人信用等级一般 ;

拉普拉斯修正 : 信用等级 有

2

种取值 , 分别是 好 , 一般 , 拉普拉斯修正的

N_i = 2

;

P( 信用等级一般 | Y) = \frac{6 + 1}{9 + 2}

P(X|Y)

计算结果 :

\begin{array}{lcl} P(X|Y) &=& P( 年龄小于 30 | Y) \times P( 收入中等 | Y) \times P( 是学生 | Y) \times P( 信用等级一般 | Y) \\\\ &=& \frac{2 + 1}{9 + 3} \times \frac{4 + 1}{9 + 3} \times \frac{6 + 1}{9 + 2} \times \frac{6 + 1}{9 + 2} \\\\ \end{array}

8 . 计算

P(X|Y) P(Y)

值 :

P(X|Y) =\frac{2 + 1}{9 + 3} \times \frac{4 + 1}{9 + 3} \times \frac{6 + 1}{9 + 2} \times \frac{6 + 1}{9 + 2}
P(Y) = \frac{9 + 1}{14 + 2}
P(X|Y) P(Y) = \frac{2 + 1}{9 + 3} \times \frac{4 + 1}{9 + 3} \times \frac{6 + 1}{9 + 2} \times \frac{6 + 1}{9 + 2} \times \frac{9 + 1}{14 + 2} \approx 0.0263644972451791‬

9 . 计算

P(X|N)

概率 : 样本用户没有购买商品时 , 前

4

个属性取值

X

向量的概率 ;

这里使用引入拉普拉斯修正的 分类概率 计算公式 :

P( X_k | C_i ) = \frac{S_{ik} + 1}{S_i + N_i}
S_i

是分类为

C_i

类型的数据集样本个数 ;

S_{ik}

是被分类成

C_i

类型的样本中 , 并且第

k

个值是

X_k

的样本个数 ;

N_i

表示该属性的可取值个数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里

N_i=2

;

① 属性独立 : 朴素贝叶斯分类中认为属性间都是独立的 , 互不干扰 , 可以将 “前

4

个属性取值

X

向量的概率” 变成概率乘积 ;

② 未知样本的

4

个属性值为 : 年龄 小于 30 岁 , 收入 中等 , 是否是学生 是 , 信用等级 一般 , 四个值组成向量

X

;

P(X|N)

计算 : 不买商品的用户样本中 , 取值为

X

向量的概率 , 如下 :

P(X|N) = P( 年龄小于 30 | N) \times P( 收入中等 | N) \times P( 是学生 | N) \times P( 信用等级一般 | N)

其中 :

P( 年龄小于 30 | N)

不买商品的用户中 , 年龄 小于 30 岁的概率 ;

P( 收入中等 | N)

不买商品的用户中 , 收入中等的概率 ;

P( 是学生 | N)

不买商品的用户中 , 是学生的概率 ;

P( 信用等级一般 | N)

不买商品的用户中 , 信用等级一般的概率 ;

P( 年龄小于 30 | N)

计算 :

5

个人不买商品 , 其中有

3

个小于 30 岁 ;

拉普拉斯修正 : 年龄有

3

种取值 , 分别是 小于 30 , 30 ~ 40 , 40 以上 , 拉普拉斯修正的

N_i = 3

;

P( 年龄小于 30 | N) = \frac{3 + 1}{5 + 3}

P( 收入中等 | N)

计算 :

5

个人不买商品 , 其中有

2

个 中等收入者 ;

拉普拉斯修正 : 收入水平有

3

种取值 , 分别是 高 , 中 , 低 , 拉普拉斯修正的

N_i = 3

;

P( 收入中等 | N) = \frac{2 + 1}{5 + 3}

P( 是学生 | N)

计算 :

5

个人不买商品 , 其中有

1

个 是学生 ;

拉普拉斯修正 : 是否是学生有

2

种取值 , 分别是 是 , 否 , 拉普拉斯修正的

N_i = 2

;

P( 是学生 | N) = \frac{1 + 1}{5 + 2}

P( 信用等级一般 | N)

计算 :

5

个人不买商品 , 其中有 $2 个人信用等级一般 ;

拉普拉斯修正 : 信用等级 有

2

种取值 , 分别是 好 , 一般 , 拉普拉斯修正的

N_i = 2

;

P( 信用等级一般 | N) = \frac{2 + 1}{5 + 2}

P(X|N)

计算结果 :

\begin{array}{lcl} P(X|N) &=& P( 年龄小于 30 | N) \times P( 收入中等 | N) \times P( 是学生 | N) \times P( 信用等级一般 | N) \\\\ &=& \frac{3 + 1}{5 + 3} \times \frac{2 + 1}{5 + 3} \times \frac{1 + 1}{5 + 2} \times \frac{2 + 1}{5 + 2} \\\\ \end{array}

10 . 计算

P(X|N) P(N)

值 :

P(X|N) = \frac{3 + 1}{5 + 3} \times \frac{2 + 1}{5 + 3} \times \frac{1 + 1}{5 + 2} \times \frac{2 + 1}{5 + 2}
P(N) = \frac{5 + 1}{14 + 2}
P(X|N) P(N) = \frac{3 + 1}{5 + 3} \times \frac{2 + 1}{5 + 3} \times \frac{1 + 1}{5 + 2} \times \frac{2 + 1}{5 + 2} \times \frac{5 + 1}{14 + 2} \approx 0.00421875

11 . 比较

P(X|Y) P(Y)

P(X|N) P(N)

两个值 :

P(X|Y) P(Y) = \frac{2 + 1}{9 + 3} \times \frac{4 + 1}{9 + 3} \times \frac{6 + 1}{9 + 2} \times \frac{6 + 1}{9 + 2} \times \frac{9 + 1}{14 + 2} \approx 0.0263644972451791‬
P(X|N) P(N) = \frac{3 + 1}{5 + 3} \times \frac{2 + 1}{5 + 3} \times \frac{1 + 1}{5 + 2} \times \frac{2 + 1}{5 + 2} \times \frac{5 + 1}{14 + 2} \approx 0.00421875

由上面进行对比得出 , 使用朴素贝叶斯分类 , 该样本用户会购买商品 ;

V . 朴素贝叶斯分类器使用

1 . 要求分类速度快 : 此时先计算出所有数据的概率估值 , 分类时 , 直接查表计算 ;

2 . 数据集频繁变化 : 使用懒惰学习的策略 , 收到 分类请求时 , 再进行训练 , 然后预测 , 分类速度肯定变慢 , 但是预测准确 ;

3 . 数据不断增加 : 使用增量学习策略 , 原来的估值不变 , 对新样本进行训练 , 然后基于新样本的估值修正原来的估值 ;

VI . 朴素贝叶斯分类的优缺点

朴素贝叶斯分类 :

  • 优点 : 只用几个公式实现 , 代码简单 , 结果大多数情况下比较准确 ;
  • 缺点 : 假设的属性独立实际上不存在 , 属性间是存在关联的 , 这会导致部分分类结果不准确 ;

针对属性间存在依赖的情况 , 使用 贝叶斯信念网络 方法进行分类 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
    • I . 判别模型 与 概率模型
      • II . 贝叶斯分类
        • III . 拉普拉斯修正
          • IV . 使用 朴素贝叶斯分类器 + 拉普拉斯修正 为样本分类 ( 完整分类流程 )
            • V . 朴素贝叶斯分类器使用
              • VI . 朴素贝叶斯分类的优缺点
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档