贝叶斯方法的优缺点及其应用场景

  • 优点
  1. 对待预测样本进行预测,过程简单速度快(想想邮件分类的问题,预测就是分词后进行概率乘积,在log域直接做加法更快)。
  2. 对于多分类问题也同样很有效,复杂度也不会有大程度上升。
  3. 在分布独立这个假设成立的情况下,贝叶斯分类器效果奇好,会略胜于逻辑回归,同时我们需要的样本量也更少一点
  4. 对于类别类的输入特征变量,效果非常好。对于数值型变量特征,我们是默认它符合正态分布的。
  • 缺点
  1. 对于测试集中的一个类别变量特征,如果在训练集里没见过,直接算的话概率就是0了,预测功能就失效了。当然,我们前面的文章提过我们有一种技术叫做『平滑』操作,可以缓解这个问题,最常见的平滑技术是拉普拉斯估测。
  2. 那个…咳咳,朴素贝叶斯算出的概率结果,比较大小还凑合,实际物理含义…恩,别太当真。
  3. 朴素贝叶斯有分布独立的假设前提,而现实生活中这些predictor很难是完全独立的

最常见应用场景

 

  • 文本分类/垃圾文本过滤/情感判别:这大概会朴素贝叶斯应用做多的地方了,即使在现在这种分类器层出不穷的年代,在文本分类场景中,朴素贝叶斯依旧坚挺地占据着一席之地。原因嘛,大家知道的,因为多分类很简单,同时在文本数据中,分布独立这个假设基本是成立的。而垃圾文本过滤(比如垃圾邮件识别)和情感分析(微博上的褒贬情绪)用朴素贝叶斯也通常能取得很好的效果。
  • 多分类实时预测:这个是不是不能叫做场景?对于文本相关的多分类实时预测,它因为上面提到的优点,被广泛应用,简单又高效。
  • 推荐系统:是的,你没听错,是用在推荐系统里!!朴素贝叶斯和协同过滤(Collaborative Filtering)是一对好搭档,协同过滤是强相关性,但是泛化能力略弱,朴素贝叶斯和协同过滤一起,能增强推荐的覆盖度和效果。

朴素贝叶斯注意点

这个部分的内容,本来应该在最后说的,不过为了把干货集中放在代码示例之前,先搁这儿了,大家也可以看完朴素贝叶斯的各种例子之后,回来再看看这些tips。

 

  • 大家也知道,很多特征是连续数值型的,但是它们不一定服从正态分布,一定要想办法把它们变换调整成满足正态分布!!
  • 对测试数据中的0频次项,一定要记得平滑,简单一点可以用『拉普拉斯平滑』。
  • 先处理处理特征,把相关特征去掉,因为高相关度的2个特征在模型中相当于发挥了2次作用。
  • 朴素贝叶斯分类器一般可调参数比较少,比如scikit-learn中的朴素贝叶斯只有拉普拉斯平滑因子alpha,类别先验概率class_prior和预算数据类别先验fit_prior。模型端可做的事情不如其他模型多,因此我们还是集中精力进行数据的预处理,以及特征的选择吧。
  • 那个,一般其他的模型(像logistic regression,SVM等)做完之后,我们都可以尝试一下bagging和boosting等融合增强方法。咳咳,很可惜,对朴素贝叶斯里这些方法都没啥用。原因?原因是这些融合方法本质上是减少过拟合,减少variance的。朴素贝叶斯是没有variance可以减小。
  • 朴素贝叶斯训练/建模

    理论干货和注意点都说完了,来提提怎么快速用朴素贝叶斯训练模型吧。博主一直提倡要站在巨人的肩膀上编程(其实就是懒…同时一直很担忧写出来的代码的健壮性…),咳咳,我们又很自然地把scikit-learn拿过来了。scikit-learn里面有3种不同类型的朴素贝叶斯:

  • 高斯分布型:用于classification问题,假定属性/特征是服从正态分布的。
  • 多项式型:用于离散值模型里。比如文本分类问题里面我们提到过,我们不光看词语是否在文本中出现,也得看出现的次数。如果总词数为n,出现词数为m的话,说起来有点像掷骰子n次出现m次这个词的场景。
  • 伯努利型:这种情况下,就如之前博文里提到的bag of words处理方式一样,最后得到的特征只有0(没出现)和1(出现过)。
  • 根据你的数据集,可以选择scikit-learn中以上任意一种朴素贝叶斯,我们直接举个简单的例子,用高斯分布型朴素贝叶斯建模

 转载于:https://blog.csdn.net/peiwang245/article/details/82193702

  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
朴素贝叶斯算法适用于以下场景: 1. 文本分类:朴素贝叶斯算法在文本分类任务中应用广泛,如垃圾邮件过滤、情感分析等。 2. 多分类问题:朴素贝叶斯算法可以处理多分类问题,并且在类别数量较大时仍能保持较好的性能。 3. 高维特征空间:朴素贝叶斯算法对高维特征空间中的数据有较好的适应性,例如自然语言处理中的词袋模型。 朴素贝叶斯算法的优点包括: 1. 算法简单、易于实现:朴素贝叶斯算法基于简单的概率统计原理,易于理解和实现。 2. 高效性:朴素贝叶斯算法的计算复杂度较低,适合处理大规模数据集。 3. 对小样本数据有效:即使在小样本数据集上,朴素贝叶斯算法也能提供较好的分类效果。 朴素贝叶斯算法的缺点包括: 1. 特征独立性假设:朴素贝叶斯算法假设所有特征之间相互独立,但在实际应用中,很多特征可能存在相关性,这会影响分类效果。 2. 对输入数据的分布假设:朴素贝叶斯算法假设特征的分布是独立的,通常使用高斯分布或多项式分布,如果数据的分布与假设不符,可能导致分类结果不准确。 3. 零概率问题:如果某个特征在训练集中没有出现过,朴素贝叶斯算法会给出零概率,这会导致无法进行分类。 总的来说,朴素贝叶斯算法适用于文本分类、多分类问题和高维特征空间,并具有简单易实现、高效性和对小样本数据有效的优点。然而,它的特征独立性假设和对输入数据分布的假设可能导致分类效果不准确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值