利用朴素贝叶斯进行分类

一、前言

  由于本文章是对台大李宏毅老师的《机器学习》课程之《Classification》进行的个人总结,因此使用口袋妖怪(Pokeman)来举例说明。

二、线性回归用于分类

  假设宝可梦的所有属性共七种,选出其中两种作为宝可梦的特征(也就是空间维度)。分类问题要求根据已知的两种宝可梦的特征训练集,来对新加入的点进行分类。
  一个问题:是否可以用回归的思想来解决分类问题呢?
  假设有两种类别,可以试着用用最小二乘法拟合出一条直线(曲线),使得所有点到这条线的距离之和最短,测试的点若在直线上方则为一种类别,否则则为另一种类别。
  如果对于下面的左图来说,这样的做法貌似没什么问题;但是考虑数据分布如右图所示的情况,当蓝色的类别中数据离散的程度很高时,根据最小二乘法思想,我们拟合的直线会向下“倾倒”以满足所有点到直线距离之和最小,而这样做的代价,就是导致可能有很大一部分本属于蓝色的数据被划分到红色区域,从而导致很差的分类效果,因此线性回归的方法一般是不可取的。
在这里插入图片描述

三、朴素贝叶斯(Naive Bayes)分类

贝叶斯规则的概念

《深度学习》中对贝叶斯规则有比较系统的描述:

我们经常会需要在已知 P ( y ∣ x ) P(y|x) P(yx) 时计算 P ( x ∣ y ) P(x|y) P(xy)。幸运的是,如果还知道 P ( x ) P(x) P(x), 我们可以用贝叶斯规则(Bayes’ rule)来实现这一目的:
P ( x ∣ y ) = P ( x ) P ( y ∣ x ) P ( y ) P(\mathrm{x} | \mathrm{y})=\frac{P(\mathrm{x}) P(\mathrm{y} | \mathrm{x})}{P(\mathrm{y})} P(xy)=P(y)P(x)P(yx)注意到 P ( y ) P(y) P(y) 出现在上面的公式中,它通常使用 P ( y ) = ∑ x P ( y ∣ x ) P ( x ) P(\mathrm{y})=\sum_{x} P(\mathrm{y} | x) P(x) P(y)=xP(yx)P(x) 来计算, 所以我们并不需要事先知道 P ( y ) P(y) P(y) 的信息。

其中的 P ( y ) = ∑ x P ( y ∣ x ) P ( x ) P(\mathrm{y})=\sum_{x} P(\mathrm{y} | x) P(x) P(y)=xP(yx)P(x) 其实也就是全概率公式。
P ( y ) P(y) P(y)展开:
P ( y ) = P ( y , x 1 ) + P ( y , x 2 ) + P ( y , x 3 ) + ⋯ + P ( y , x n ) P(y)=P(y,x_1)+P(y,x_2)+P(y,x_3)+\dots+P(y,x_n) P(y)=P(y,x1)+P(y,x2)+P(y,x3)++P(y,xn)其中 ∑ i = 1 n x i = 1 \sum_{i=1}^n{x_i}=1 i=1nxi=1.

朴素贝叶斯之所以名为朴素,是因为它是基于对条件概率做出分布独立性的假设,也就是说:
P ( x 1 , x 2 , … x n ∣ y ) = P ( x 1 ∣ y ) ⋅ P ( x 2 ∣ y ) … P ( x n ∣ y ) P(x_1,x_2,\dots x_n|y)=P(x_1|y)·P(x_2|y)\dots P(x_n|y) P(x1,x2,xny)=P(x1y)P(x2y)P(xny)

朴素贝叶斯被用于分类的原因

对于贝叶斯公式:
P ( C 1 ∣ x ) = P ( x ∣ C 1 ) P ( C 1 ) ∑ i = 1 n P ( x ∣ C i ) ⋅ P ( C i ) P(\mathrm{C_1} | \mathrm{x})=\frac{ P(\mathrm{x} | \mathrm{C_1})P(\mathrm{C_1})}{\sum_{i=1}^nP(\mathrm{x}|C_i)·P(C_i)} P(C1x)=i=1nP(xCi)P(Ci)P(xC1)P(C1)
  重新考虑“分类”的问题,其实就是求对于给定样本 x x x的情况下是Class 1的概率 P ( C 1 ∣ x ) P(C_1|x) P(C1x),如果概率大于0.5,则证明此数据属于类别一,否则属于类别二。上面的 x x x 即测试数据, C 1 C_1 C1 即代表类别一。
  有了朴素贝叶斯公式作为分类的标准,似乎工作已经完成了一大半,那么这里的概率函数应该服从什么分布呢?

