数据挖掘十大算法翻译——9朴素贝叶斯

1 介绍

给定一个对象集合,已知他们的变量向量和所属类别。我们的目标是创建一个规则,给定一个新的对象的输入向量,通过这个规则,我们能够预测他的类别。这样的问题叫做监督式分类,目前有很多用于监督式分类的方法被创造和发展。其实有一个很重要的就是朴素贝叶斯(naiveBayes).同时也被成为idiot‘s Bayes,simple Bayes和independence Bayes。这个方法之所以很重要,主要是因为以下原因:

  • 构建简单,不需要复杂的迭代参数评估过程。这意味着该方法适用于巨大的数据。

  • 容易解释,对于对分类技术不熟悉的人也能理解为什么这个模型是有用的

  • 最后,它的表现也常常不错。它或许不是某一个特定方法中的最好的分类器,但是它通常是鲁棒的,并且对分类的效果不错。

贝叶斯分类的概述和它的优点在论文[22,23]中给出了

2 基本概念

为了方便起见,我们假设所分的类别就两类,0和1。我们的目标是通过使用训练数据来构造一个评分,让大的评分与类1(假定)相关,同时小的评分与类0相关。这样分类问题就可以通过比较评分和阈值t的大小来实现。如果我们定义 p(i|x) 为以 x=(x1,..,xp) 为特征向量的对象属于类别i的概率,这样任何P(i|x)的单调函数都可以作为一个合适的评分。特别低, P(1|x) P(0|x) 就是个很好的例子。初等概率告诉我们可以把P(i|x)分解为 f(x|i)P(i) , 这里的 f(x|i) 是向量x对于类别i的条件分布, p(i) 是对象属于i的先验概率(如果我们不知道它属于什么类别)。于是可以有下面的表示:

p(1|x)p(0|x)=f(x|1)P(1)f(x|0)P(0)(1)

为了使用这个分类器,我们需要估计 f(x|i) P(i) 。如果训练集是总样本的随机分布,那么P(i)可以直接由类别i在训练集中的比例来决定。为了评估 f(x|i) ,朴素贝叶斯假定x的成分都是独立的,于是有 f(x|i)=pj=1f(xj|i) ,这样我们就可以分别估计单变量分布 f(xj|i),j=1,,P 。这样p维的多变量问题就可以简化为p个单变量问题。单变量问题是一个熟悉,简单,不需要很多训练集同时又具有比较高的准确率的问题。这也是朴素贝叶斯的独特的吸引力所在,既评估简单,十分快速,不需要迭代的评估方案。

如果边缘分布 f(xj|i) 是离散的,每个 xj 只有几个值,估计 f(xj|i) 就是一个“多想直方类型估计值”(multinomial histogram type estimator)——简单的对落入不同的区域的类别i的对象的计数。如果 f(xj|i) 是连续的,一种常见的做法是将他们他们分为几个不同的区间,然后使用多项式估计,但是基于连续估计(核估计)的比较复杂的方式也同样是有人使用的。
给定独立性质的假设,(1)中的式子就变成了下面这样

P(1|x)P(0|x)=pj=1f(xj|1)P(1)pj=1f(xj|0)P(0)=P(1)P(0)j=1pf(xj|1)f(xj|0).(2)

现在,由于我们的目标仅仅是计算一个单调于 P(i|x) 的评分。我们可以对(2)式去对数,于是我们就可以得到下面的相关性评分

lnP(1|x)P(0|x)=lnP(1)P(0)+j=1plnf(xj|1)f(xj|0).(3)

如果我们定义 wj=ln(f(xj|1)/f(xj|0)) 和常量 k=ln(P(1)/P(0)) ,我们可以将(3)的式子简化为

lnP(1|x)P(0|x)=k+j=1pwj,(4)

