人工智能之朴素贝叶斯(NB)
Posted OFweek人工智能
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人工智能之朴素贝叶斯(NB)相关的知识,希望对你有一定的参考价值。
前沿:学习过概率的人一定知道贝叶斯定理,在信息领域内有着无与伦比的地位。贝叶斯算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。
人工智能之机器学习中最为广泛的两种分类模型是1)决策树模型(Decision Tree Model)和2) 朴素贝叶斯模型(Naive Bayesian Model)。决策树DT已经讲过,请参见之前有关文章。
今天我们重点探讨一下朴素贝叶斯(NB),注意这里NB不是牛X, 而是Naive Bayesian。 ^_^
朴素贝叶斯是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。朴素贝叶斯原理简单,也很容易实现,多用于文本分类、垃圾邮件过滤、情感分析等。
英国数学家托马斯·贝叶斯(Thomas Bayes)在1763年发表的一篇论文中,首先提出了贝叶斯定理。
贝叶斯定理的应用需要大量的计算,因此历史上很长一段时间,无法得到广泛应用。只有计算机诞生以后,它才获得真正的重视。人们发现,许多统计量是无法事先进行客观判断的,而互联网时代出现的大型数据集,再加上高速运算能力,为验证这些统计量提供了方便,也为应用贝叶斯定理创造了条件,它的威力正在日益显现。
概念和定义:
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。朴素贝叶斯分类器NBC (NaiveBayes Classifier)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。朴素贝叶斯分类器(NBC)模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。
贝叶斯分类是一系列分类算法总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。
理论基础:
朴素贝叶斯最核心的部分是贝叶斯法则,而贝叶斯法则的基石是条件概率。贝叶斯法则如下:
这里的C表示类别,输入待判断数据,式子给出要求解的某一类的概率。
朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。
朴素贝叶斯分类器模型:
Vmap=arg maxP( Vj | a1,a2...an) Vj属于V集合,其中Vmap是给定一个example,得到的最可能的目标值。其中a1...an是这个example里面的属性。Vmap目标值,就是后面计算得出的概率最大的一个。所以用max来表示。
贝叶斯公式应用到 P( Vj | a1,a2...an)中。可得到 Vmap= arg max P(a1,a2...an | Vj ) P( Vj ) / P(a1,a2...an)。又因为朴素贝叶斯分类器默认a1...an互相独立。所以P(a1,a2...an)对于结果没有用处。可得到Vmap= arg max P(a1,a2...an | Vj ) P( Vj )。
"朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。换言之。该假定说明给定实例的目标值情况下。观察到联合的a1,a2...an的概率正好是对每个单独属性的概率乘积:P(a1,a2...an | Vj ) =Πi P(ai| Vj )
因此,朴素贝叶斯分类器模型:Vnb=arg max P( Vj ) Π iP ( ai | Vj )
朴素贝叶斯基本框架,c类别,A特征
朴素贝叶斯分类器:
比较流行的朴素贝叶斯分类器有:
高斯朴素贝叶斯(Gaussian naive Bayes):适用于多个类型变量,假设特征符合高斯分布。
多项式朴素贝叶斯(Multinomial naive Bayes):用于离散计数,如一个句子中某个词语重复出现,我们视它们每个都是独立的,所以统计多次,概率指数上出现了次方。
伯努利朴素贝叶斯(Bernoulli naive Bayes):如果特征向量是二进制(即0和1),那这个模型是非常有用的。不同于多项式,伯努利把出现多次的词语视为只出现一次,更加简单方便。
可以根据特定数据集选取上述3个分类器中的合适者。
算法优点:
1)既简单又快速,预测表现良好。
2)如果变量独立这个条件成立,相比Logistic回归等其他分类方法,朴素贝叶斯分类器性能更优,且只需少量训练数据。
3)相较于数值变量,朴素贝叶斯分类器在多个分类变量的情况下表现更好。若是数值变量,需要正态分布假设。
4)对缺失数据不太敏感,算法也比较简单。
算法缺点:
1) 如果分类变量的类别(测试数据集)没有在训练数据集总被观察到,那这个模型会分配一个0概率给它,同时也会无法进行预测。这通常被称为“零频率”。为了解决这个问题,可以使用平滑技术,拉普拉斯估计是其中最基础的技术。
2) 朴素贝叶斯也被称为bad estimator,所以它的概率输出predict_proba不应被太认真对待。
3) 删除重复出现的高度相关的特征,可能会丢失频率信息,影响效果。
4) 朴素贝叶斯的另一个限制是独立预测的假设。在现实生活中,这几乎是不可能的,各变量间或多或少都会存在相互影响。
主要应用:
1) 实时预测:运用朴素贝叶斯进行很快地实时预测。
2) 多类预测:这个算法以多类别预测功能闻名,因此可以用来预测多类目标变量的概率。
3) 文本分类/垃圾邮件过滤/情感分析:相比较其他算法,朴素贝叶斯的应用主要集中在文本分类(变量类型多,且更独立),具有较高的成功率。因此被广泛应用于垃圾邮件过滤(识别垃圾邮件)和情感分析(分辨积极情绪和消极情绪的用户)。
4) 推荐系统:朴素贝叶斯分类器和协同过滤结合使用可以过滤出用户想看到的和不想看到的东西。
结语:
朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。朴素贝叶斯在有些领域很有用,比如文本分类、垃圾邮件过滤、情感分析等;朴素贝叶斯原理和实现都比较简单,学习和预测的效率都很高,是一种经典而常用的分类算法。在人工智能领域,朴素贝叶斯方法是一种十分有代表性的不确定性知识表示和推理方法。
资料下载
Hot~
Hot~
Hot~
Hot~
Hot~
展会详情,请点击“阅读原文”~
以上是关于人工智能之朴素贝叶斯(NB)的主要内容,如果未能解决你的问题,请参考以下文章