文章目录- I . 判别模型 与 概率模型
- II . 贝叶斯分类
- III . 拉普拉斯修正
- IV . 使用 朴素贝叶斯分类器 拉普拉斯修正 为样本分类 ( 完整分类流程 )
- V . 朴素贝叶斯分类器使用
- VI . 朴素贝叶斯分类的优缺点
I . 判别模型 与 概率模型
计算
当属性值取
时 , 类别属于
的概率 ;
使用 判别模型 和 概率模型 计算上述
概率对比 ;
① 判别模型 : 直接正面对
进行建模 ; 如 决策树 , 神经网络 , 支持向量机 ;
② 概率模型 : 对
的逆向概率
进行建模 , 再计算
; 如 贝叶斯分类器 ;
II . 贝叶斯分类
贝叶斯分类中 , 计算
当属性值取
时 , 类别属于
的概率 ;
很难直接获得 , 使用贝叶斯公式可以通过其逆概率计算该值 :
- 先验概率 :
是先验概率 , 数据集中类别为
的样本数出现的概率 , 数据集越大越准确 ;
- 证据因子 :
是属性取值
的概率 , 该值也是从数据集中统计样本属性为
的概率 , 数据集越大越准确 , 该值与类别判定无关 ;
- 类条件概率 ( 似然 ) :
样本是
类别时 , 属性值是
的概率 , 可以通过机器学习获得 ;
是通过机器学习基于有限样本估算概率 ,
和
可以根据当前样本统计获得 ;
III . 拉普拉斯修正
1 . 分类属性
计算方式 : 如果第
个属性的取值是离散的 , 即分类属性 , 那么通过以下公式计算 :
是分类为
类型的数据集样本个数 ;
是被分类成
类型的样本中 , 并且第
个值是
的样本个数 ;
2 . 属性屏蔽的情况 :
给出一个样本 , 预测其分类 ;
如果该样本的某个属性值 , 在某一个预测的分类
中没有出现过 , 即
是
, 那么计算出来的分类属性
就是
;
进而
多属性分类的联合概率也就成为
;
那么计算其分类为
的概率肯定是
, 整体的联合概率是通过乘法法则计算的 , 这样会抹去其它属性的信息 , 即使其它属性的权重很大 , 整体概率也会成为
;
其它属性的概率权重被屏蔽了 , 结果肯定不准确 ; 这种情况就要 引入 拉普拉斯修正 ;
3 . 拉普拉斯修正 :
① 计算 先验概率 时 进行 拉普拉斯修正 :
表示训练集中 , 分类为
的样本个数 ;
表示训练集中样本中个数 ;
表示按照某属性分类的类别数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里
;
② 计算 类条件概率 ( 似然 ) 时 进行 拉普拉斯修正 :
是分类为
类型的数据集样本个数 ;
是被分类成
类型的样本中 , 并且第
个值是
的样本个数 ;
表示该属性的可取值个数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里
;
IV . 使用 朴素贝叶斯分类器 拉普拉斯修正 为样本分类 ( 完整分类流程 )
1 . 需求 : 根据 年龄 , 收入水平 , 是否是学生 , 信用等级 , 预测该用户是否会购买商品 ;
年龄 | 收入水平 | 是否是学生 | 信用等级 | 是否购买商品 |
---|---|---|---|---|
小于 30 岁 | 高收入 | 不是 | 一般 | 不会 |
小于 30 岁 | 高收入 | 不是 | 很好 | 不会 |
31 ~ 39 岁 | 高收入 | 不是 | 一般 | 会 |
40 岁以上 | 中等收入 | 不是 | 一般 | 会 |
40 岁以上 | 低收入 | 是 | 一般 | 会 |
40 岁以上 | 低收入 | 是 | 很好 | 不会 |
31 ~ 40 岁 | 低收入 | 不是 | 很好 | 会 |
小于 30 岁 | 中等收入 | 不是 | 一般 | 不会 |
小于 30 岁 | 低收入 | 是 | 一般 | 会 |
40 岁以上 | 中等收入 | 是 | 一般 | 会 |
小于 30 岁 | 中等收入 | 是 | 很好 | 会 |
31 ~ 39 岁 | 中等收入 | 不是 | 很好 | 会 |
31 ~ 39 岁 | 高收入 | 是 | 一般 | 会 |
40 岁以上 | 中等收入 | 不是 | 很好 | 不会 |
2 . 为某未知类型样本进行分类 ;
① 未知样本的
个属性值为 : 年龄 小于 30 岁 , 收入 中等 , 是否是学生 是 , 信用等级 一般 , 四个值组成向量
;
② 分类类型 : 是否购买商品 , 是 或者 否 ; 购买商品为 时间
, 不购买商品为事件
;
③ 样本
个属性取值
, 并且类型为
的概率 :
;
④ 样本
个属性取值
, 并且类型为
的概率 :
;
3 . 计算取值
向量时 , 某分类的概率
:
① 以
计算为例 : 样本
个属性取值
, 并且类型为
的概率 , 直接求该概率是无法计算的 ;
② 引入贝叶斯公式 : 使用其逆概率
, 当类型是
是 , 取值为
的概率 ;
③ 逆概率
: 当类型是
是 , 取值为
的概率 ; 即 当购买商品时 , 前
个属性取值为
向量的概率 ;
4 . 计算取值
向量时 , 某分类的概率
:
① 以
计算为例 : 样本
个属性取值
, 并且类型为
的概率 , 直接求该概率是无法计算的 ;
② 引入贝叶斯公式 : 使用其逆概率
, 当类型是
是 , 取值为
的概率 ;
③ 逆概率
: 当类型是
是 , 取值为
的概率 ; 即 当购买商品时 , 前
个属性取值为
向量的概率 ;
5 . 比较取值
和 取值
的两个概率 :
① 原始概率 : 将
和
两个概率进行比较 ;
即
和
两个概率进行比较 ;
② 省略分母比较分子 : 分母都是
, 可以只比较分子 ,
和
进行比较 ;
6 . 计算
个先验概率 : ( 引入拉普拉斯修正 )
这里使用引入 拉普拉斯修正 的公式进行计算 :
表示训练集中 , 分类为
的样本个数 ;
表示训练集中样本中个数 ;
表示按照某属性分类的类别数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里
;
表示购买商品的概率 , 即上面
个训练集样本中 , 购买商品的概率 , 是
;
表示不买商品的概率 , 即上面
个训练集样本中 , 不买商品的概率 , 是
;
7 . 计算
概率 : 样本用户购买商品时 , 前
个属性取值
向量的概率 ; ( 引入拉普拉斯修正 )
这里使用引入拉普拉斯修正的 分类概率 计算公式 :
是分类为
类型的数据集样本个数 ;
是被分类成
类型的样本中 , 并且第
个值是
的样本个数 ;
表示该属性的可取值个数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里
;
① 属性独立 : 朴素贝叶斯分类中认为属性间都是独立的 , 互不干扰 , 可以将 “前
个属性取值
向量的概率” 变成概率乘积 ;
② 未知样本的
个属性值为 : 年龄 小于 30 岁 , 收入 中等 , 是否是学生 是 , 信用等级 一般 , 四个值组成向量
;
计算 : 买商品的用户样本中 , 取值为
向量的概率 , 如下 :
其中 :
买商品的用户中 , 年龄 小于 30 岁的概率 ;
买商品的用户中 , 收入中等的概率 ;
买商品的用户中 , 是学生的概率 ;
买商品的用户中 , 信用等级一般的概率 ;
③
计算 :
个人买商品 , 其中有
个小于 30 岁 ;
拉普拉斯修正 : 年龄有
种取值 , 分别是 小于 30 , 30 ~ 40 , 40 以上 , 拉普拉斯修正的
;
④
计算 :
个人买商品 , 其中有
个 中等收入者 ;
拉普拉斯修正 : 收入水平有
种取值 , 分别是 高 , 中 , 低 , 拉普拉斯修正的
;
⑤
计算 :
个人买商品 , 其中有
个 是学生 ;
拉普拉斯修正 : 是否是学生有
种取值 , 分别是 是 , 否 , 拉普拉斯修正的
;
⑥
计算 :
个人买商品 , 其中有
个人信用等级一般 ;
拉普拉斯修正 : 信用等级 有
种取值 , 分别是 好 , 一般 , 拉普拉斯修正的
;
⑦
计算结果 :
8 . 计算
值 :
9 . 计算
概率 : 样本用户没有购买商品时 , 前
个属性取值
向量的概率 ;
这里使用引入拉普拉斯修正的 分类概率 计算公式 :
是分类为
类型的数据集样本个数 ;
是被分类成
类型的样本中 , 并且第
个值是
的样本个数 ;
表示该属性的可取值个数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里
;
① 属性独立 : 朴素贝叶斯分类中认为属性间都是独立的 , 互不干扰 , 可以将 “前
个属性取值
向量的概率” 变成概率乘积 ;
② 未知样本的
个属性值为 : 年龄 小于 30 岁 , 收入 中等 , 是否是学生 是 , 信用等级 一般 , 四个值组成向量
;
计算 : 不买商品的用户样本中 , 取值为
向量的概率 , 如下 :
其中 :
不买商品的用户中 , 年龄 小于 30 岁的概率 ;
不买商品的用户中 , 收入中等的概率 ;
不买商品的用户中 , 是学生的概率 ;
不买商品的用户中 , 信用等级一般的概率 ;
③
计算 :
个人不买商品 , 其中有
个小于 30 岁 ;
拉普拉斯修正 : 年龄有
种取值 , 分别是 小于 30 , 30 ~ 40 , 40 以上 , 拉普拉斯修正的
;
④
计算 :
个人不买商品 , 其中有
个 中等收入者 ;
拉普拉斯修正 : 收入水平有
种取值 , 分别是 高 , 中 , 低 , 拉普拉斯修正的
;
⑤
计算 :
个人不买商品 , 其中有
个 是学生 ;
拉普拉斯修正 : 是否是学生有
种取值 , 分别是 是 , 否 , 拉普拉斯修正的
;
⑥
计算 :
个人不买商品 , 其中有 $2 个人信用等级一般 ;
拉普拉斯修正 : 信用等级 有
种取值 , 分别是 好 , 一般 , 拉普拉斯修正的
;
⑦
计算结果 :
10 . 计算
值 :
11 . 比较
和
两个值 :
由上面进行对比得出 , 使用朴素贝叶斯分类 , 该样本用户会购买商品 ;
V . 朴素贝叶斯分类器使用
1 . 要求分类速度快 : 此时先计算出所有数据的概率估值 , 分类时 , 直接查表计算 ;
2 . 数据集频繁变化 : 使用懒惰学习的策略 , 收到 分类请求时 , 再进行训练 , 然后预测 , 分类速度肯定变慢 , 但是预测准确 ;
3 . 数据不断增加 : 使用增量学习策略 , 原来的估值不变 , 对新样本进行训练 , 然后基于新样本的估值修正原来的估值 ;
VI . 朴素贝叶斯分类的优缺点
朴素贝叶斯分类 :
- 优点 : 只用几个公式实现 , 代码简单 , 结果大多数情况下比较准确 ;
- 缺点 : 假设的属性独立实际上不存在 , 属性间是存在关联的 , 这会导致部分分类结果不准确 ;
针对属性间存在依赖的情况 , 使用 贝叶斯信念网络 方法进行分类 ;