无公式无代码白话朴素贝叶斯分类器

        朴素贝叶斯用于文本分类的原理感觉已经很明白了,但是扔掉书本之后思路还是很混乱,在此进行一些梳理,方便复习。首先整体理解一下。朴素贝叶斯分类器实际上是一种产生式模型。所谓产生式模型就是模型并不是直接给出某个测试样本属于哪一类,而是给出这个测试样本属于每一类的概率值。然后通过贝叶斯决策理论的核心思想“选择具有最高概率的决策”来进行分类。由此也可以看出朴素贝叶斯的一个优点,能够进行多种类别的分类任务。

    一、核心原理公式

  1. 条件概率公式:条件概率公式在朴素贝叶斯中的应用主要是在贝叶斯准则的表达形式上。比如如果是对文档进行分类,我们需要计算已知某文档属于某一类的条件下此文档的中每一个特征出现的概率。
  2. 贝叶斯准则:这是朴素贝叶斯分类过程的关键。通过贝叶斯准则我们就可以计算出“逆概率”,即已知某一文档的特征,那么此文档属于某类的概率。然后基于若干个此概率进行比大小做出分类。

    二、主要步骤

1、根据原始文本数据构建词汇表。

        这一步对于标称型数据来说是必须的。每个文档的特征表示形式必须统一。这也是朴素贝叶斯分类的一个缺点,即对输入数据的准备方式比较敏感。

2、根据词汇表从数据中构建词向量作为训练数据

        有两种方法:词集模型和词袋模型。词集模型只是把一个词在词汇表中出现与否作为文档的特征,而词袋模型还要考虑到一个词在文档中出现的次数。在某种意义上来说词袋模型比词集模型具有更高的精确度。

3、训练算法:计算不同的独立特征的条件概率,即训练模型参数P(Ci)和P(W|Ci)。

        朴素贝叶斯的模型参数即为这几个概率。如果是一个N分类问题,词汇表中的单词数为M,那么朴素贝叶斯一共有N*(M+1)个参数。P(Ci)比较好算,即用Ci类文档的数目除以整个训练数据中文档的数目。关键是求P(W|Ci)。这就涉及到了朴素贝叶斯模型最核心的部分:条件独立性假设。

        核心假设:条件独立性假设。

        这个假设认为,在设定某一文档类别的情况下,任意两个单词同时出现在此文档中的概率是独立的。即P(W|Ci)=P(w1|Ci)P(w2|Ci)P(w3|Ci)...P(wn|Ci)。这样,我们就把计算P(W|Ci)转化为分别计算各项P(wi|Ci)了。计算P(wi|Ci)有两种方法,经典的方法是用属于Ci类且出现了单词wi的文档数目除以这一类文档的总数目;另外一种是《机器学习实战》中出现的,他是用属于Ci类且出现了单词wi的文档数目除以这一类文档中所有单词的个数。

        说到这里,我们发现了朴素贝叶斯模型的有一个优点,那就是模型参数的训练是可以增量进行的,也就是当拥有更多新的训练数据时,我们不必把整个模型重新训练一遍,而是只需要将新的训练数据中相应地部分累加到原有模型的相应计数中,然后经过几次除法就得到了最新的模型参数。然而,目前为止我们的模型还存在一个大问题,那就是,如果某一个单词在某一类文档中出现的次数为0,那么计算P(wi|Ci)就为0.这样经过累乘后整个P(W|Ci)就为0,带来灾难性的后果。所以,我们有必要对训练算法进行优化。

        根据现实情况修改训练算法:极大似然估计改为贝叶斯估计之拉普拉斯平滑。

        简单点说,就是在计算P(wi|Ci)的时候,将所有词的出现次数初始化为1,即假设任何一个词都至少出现了一次,然后将对应的分母初始化为2。那么,这个分母(上面说过有两种方法表示)的2表示什么意思呢?其实,2的意思是wi这个词的取值的不同情况,即wi在文档中要么出现要么不出现。如果wi的取值定义为有多种情况,比如S种,那么分母就要初始化为S了。这里面的意思实际是,我们要保证P(wi|Ci)是一种概率分布,根据概率分布的三个特性:非负性、规范性、可列可加性,我们要满足规范性,就要保证wi取不同值的时候各概率累加为1。因为我们已经人为地把每一项概率的分子部分多加了1,为了保持这种性质,所以我们要将分母部分多加一个2 。同样,在计算P(Ci)的时候,也要在分子上多加一个1,然后在分母上多加一个分类的总类别数N。

4、根据贝叶斯准则构建分类函数

        需要考虑的计算问题:下溢出。

        这个属于具体实现方面的改进。我们知道在实际情况中上述模型训练出来的参数都非常小,而这些参数再经过累乘,就会变得更小,以至于计算机无法表示,甚至四舍五入为0。

        解决办法:对乘积取自然对数,则小数相乘转为小数的对数相加。

        效果:采用自然对数进行处理不会有任何损失。因为最后的结果只是比较根据贝叶斯准则求出的后验概率的大小。

5、测试算法之留存交叉验证

        随机选择数据的一部分作为训练集,而剩余部分作为测试集的过程称为留存交叉验证。

        为了更精确地估计分类器的错误率,应该进行多次验证求出平均错误率。

   


    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值