NB和Apriori

本文详细介绍了朴素贝叶斯算法,包括概念、过程、存在的问题及其与决策树的比较,并探讨了朴素贝叶斯在文档分类、垃圾邮件过滤等方面的应用及PCA改进。同时,文章还涉及Apriori算法的基础知识和改进方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、 NB(naive beyes)

1.概念

KNN和决策树要求分类器给出数据实例属于哪一类的明确结果,但是分类器有时会产生错误结果,这时可以要求分类器给出一个最优的类别猜测结果,同时给出这个猜测的概率估计值。

朴素贝叶斯:

优点:在数据缺少的情况下仍然有效,可以处理多类别问题。

缺点: 对于输入数据的准备方式较为敏感。

适用数据类型:标称型数据。

2.算法过程

整个朴素贝叶斯分类分为三个阶段:

第一阶段——准备工作阶段,这个阶段的任务是为朴素贝叶斯分类做必要的准备,主要工作是根据具体情况确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定。

第二阶段——分类器训练阶段,这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,根据前面讨论的公式可以由程序自动计算完成。

第三阶段——应用阶段。这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,由程序完成。

3.NB存在的问题

P(a|y)=0时,当某个类别下某个特征项划分没有出现时,就是产生这种现象,这会令分类器质量大大降低。为了解决这个问题,引入Laplace校准,它的思想非常简单,就是对没类别下所有划分的计数加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,并且解决了上述频率为0的尴尬局面。当特征属性充分多时,朴素贝叶斯分类对个别属性的抗干扰性。

对于分类而言,使用概率有时比使用应规则更为有效。朴素贝叶斯条件独立假设:用于分类的特征在类确定的条件下都是条件独立的。这一假设使朴素贝叶斯变得简单,但有时会牺牲一定的分类准确率。尽管条件独立性假设并不正确,但是朴素贝叶斯仍然是一种有效的分类器。

利用现代编程语言来实现朴素贝叶斯时需要考虑很多实际因素。下溢出就是其中一个问题,它可以通过对概率取对数来解决。词袋模型在解决文档分类问题上比词集模型有所提高。

4.与决策树相比NB的优点

在众多的分类模型中,应用最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBC)。决策树模型通过构造树来解决分类问题。首先利用训练数据集来构造一棵决策树,一旦树建立起来,它就可为未知样本产生一个分类。在分类问题中使用决策树模型有很多的优点,决策树便于使用,而且高效;根据决策树可以很容易地构造出规则,而规则通常易于解释和理解;决策树可很好地扩展到大型数据库中,同时它的大小独立于数据库的大小;决策树模型的另外一大优点就是可以对有许多属性的数据集构造决策树。决策树模型也有一些缺点,比如处理缺失数据时的困难,过度拟合问题的出现,以及忽略数据集中属性之间的相关性等。

和决策树模型相比,朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小时,NBC模型的性能最为良好。

5.应用

(1)使用NB进行文档分类

观察文档中出现的词,并把每个词的出现或者不出现作为一个特征,这样得到的特征数目就会跟词汇表中的词目一样多。

要从文本中获取特征,需要先拆分文本。特征是来自文本的词条(token),一个词条是字符的任意组合。将每一个文本片段表示为一个词条向量,1表示词条出现在文档中,0表示词条未出现。(该实现方式不考虑词在文档中出现的次数,只考虑出不出现,相当于假设词是等权重的)。

(2)过滤垃圾邮件

(3)从个人广告中获取区域倾向

(4)显示地域相关用词

         预处理过程中,比如英文文档不需要区分单词的大小写问题,空格、其他字符以及网址等的处理,还要一些没有意义的单词需要去掉。

6.改进
(1)PCA主成分分析

         前面提到理论上NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。主成分分析(Principal Component analysis )正好可以解决这个问题。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。

         检索到一篇相关的论文。

[1] Karthikeyan.T&P.Thangaraju. PCA-NB Algorithm to Enhance the Predictive Accuracy[J].International Journal of Engineering and Technology,2014, Vol.6(No.1):381-387

这篇文章主要介绍用于提高分类预测精度的特征提取算法。将主成分分析作为特征评估者和搜索方法的筛选者,采用神经贝叶斯算法作为分类算法,对来自UC Irvine机器学习库肝炎患者的数据进行分析。最后得出结论,PCA-NB算法的性能优于其他分类技术对肝炎患者的影响。

2)贝叶斯信念网络(Bayesian belief network

         贝叶斯信念网络说明联合条件概率分布,它允许在变量的子集间定义类条件独立性。它提供一种因果关系的图模型。贝叶斯信念网络也被称为信念网络、贝叶斯网络和概率网络。信念网络有两个成分定义—有向无环图和条件概率表的集合。

二、 Apriori算法

1.相关概念

         从大规模数据集中寻找物品间的隐含关系被称作关联分析(association analysis)或者关联规则学习(association rule learning)。频繁项集是经常出现在一块的物品的集合,关联规则暗示两种物品之间可能存在很强的关系。一个项集的支持度(support)被定义为数据集中包含该项集的记录所占的比例。可信度或置信度(confidence)是用来量化关联分析是否成功的方法。

         Apriori原理:如果某个项集是频繁的,那么它的所有子集也是频繁的。反过来,如果一个项集是非频繁项集,那么它的所有超集也是非频繁的。该原理可以避免项集数目的指数增长,从而在合理时间内计算出频繁项集。

         关联分析的目标包括两项:发现频繁项集和发现关联规则。

完整的apriori算法伪代码:

当集合中项的个数大于0时

         构建一个k个项组成的候选项集的列表

         检查数据以确认每个项集都是频繁的

         保留频繁项集并构建k+1项组成的候选项集的列表

2.算法改进

       支持度和置信度度量不足以过滤掉无趣的关联规则。可以使用相关性度量来扩充关联规则的支持度—置信度框架。相关规则(correlation rule):A=>B[support,confidence,correlation].

         提升度(lift)是一种简单的相关性度量。定义:项集A的出现独立于项集B的出现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值