《Python Data Science Handbook》的一些观后总结——In Depth:Naive Bayes Classification

原作:https://jakevdp.github.io/PythonDataScienceHandbook/05.05-naive-bayes.html

牢骚

最近准备把机器学习领域的几大经典算法好好研究一下。我刚入门的时候,是一股脑钻进神经网络的,而且上来就是Faster RCNN。现在在日常工作中经常会看到贝叶斯、SVM、决策树等等这些名词,可是自己却一知半解,很多时候感觉很难堪,是时候系统地研究一下这些算法了。

在google发现了这个好书,我是直接通过线上的电子书学习的。这本书最后一章中介绍了多种机器学习算法,包括:朴素贝叶斯分类器、线性回归、支持向量机(SVM)、决策树和随机森林、主成分分析(PCA)、流形学习(Manifold Learning)、K-Means聚类、高斯混合模型、核密度估计。

需要说明的是,这本书主要是讲如何基于Python进行数据分析的,因此书中有现成的案例,这点非常好。但是,因为书中使用到了一些第三方库,Scikt-learn,因此导致没有详细介绍这些算法的核心概念。因此,对于一些基础概念还需要另行google或者百度或者知乎。

昨天把朴素贝叶斯分类器给看了,今天稍微总结一下:

朴素贝叶斯分类器Naive Bayes Classification

朴素贝叶斯模型代表的不是某种算法,而是一系列算法。
几大优点:

  1. 非常快
  2. 非常简单
  3. 非常适合分析超高维的数据
  4. 几乎没有可调的参数
  5. 适合快速、粗略的分类问题

贝叶斯分类器

朴素贝叶斯分类器是基于贝叶斯分类方法的。这些都基于贝叶斯定理:

就是一个概率转化,将我们不易观察的概率转换成我们易于观察的概率
在这里插入图片描述
在这个公式右边, P (  features  ∣ L ) P(\text { features } | L) P( features L)的取值就成为了关键。在这里,我们引入一个叫做“生成模型”的东西,通过这个模型我们可以轻易的知道 P (  features  ∣ L ) P(\text { features } | L) P( features L)的取值。实际上,所谓的训练贝叶斯分类器也就是训练这样的一个“生成模型”。如果要训练一个公版的生成模型非常困难(The general version of such a training step is a very difficult task),然而,我们可以通过引入一些假设(assumption)让这个生成模型可以更容易地获得。引入这些假设之后,我们的分类器也就变成了朴素贝叶斯分类器了。而各式各样不同的假设,使得朴素贝叶斯有多种不同的类别。

下面将介绍高斯朴素贝叶斯(Gaussian Naive Bayes)

高斯朴素贝叶斯

在回顾一下我们要得到的是 P (  features  ∣ L ) P(\text { features } | L) P( features L),用文字解释就是:在某个Label中,某特征(features)出现的概率。想想这不就是高斯模型吗,如果我们的特征是符合高斯分布的,根据高斯函数,我们给定一个特征,我们就能计算出该特征出现的概率。是的,我们就假设我们的特征是符合高斯分布的,换句话说,我们要用高斯模型来拟合我们的特征分布。

再简单一点!我们假设特征维度是独立的!那么我们就可以在每个维度上单独进行高斯拟合!根据高斯函数,实际上我们只需要计算各个特征维度的标准差和均值就行了,这个生成模型变得非常简单。

当然,高斯朴素贝叶斯并不是万能的,它的效果是基于它的假设的,也就是说如果我们的假设是背离实际的,那么我们的模型效果肯定也是不理想的。实际上,当特征维度太多的时候,这种方法就不太理想,因为各个特征之间难免存在一些关联,无法做到特征独立。

其它

举个例子,我们要对网络上的新闻进行智能分类,分成体育新闻、时政新闻、娱乐新闻等等。我们想到的是根据一些关键词的统计数量来进行分类,例如体育新闻中提到“竞技、冠军、训练”这些词肯定次数多,那么这个时候,我们用于分类的特征中应该就是一些词的计数值。这种情况下,多项式朴素贝叶斯(Multinomial Naive Bayes)就非常适用。

什么时候适用朴素贝叶斯

  1. 当我们的假设和数据非常吻合的情况下(实际情况中非常罕见)
  2. 当类间差异很大的时候,实际上这种时候用什么分类器效果都不错,因此不妨使用简单的朴素贝叶斯
  3. 当数据维度很大的时候,这点和第二点有点类似,因为当数特征空间维度很大的时候,不同类间的差距也在加大
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值