李宏毅 机器学习笔记-05 Classification

Classification 分类:概率生成模型

线性回归算法的output是一个数值,而分类算法的input依旧是features,但output是一个类别。
在这里插入图片描述
例如,

  • 在信用评估中,input:个人的收入,职业,年龄等,output:接受 or 拒绝 (二分类)
  • 在医疗诊断系统中,nput:现在的症状,年龄,性别等,output:哪种病(多分类)
  • 人脸识别,输入人脸的图像,判断出哪个人(超多分类)
  • 手写字识别,很好理解,输出一个汉字(超多分类)
    在这里插入图片描述
    今天依旧以“神奇宝贝”为例,需要找一个function:
  • 输入:一只神奇宝贝的feature(整体强度,生命值,攻击力,防御力,特殊攻击力,特殊防御力,速度等)
  • 输出:这只神奇宝贝的属性(电,火,水等)
    在这里插入图片描述
    首先将神奇宝贝的特性数值化:以比卡丘为例
  • Total:整体强度,大概的表述神奇宝贝有多强,比如皮卡丘是320
  • HP:生命值,35
  • Attack:攻击力,55
  • Defense:防御力,40
  • SP Atk:特殊攻击力,50
  • SP Def:特殊防御力,50
  • Speed:速度,90 ,数值大可以先攻击
  • 上述7个数字组成一个向量。

因为游戏中存在属性相克的问题,所以我们这个做的意义就是预测属性,抢占游戏优势。
在这里插入图片描述
我们先拿前400号的神奇宝贝作为训练数据,例如皮卡丘 ( x 1 , y ^ 1 ) (x^1,\hat{y}^1) (x1,y^1)电属性

我们还不知道分类算法是什么样,假如我们还是用回归来解决问题呢?

举一个二分类的例子,假设输入神奇宝贝的特征 x x x,判断属于类别1或者类别2,把这个当作回归问题。

  • Training:类别1,相当于target是 1;类别2,相当于target是 2。
  • Testing:回归问题输出是数值,靠近1为类别1,靠近-1为类别2。

在这里插入图片描述
假设我们的model是有两个feature: y = b + w 1 x 1 + w 2 x 2 y = b + w_1x_1 + w_2x_2 y=b+w1x1+w2x2

令其等于0得到左图中的绿色分界线,红叉为类别2,我们希望模型输出-1左右,小于0;蓝圈是类别1,希望输出在1左右,大于0。

但当我们看到右图时,在regression中我们希望蓝圈越接近1越好,所以绿线会故意顺时针旋转来压小error,得到紫线。此时我们可以看出用回归解决分类问题是不妥当的。

还有另外一个问题:比如多分类,类别1当作target1,类别2当作target2,类别3当作target3…如果这样做的话,就会认为类别2和类别3是比较接近的,认为它们是有某种关系的;认为类别1和类别2也是有某种关系的,比较接近的。但是实际上这种关系不存在,它们之间并不存在某种特殊的关系。这样是没有办法得到好的结果。
在这里插入图片描述

理想方案

在这里插入图片描述
以二分类为例,我们的function set中有一个内嵌函数 g ( x ) g(x) g(x),,大于就是分类1,反之分类2。

计算Loss的方法也很有趣,是分类错误的次数。之前我们求Loss最小值用的都是梯度下降法,但是这个式子没办法微分,我们之后会用SVM计算。这里引入一个概率模型。

概率模型实现

盒子拿球

从盒子中拿小球是我们中学就学过的统计学知识。

随机从两个盒子中抽一个球,抽到的是盒子1中蓝色球的概率,通过贝叶斯公式得到 4 5 \frac { 4 } { 5 } 54
在这里插入图片描述
由上边的例子可以知道,如果从训练数据中估计出如下红框的四个概率,就可以计算出给一个 x x x,它是属于哪个类别, P ( C 1 ∣ x ) P(C_1|x) P(C1x) P ( C 2 ∣ x ) P(C_ 2 | x) P(C2x),哪个类别的概率大就属于哪个。

这一套想法叫做生成模型(Generative Model)。

有了这个模型,就可以生成一个 x x x,可以通过全概率公式计算某个 x x x 出现的概率,知道了 x x x 的分布,就可以自己产生 x x x

拓展阅读:条件概率/全概率/贝叶斯公式

在这里插入图片描述

先验概率

在这里插入图片描述
还是简单的二分类为例,蓝色为水系,绿色一般系,通过训练集的数据可以计算出 P ( C 1 ) P(C_1) P(C1) P ( C 2 ) P(C_2) P(C2),如图所示:

  • 水系占比: P ( C 1 ) = 0.56 P(C_1) = 0.56 P(C1)=0.56
  • 普通系占比: P ( C 2 ) = 0.44 P(C_2) = 0.44 P(C2)=0.44

在这里插入图片描述
我们来计算一下原盖海龟是水系的概率。虽然我们知道他一定是水系的,但是每只神奇宝贝都用一个特征向量来表示

下面将训练集中79个水系的神奇宝贝,属性Defense和SP Defense进行可视化。在水系的神奇宝贝中随机选一只,是海龟的概率?
在这里插入图片描述
这里假设这79点是从高斯分布(Gaussian distribution)中采样的,现在需要从这79个点找出符合的那个高斯分布。

高斯分布

