朴素贝叶斯 咱们在乎图分类阶段使用了多项式朴素贝叶斯算法来将输入的问题分到对应的意图类别下,让咱们先来看看什么式朴素贝叶斯。朴素贝叶斯算法是基于贝叶斯定理与特征条件独立假设的分类 方法。 贝叶斯公式推导过程: 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。 朴素贝叶斯直观上理解,就是和样本属性以及样本类别的出现频率有关,利用已有的样本属性和样本类别计算出的各个几率,来代入新的样本的算式中算出属于各种别的几率,取出几率最大的作为新样本的类别。 因此为了计算准确,要知足以下几个条件: • 各种别下的训练样本数量尽量均衡 • 各训练样本的属性取值要覆盖全部可能的属性的值 • 引入拉普拉斯修正进行平滑处理。
多项式朴素贝叶斯 再选择朴素贝叶斯分类的时候,咱们使用了one-hot的思想来构建句向量,其中的值都是0或1的离散型特征,因此使用多项式模型来计算 p(xi|c)会更合适(对于连续性的值,选用高斯模型更合适): Dc 表示训练集 D 中第 c 类样本组成的集合,外加两条竖线 表示集合的元素数量; Dc,xi 表示 Dc 中第 i 个特征上取值为 xi 的样本组成的集 合。 为避免出现某一维特征的值 xi 没在训练样本中与 c 类别同时出 现过,致使后验几率为 0 的状况,会作一些平滑处理: K表示总的类别数; Ni表示第 i 个特征可能的取值的数量。