无人驾驶中的机器学习-朴素贝叶斯分类(Naive Bayes)

Posted 洛阳之才子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无人驾驶中的机器学习-朴素贝叶斯分类(Naive Bayes)相关的知识,希望对你有一定的参考价值。

贝叶斯分类是经典的机器学习算法,也是为数不多的基于概率论的分类算法,它的理论基础基于概率论中的贝叶斯定理。单从公式的角度(如下图所示)贝叶斯定理非常简单,但是它的意义以及对于人类社会的贡献却是巨大的。现实世界本身是不确定的,人类的观察能力是有局限性的,人类对于事物的认识很多时候无法触及其核心本质,只能借助于观察、统计,从历史的经验中获取对于未来的预测。这种预测不能简单的瞎蒙,贝叶斯定理可以帮我们解决这一难题。

朴素贝叶斯分类的原理

其中P(c)是分类的先验概率,p(x|c)是样本x相对于类标记c的条件概率,p(x)是归一化因子。

条件概率p(x|c)由于涉及到x所有属性的联合概率,直接根据样本出现的频率来估计将会遇到严重的困难。例如样本的d个属性都是二值的,则样本空间有2^d种取值可能,在现实应用中,这个值可能远远大于训练样本数,也就是说很多样本取值在训练集中根本没有出现,直接使用频率估计p(x|c)肯定不行,因为"未被观察到"与"出现概率为零"通常是不同的。

所以朴素贝叶斯采用了样本属性条件独立的假设,每个属性独立的对分类结果发生影响。这种假设非常的理想化,也就是名称Naive的由来,too young too naive。

其中d为属性数目,xi为第i个属性上的取值。

朴素贝叶斯虽然很简单,特征之间的条件独立性假设显得“粗鲁”而不符合实际,这也是名称中“朴素”的由来。然而事实证明,朴素贝叶斯在有些领域很有用,比如垃圾邮件过滤等。

朴素贝叶斯的应用

1 垃圾邮件过滤

现实生活中,我们会在各类网站使用自己的电子邮箱注册,避免不了网站会时不时的给我们发送一些垃圾邮件,我们的目的是实现一个识别系统,将收到的邮件进行分类。

垃圾邮件分类:有两个分类:C0=垃圾邮件,C1=正常邮件;

字典词汇列表: 该词典囊括了训练文档集中的所有必要词汇,用向量x=(x0,x1,x2,...,xn)表示;

训练数据集:垃圾邮件数据集m1和非垃圾邮件数据集m2;

数据预处理:根据词典向量化每个处理后的文档。每个文档都定义为词典大小,分别遍历垃圾邮件和非垃圾邮件文档中的每个词汇并统计出现次数,得到一个个跟词典一样大小的向量,这些向量由一个个整数组成,每个整数代表词典的词汇在当前文档中的出现次数。

条件概率计算:统计每一类处理过的文档中词汇总个数,某一个文档的词频向量除以相应类别的词汇总个数,即得到相应的条件概率,如P(x0|C0)、P(x1|C0)、P(x0|C1)等。

先验概率:P(C0)=m1/(m1+m2), p(C1)=m2/(m1+m2)。

有了上述的基础数据,对于一封新的邮件是否是垃圾邮件,可以通过上述贝叶斯概率公式计算P(C0|x0,x1,...,xk)和P(C1|x0,x1,...,xk)的概率,通过二者的概率的大小可以得出新邮件为垃圾邮件的概率。

2 拼写纠正

首先我们有一个词典数据,如果看到用户输入了一个不在字典中的单词,我们需要去猜测:“这个家伙到底真正想输入的单词是什么呢?”,抽象为数学问题,就是得到P(猜测用户想输入的单词 | 用户实际输入的单词)。当然猜测的值未必是唯一的,我们还需要找出概率最大的那个单词。举个例子,比如用户输入了hew,到底用户想输入her还是要输入hello、here等。

把用户实际输入的单词记为W,联想到的用户可能输入的词记为h0,h1,...,分别计算P(h0 | W),P(h1 | W),...运用贝叶斯公式:P(h | W) = P(h) * P(W | h) / P(W),对于不同的猜测值h0,h1,..., P(W)都是一样的,所以在计算P(h0 | W),P(h1 | W),...时可以忽略这个常数,即我们只需要知道P(h | W) ∝ P(h) * P(W | h)。P(h)表示被联想到的单词被使用的可能性的大小,这可以通过统计每个单词被人们使用的频率获得。P(W | h)表示被联想到的单词生成用户生成的词的概率。具体到我们的那个 hew 例子上,用户实际是想输入her的可能性大小取决于her本身在词汇表中被使用的可能性(频繁程度)大小和想输入her却打成hew的可能性大小的乘积。下面的事情就很简单了,对于我们猜测为可能的每个单词计算一下 P(h) * P(W | h) 这个值,然后取最大的,得到的就是最靠谱的猜测。

在具体的实现上我们不需要针对每一个单词都计算其贝叶斯概率,只需要根据用户的错误单词做一个bottom-up的关联提取,

这个提取过程就是所谓的基于内容的提取,可以根据错误单词的一些模式片段提取出有限的一组候选,非常快地缩小的搜索空间,提取出有可能是实际单词的那些候选单词,这个提取过程就是所谓的基于内容的提取,可以根据错误单词的一些模式片段提取出有限的一组候选,非常快地缩小的搜索空间。


以上是关于无人驾驶中的机器学习-朴素贝叶斯分类(Naive Bayes)的主要内容,如果未能解决你的问题,请参考以下文章

机器学习 sklearn 监督学习 分类算法 朴素贝叶斯 Naive Bayesian Model

机器学习 sklearn 监督学习 分类算法 朴素贝叶斯 Naive Bayesian Model

朴素贝叶斯:容易理解但不naive的分类模型(原理及应用)

机器学习---朴素贝叶斯分类器(Machine Learning Naive Bayes Classifier)

机器学习实战三(Naive Bayes)

朴素贝叶斯(naive bayes)