我们可以把高斯分布当作一个 function,输入就是一个向量 x x x,输出就是选中 x x x 的概率(实际上高斯分布不等于概率,只是和概率成正比,这里简单说成概率)。 function由期望 μ \mu μ 和协方差矩阵 ∑ \sum 决定。

  • 同样的 ∑ \sum ,不同的 μ \mu μ ,概率分布的最高点的位置是不同的。
  • 同样的 μ \mu μ,不同的 ∑ \sum ,概率分布的最高点是一样的,但是离散度是不一样的。
    在这里插入图片描述
    在这里插入图片描述
    假设我们从高斯分布中sample出这79个点,并计算出他们的 ∑ \sum μ \mu μ,写出高斯分布的 f u n c t i o n   f μ , Σ ( x ) function \ f_{μ,Σ}(x) function fμ,Σ(x)。将 x x x代入就可以求得被sample的几率。
    在这里插入图片描述

最大似然

在这里插入图片描述
任意期望和协方差矩阵构成的高斯分布,都可以生成这79个点。但左边的高斯分布生成这些点的几率比右边高斯分布大。

那给一个 μ \mu μ ∑ \sum ,它生成这79个点的概率为图中的 L ( μ , ∑ ) L(\mu,\sum) L(μ,)(样本的似然函数)。
在这里插入图片描述
使得 L ( μ , ∑ ) L(\mu,\sum) L(μ,)最大的参数记做 ( μ ∗ , ∑ ∗ ) (\mu^∗,\sum^∗) (μ,) ( μ ∗ , ∑ ∗ ) (\mu^∗,\sum^∗) (μ,)就是所有 L ( μ , ∑ ) L(\mu,\sum) L(μ,)的 Maximum Likelihood(最大似然)。将Likelihood求两次偏微分即可吃到*的值。

应用最大似然计算期望和协方差

分别计算水系和一般系的期望和协方差。
在这里插入图片描述
在这里插入图片描述
如果 P ( C 1 ∣ x ) > 0.5 P(C_1|x)>0.5 P(C1x)>0.5则为水系。我们已经得到了需要计算的值,可以进行分类了。
在这里插入图片描述
左上角的图中蓝点是水系神奇宝贝,红点是一般系的神奇宝贝,图中的颜色:越偏向红色代表是水系的可能性越高,越偏向蓝色代表是水系的可能性越低。

右上角是在训练集上进行分类的结果,红色就是 P ( C 1 ∣ x ) P(C_1|x) P(C1x) 大于0.5的部分,是属于类别1,相对蓝色属于类别2。右下角是放在测试集上进行分类的结果。结果在测试集上正确率只有 47% 。当然这里只处理了二维(两个属性)的情况,那在7维空间计算出最大释然估计值,此时 μ μ μ是7维向量, Σ Σ Σ是7维矩阵。得到结果也只有54% 的正确率,十分不理想。

优化模型

在这里插入图片描述
通常不会给每个高斯分布都计算出一套最大似然估计,协方差矩阵和输入的feature size的平方成正比,所以当feature很大的时候,协方差矩阵增长很快。协方差矩阵不同,model参数太多,造成Variance很大,容易Overfitting。为了有效减少参数,强迫这两个类别的高斯分布相同的协方差矩阵。
在这里插入图片描述
此时修改似然函数为 L ( μ 1 , μ 2 , Σ ) L(μ_1,μ_2,Σ) L(μ1,μ2,Σ) μ 1 , μ 2 μ_1,μ_2 μ1,μ2计算方法和上面相同( μ 1 μ_1 μ1 x 1 − 79 x^{1-79} x179的平均数);而 Σ Σ Σ是加权平均的结果。
在这里插入图片描述
右图新的结果,分类的boundary是线性的,所以也将这种分类叫做 linear model。如果考虑所有的属性,发现正确率提高到了73%。

将上述问题简化为前几个系列说过的机器学习三步走:
在这里插入图片描述
实际做的就是要找一个概率分布模型,可以最大化产生data的likelihood。

为什么是高斯分布?

可能选择其他分布也会问同样的问题。。。

有一种常见的假设
在这里插入图片描述
假设几率分布是相互独立的,所以可以将 P ( x ∣ C 1 ) P(x|C_1) P(xC1)拆分成乘积。每个产生的概率都符合一维的高斯分布。此时 P ( x ∣ C 1 ) P(x|C_1) P(xC1) 的高斯分布的协方差是对角型的(不是对角线的地方值都是0),这样就可以减少参数的量。但是试一下这种做法会坏掉。

二元分类通常不会用高斯分布,可以假设是符合 Bernoulli distribution(伯努利分布)。

假设所有的feature都是相互独立产生的,这种分类叫做 Naive Bayes Classifier(朴素贝叶斯分类器)

后验概率

P ( C 1 ∣ x ) P(C_1|x) P(C1x)整理,得到一个 σ ( z ) σ(z) σ(z),我们熟悉的Sigmoid function。

当z趋近于负无穷 σ ( z ) σ(z) σ(z)趋近于0;当z趋近于正无穷 σ ( z ) σ(z) σ(z)趋近于1。
在这里插入图片描述
我们算一下 z z z长什么样子。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
求得 z z z,然后:
在这里插入图片描述
通过这个化简过程我们知道为什么两个分布要取相同的协方差。

化简 z z z x x x的系数记做向量 w T w^T wT,后面3项结果都是标量,所以三个数字加起来记做 b b b。最后 P ( C 1 ∣ x ) = σ ( w ⋅ x + b ) P(C_1|x)=σ(w⋅x+b) P(C1x)=σ(wx+b)。从这个式子也可以看出当共用协方差矩阵的时候,为什么分界线是线性的。

在Generative model,我们找到这五个参数的值代入式子就可求得几率。

我们可不可以直接找出 w w w b b b呢?

参考:Datawhale,P10 概率分类模型

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值