朴素贝叶斯
我们在意图分类阶段使用了多项式朴素贝叶斯算法来将输入的问题分到对应的意图类别下, 让我们先来看看什么式朴素贝叶斯. 朴素贝叶斯算法是基于贝叶斯定理与特征条件独立假设的分类 方法. 贝叶斯公式推导过程:
c
随机事件的其中一种情况, 比如电影领域问答中的意图分类可能包括: 闲聊, 评分, 上映时间, 演员等, 把用户问问题看成是随机事件, 则用户问评分的问题就是随机事件的其中一种情况.
x
泛指与随机事件相关的因素, 这里做为概率的条件.
P(c|x)
条件 x 下, c 出现的概率. 比如 P("评分"|"功夫这部电影评分怎么样?")就是表示问题 "功夫这部电影评分怎么样?" 的意图是 "评分" 的概率.
P(x|c)
知出现 c 情况的条件下, 条件 x 出现的概率, 后验概率, 可以根据历史数据计算得出.
P(c)
不考虑相关因素, c 出现的概率.
P(x)
不考虑相关因素, x 出现的概率.
由推导过程可以得到
P(c|x) = P(c)P(x|c)/P(x)
假设我们有电影领域问题和所属意图分类的数据集, 那么 P(c(i))=c(i)出现的次数 / 所有情况出现的总次数,(例如: c(i)可能是'评分'意图或者'上映时间'意图);
根据特征条件独立假设的朴素思想可以得出如下式子:
p(x|c) = Πp(xi|c) (1<=i<=d),d 为属性的个数
至此得到朴素贝叶斯的具体公式:(这里的 c 就是 c(i))
利用该公式进行分类的思想就是计算所有的 p(c(i)|x), 然后取值 (概率) 最大的 c(i)做为所属分类. 用公式表达如下:
h 是基于朴素贝叶斯算法训练出来的 hypothesis(假设), 它的值就是贝叶斯分类器对于给定的 x 因素下, 最可能出现的情况 c.y 是 c 的取值集合. 这里去掉了 P(x)是因为它和 c 的概率没有关系, 不影响取最大的 c.
朴素贝叶斯直观上理解, 就是和样本属性以及样本类别的出现频率有关, 利用已有的样本属性和样本类别计算出的各个概率, 来代入新的样本的算式中算出属于各类别的概率, 取出概率最大的做为新样本的类别.
所以为了计算准确, 要满足如下几个条件:
• 各类别下的训练样本数量尽可能均衡
• 各训练样本的属性取值要覆盖所有可能的属性的值
• 引入拉普拉斯修正进行平滑处理.
来源: https://www.cnblogs.com/anai/p/12074358.html