04 朴素贝叶斯(Naive Bayes)

出自——火哥

目录

1. 朴素贝叶斯概率模型

1.1 理论

1.2 实践

1.2.1 文章分类——已经分好词

1.2.2 文章分类——未分好词

1.3 总结

1.3.1 朴素贝叶斯可以用来做什么?

1.3.2 朴素贝叶斯的优缺点

2. 高斯朴素贝叶斯

3. 多项式分布朴素贝叶斯

4. 附录

4.1 附录1


朴素贝叶斯的假设:

  • 一个特征出现的概率,与其它特征(条件)独立(特征独立性)(也可以认为是:对于给定分类的条件下,特征独立)
  • 每个特征同等重要(特征均衡性)。

1. 朴素贝叶斯概率模型

1.1 理论

公式理论上,概率模型分类器是一个条件概率模型。

04 朴素贝叶斯(Naive Bayes)_第1张图片

举例:给定一篇文章,预测出其类别

04 朴素贝叶斯(Naive Bayes)_第2张图片

 04 朴素贝叶斯(Naive Bayes)_第3张图片

04 朴素贝叶斯(Naive Bayes)_第4张图片

04 朴素贝叶斯(Naive Bayes)_第5张图片

例如:

    总共训练数据1000篇,

    其中军事类300篇,科技类240篇,生活类140篇

  • P(军事)=0.3, P(科技)=0.24, P(生活)=0.14,......

例如:

    总共训练数据1000篇,

    其中军事类300篇,科技类240篇,生活类140篇,......

  • 军事类新闻中,“谷歌”出现15篇,“投资”出现9篇,“上涨”出现36篇
  • P(谷歌|军事)=0.05, P(投资|军事)=0.03, P(上涨|军事)=0.12,......

04 朴素贝叶斯(Naive Bayes)_第6张图片

1.2 实践

1.2.1 文章分类——已经分好词

(1)整合数据,生成训练集和测试集

04 朴素贝叶斯(Naive Bayes)_第7张图片

(2)模型的训练及保存

04 朴素贝叶斯(Naive Bayes)_第8张图片

Q1: 这里有个问题,为什么不直接存对象呢?

Q2: 有没有发现,代码中p(xi|yi)和理论中讲的不一样呢?

在代码中,p(xi|yi) = count(xi在yi中出现的总次数) / count(yi样本的总词数)

 (3) 推理

04 朴素贝叶斯(Naive Bayes)_第9张图片

1.2.2 文章分类——未分好词

1.3 总结

1.3.1 朴素贝叶斯可以用来做什么?

(1)可以做分类

(2)可以做特征

对标题进行分词,每个词都有一个针对类别的概率值,将该值作为特征输入到CTR模型。

04 朴素贝叶斯(Naive Bayes)_第10张图片

1.3.2 朴素贝叶斯的优缺点

(1)优点

a. 算法简单,常用于文本分类

b. 兼容多分类任务

c. 适合增量训练。实时更新p(y), p(x|y)

增量计算的方法:

Before:总共有1000篇文章,其中有200篇文章是军事。P(y) = 200 / 1000

After:新增500篇文章,其中有100篇文章是军事。p(y) = (200 + 100) / (1000 + 500)

(2) 缺点

a. 对于多义词,怎么办?对于模棱两可的词,该把这个词归位哪一类?

b. 顺序不敏感。句首,句中,句尾,往往是句首和句尾更重要。

c. 依赖先验概率

d.适用离散特征

2. 高斯朴素贝叶斯

如果要处理的是连续数据,一种通常的假设是这些连续数值为高斯分布。 例如,假设训练集中有一个连续属性x。我们首先对数据根据类别分类,然后计算每个类别中x的均值和方差。令表示为xc类上的均值,令为 x在c类上的方差。在给定类中某个值的概率,可以通过将v表示为均值为方差为正态分布计算出来。如下, 

04 朴素贝叶斯(Naive Bayes)_第11张图片

处理连续数值问题的另一种常用的技术是通过离散化连续数值的方法。通常,当训练样本数量较少或者是精确的分布已知时,通过概率分布的方法是一种更好的选择。在大量样本的情形下离散化的方法表现更优,因为大量的样本可以学习到数据的分布。由于朴素贝叶斯是一种典型的用到大量样本的方法(越大计算量的模型可以产生越高的分类精确度),所以朴素贝叶斯方法都用到离散化方法,而不是概率分布估计的方法。

3. 多项式分布朴素贝叶斯

04 朴素贝叶斯(Naive Bayes)_第12张图片

04 朴素贝叶斯(Naive Bayes)_第13张图片

如果一个给定的类和特征值在训练集中没有一起出现过,那么基于频率的估计下该概率将为0故可以引入Laplace和Lidstone平滑。

4. 附录

4.1 附录1

独立的类别变量C有若干类别,条件依赖于若干特征变量 F1,F2,……Fn。但问题在于如果特征数量n较大或者每个特征能取大量值时,基于概率模型列出概率表变得不现实。所以我们修改这个模型使之变得可行。 贝叶斯定理有以下式子:

用朴素的语言可以表达为(前面好几个算法也可以这样表示:即后验概率正比于先验概率*似然函数)

实际中,我们只关心分式中的分子部分,因为分母不依赖于C而且特征 Fi 的值是给定的,于是分母可以认为是一个常数。这样分子就等价于联合分布模型。

重复使用链式法则,可将该式写成条件概率的形式,如下所示:

04 朴素贝叶斯(Naive Bayes)_第14张图片

现在朴素条件独立假设开始发挥作用:假设每个特征Fi对于其他特征是条件独立的。这就意味着

对于,所以联合分布模型可以表达为

04 朴素贝叶斯(Naive Bayes)_第15张图片

这意味着上述假设下,类变量C的条件分布可以表达为:

你可能感兴趣的:(搜推广,算法/ML,机器学习,分类,概率论)