对于每个类中的中 xj 之间独立性的假设意味着朴素贝叶斯有比较严格的限制。事实上,由于有很多因素都会有所影响,这个假设并不是那么重要。首先,一个先变量的选取步骤会先进行,这个步骤之中,如果会对一些相关性比较高的变量对于不同类之间的贡献十分相似,他们会被消除。也就说剩下的变量会是近似的独立的。其次,假设零次的迭代提供了一个暗含的正则化步骤,这样减少了模型的变量同时能够得到准确率更高的分类器。最后,在某些变量相关的情况下,最优决策表变(optimal decision surface)与有独立假设的情况下是一样的。最后,当然了,有贝叶斯模型得到的决策表面通常有一个复杂的非线性的形状: wj 中的表面是线性的,但是与原变量 xj 高度非线性,所以它可以适用于相当复杂的表面。

3 一些拓展

除了上面这些内容,很多作者提出了改进贝叶斯分类器从而提高其分类准确性的方法。

一个比较早提出的分类器简化落入不同的分类中的对象的比例的简单多项式估计,这些分类有离散的预测变量。因此,如果第j个离散预测变量, xj ,有 cr 个类别,同时如果总数为n的对象中有 njr 落入这个变量的第r个分类中,常用未来对象会落入这个分类中的的概率的多项式估计, njr/n 就会被 (njr+cr1)/(n+1) 替代。这样的收缩也有一个直观的贝叶斯解释。它的结果就是有了较低方差的估计。

或许消除独立性假设最直观的方式是在每个类中的x的分布的模型中引入额外的规定,从而允许迭代的发生。有很多人尝试过这个方法,但是我们必须通过这种方法增加了复杂性,牺牲了朴素贝叶斯的基本的简单和优雅。在任意的类中,x的联合分布如下:

f(x)=f(x1)f(x2|x1)f(x3|x1,x2)f(xp|x1,x2,...,xp1)(5)

通过简化条件概率这个联合分布可以被估算。最极端的情况就是对于每个i都有 f(xi|x1,...,xi1)=f(xi) ,这就是朴素贝叶斯方法。显然,在这两种极端下的模型可以被使用。例如,可以使用马儿卡夫模型:

f(x)=f(x1)f(x2|x1)f(x3|x2)f(xp|xp1).(6)

这个等式使用双向边缘分布的子集而不是使用朴素贝叶斯的单变量边缘分布。

朴素贝叶斯模型的其他扩展是独立它发展的。这就是逻辑回归模型。在上面我们通过采用朴素贝叶斯独立性假设获得了(2)式子。然而,如果我们通过 f(x|1)byg(x)pj=1h1(xj) f(x|0)byg(x)pj=1h0(xj) ,来为 f(x|1) 建造模型相同构造的比例结果在每个模型中是相同的。这个比例如下:

P(1|x)P(0|x)=P(1)g(x)pj=1h1(xj)P(0)g(x)pj=1h0(xj)=P(1)P(0)pj=1h1(xj|1)pj=1h0(xj|1).(7)

这里, hi(xi) 并不一定要是概率密度函数——如果 g(x)pj=1hi(xj) 是密度的话就足够了。在(7)中的模型和朴素贝叶斯模型一样简单,并且使用相同的形式——使用对数正如我们在(4)中总结的一样。但是因为它不需要独立性的假设,这个方法也更加灵活。事实上,这个方法通过可以是任何形式的g(x)函数可以允许任意的独立结构。重点在于,这种独立性在两个类中是相同的,所以它抵消了(7)中的比例。当然,这种逻辑回归模型的可观的灵活性不是没有代价的。虽然结果模型是和贝叶斯模型的形式完全一样的(当然,它们有不同的参数),它不能通过单独的看每个边缘分布得到,它必须使用一个迭代的过程。

4 朴素贝叶斯影响的总结

由于它的简介、优雅和鲁棒性,朴素贝叶斯有很强的吸引力。它是最古老的正式的分类器算法,目前它最简单的形式又是也工作的十分良好。在文字分类和垃圾邮件过滤中它被广泛的使用。通过统计学、数据挖掘、机器学习和模式识别的工作者朴素贝叶斯有大量的改进版本。但是不得不承认的是这些方法都或多或少的偏离了朴素贝叶斯方法的简洁性。不同的改进方法在论文[27,66]中有描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值