title: 朴素贝叶斯 机器学习实战
date: 2019-07-28
tags:
- 机器学习
- 贝叶斯
categories: - 学习
mathjax: true
朴素贝叶斯用于文档分类
任务:
给定一段文本,判断属于哪个类别。
在文档分类中,整个文档(如一封电子邮件)是实例,而电子邮件中的某些元素则构成特征。我们可以观察文档中出现的词,并把每个词作为一个特征,而每个词的出现或者不出现作为该特征的值,这样得到的特征数目就会跟词汇表中的词的数目一样多。
我们假设特征之间 相互独立 。所谓 独立(independence) 指的是统计意义上的独立,即一个特征或者单词出现的可能性与它和其他单词相邻没有关系,比如说,“我们”中的“我”和“们”出现的概率与这两个字相邻没有任何关系。这个假设正是朴素贝叶斯分类器中 朴素(naive) 一词的含义。朴素贝叶斯分类器中的另一个假设是,每个特征同等重要。
算法:
为test文本单词构成的向量,
表示属于类别i
我们使用上述公式,对每个类计算该值,然后选择概率最大的类别。
于对于每个ci,P(w)是固定的。我们就可以简化为通过比较右边分子值得大小来做决策分类。
表示属于ci的文档出现的概率=count(属于ci的文档)/count(总文档数)
朴素,每个特征相互独立
P(w0|ci)wo在ci的文档中出现的次数/ w0在所有文档出现的总次数 错
P(w0|ci)wo在ci的文档中出现的次数/ ci的文档中出现的单词总数 对
- 1 建立词汇表
- 2.计算
和
- 3 test时,找到每个test word所对应的
,计算P(c_i|W) =
和
,找到概率最大的类别。
改进:
-
为防止分子太小,使得概率为0,加入
-
在利用贝叶斯分类器对文档进行分类时,要计算多个概率的乘积以获得文档属于某个类别的概率,即计算 p(w0|1) * p(w1|1) * p(w2|1)。如果其中一个概率值为 0,那么最后的乘积也为 0。为降低这种影响,可以将所有词的出现数初始化为 1,并将分母初始化为 2 (取1 或 2 的目的主要是为了保证分子和分母不为0,大家可以根据业务需求进行更改)。
朴素贝叶斯例子参考
https://blog.csdn.net/c406495762/article/details/77341116
代码:
网友评论