多维高斯分布

概率论中均学过高斯分布(Gaussian Distribution,也叫做正态分布)
关于多维高斯分布的概率密度函数长这样:
f μ , Σ ( x ) = 1 ( 2 π ) D / 2 1 ∣ Σ ∣ 1 / 2 exp ⁡ { − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) } f_{\mu, \Sigma}(x)=\frac{1}{(2 \pi)^{D / 2}} \frac{1}{|\Sigma|^{1 / 2}} \exp \left\{-\frac{1}{2}(x-\mu)^{T} \Sigma^{-1}(x-\mu)\right\} fμ,Σ(x)=(2π)D/21Σ1/21exp{21(xμ)TΣ1(xμ)}
推导参考:https://www.cnblogs.com/jermmyhsu/p/8251013.html
图像:
在这里插入图片描述
花书提到:

采用正态分布在很多应用中都是一个明智的选择。当我们由于缺乏关于某个实 数上分布的先验知识而不知道该选择怎样的形式时,正态分布是默认的比较好的选择。

因此这里以高斯分布作为一类样本 x x x 的概率质量函数。
  既然知道了使用高斯分布,剩下的工作就是确定多维高斯分布的 x x x的均值 μ \mu μ 以及协方差矩阵 Σ \Sigma Σ.
  我们的目的自然还是选择合适的参数,使得一个样本的分类尽可能准确,那么衡量准确性的标准是什么呢?
——最大似然估计。

最大似然估计

最大似然估计的值可表示为:
L ( μ , Σ ) = ∏ i = 1 n f μ , Σ ( x i ) L(\mu, \Sigma)=\prod_{i=1}^nf_{\mu, \Sigma}\left(x_i\right) L(μ,Σ)=i=1nfμ,Σ(xi)其中 f μ , Σ ( x i ) f_{\mu, \Sigma}\left(x_i\right) fμ,Σ(xi)表示将第 i i i 个训练样本带入高斯概率密度函数得出的概率。
之所以可以直接使用概率密度函数作为概率函数直接计算,是因为 x i x_i xi 为单个点,而高斯分布在单个点的概率就等于其概率密度函数在此点的值
因此我们便有了目标函数:
L ( μ , Σ ) = f μ , Σ ( x 1 ) f μ , Σ ( x 2 ) f μ , Σ ( x 3 ) … f μ , Σ ( x 79 ) μ ∗ , Σ ∗ = arg ⁡ max ⁡ μ , Σ L ( μ , Σ ) \begin{aligned} L(\mu, \Sigma)=& f_{\mu, \Sigma}\left(x^{1}\right) f_{\mu, \Sigma}\left(x^{2}\right) f_{\mu, \Sigma}\left(x^{3}\right) \ldots f_{\mu, \Sigma}\left(x^{79}\right) \\ \mu^{*}, \Sigma^{*}=& \arg \max _{\mu, \Sigma} L(\mu, \Sigma) \end{aligned} L(μ,Σ)=μ,Σ=fμ,Σ(x1)fμ,Σ(x2)fμ,Σ(x3)fμ,Σ(x79)argμ,ΣmaxL(μ,Σ)同样利用求偏微分的方法,可得到使目标函数取最大值的 μ \mu μ Σ \Sigma Σ
μ ∗ = 1 n ∑ i = 1 n x i \mu^{*}=\frac{1}{n} \sum_{i=1}^{n} x_i μ=n1i=1nxi Σ ∗ = 1 n ∑ i = 1 n ( x i − μ ∗ ) ( x i − μ ∗ ) T \Sigma^{*}=\frac{1}{n} \sum_{i=1}^{n}\left(x_{i}-\mu^{*}\right)\left(x_{i}-\mu^{*}\right)^{T} Σ=n1i=1n(xiμ)(xiμ)T推导(以 u u u为例, Σ \Sigma Σ同理)
在这里插入图片描述
有了这两个参数,便可以直接求得样本 x x x 属于某一类别的概率了。
对于李宏毅老师给的例子,如果对两个类别使用相同的协方差矩阵 Σ \Sigma Σ,而 μ \mu μ 不同,效果会更好:
在这里插入图片描述
此时的 μ ∗ \mu^{*} μ 求解的公式不变(只是对不同类别的数据做相应调整), Σ \Sigma Σ则变为两种样本各自 Σ \Sigma Σ的加权:
在这里插入图片描述


四、sigmoid函数以及分类概率直接求解

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值