李宏毅机器学习之Classification

一、例子

1.1 分类概念

  • 分类要找一个function函数输入对象x特征,输出是该对象属于n个类别中是属于哪一个。
  • 例子
    • 信用评分(二分类问题)
    • 医疗诊断(多分类问题)
    • 手写文字识别(多分类问题)

1.2 神奇宝贝的属性(水、电、草)预测

  • 神奇宝贝有很多的属性,比如电,火,水。要做的就是一个分类的问题:需要找到一个 functionfunction。
    • 输入:一只神奇宝贝的特征(整体强度,生命值,攻击力,防御力,特殊攻击力,特殊防御力,速度等)
    • 输出:属于哪一种类型的神奇宝贝
  • 首先需要将神奇宝贝数值化:以皮卡丘为例
    • Total:整体强度,大概的表述神奇宝贝有多强,比如皮卡丘是320
    • HP:生命值,比如皮卡丘35
    • Attack:攻击力,比如皮卡丘55
    • Defense:防御力,比如皮卡丘40
    • SP Atk:特殊攻击力,比如皮卡丘50
    • SP Def:特殊防御力,比如皮卡丘50
    • Speed:速度,比如皮卡丘90
  • 所以一只 《神奇宝贝》可以用一个向量来表示,上述7个数字组成的向量。

二、回归模型VS概率模型

  • 我们收集当前神奇宝贝的特征数据和属性数据,例如:皮卡丘(x^1,\hat{y}^1)电属性,杰尼龟(x^2,\hat{y}^2)水属性, ... 

2.1 回归模型

  • 假设还不了解怎么做,但之前已经学过了 regressionregression。就把分类当作回归硬解。 举一个二分类的例子,假设输入神奇宝贝的特征 xx,判断属于类别1或者类别2,把这个当作回归问题。
    • 类别1:相当于target是1。
    • 类别2:相当于target是−1。
  • 然后训练模型:因为是个数值,如果数值比较接近1,就当作类别1,如果数值接近-1,就当作类别2,可以得到如下结果:
    • 左图:绿色是分界线,红叉就是Class2的类别,蓝圈就是Class1的类别
    • 右图:紫色是分界线,红色叉叉就是 Class2 的类别,蓝色圈圈就是 Class1 的类别。训练集添加有很多的距离远大于1的数据后,分界线从绿色偏移到紫色
  • 存在的问题
    • 这样用回归的方式硬训练可能会得到紫线,直观上就是将绿色的线偏移一点到紫色的时候,就能让右下角的那部分的值不是那么大了。但实际是绿色的才是比较好的,用回归硬训练并不会得到好结果。此时可以得出用回归的方式定义,对于分类问题来说是不适用的。
    • 还有另外一个问题:比如多分类,类别1当作target1,类别2当作target2,类别3当作target3…如果这样做的话,就会认为类别2和类别3是比较接近的,认为它们是有某种关系的;认为类别1和类别2也是有某种关系的,比较接近的。但是实际上这种关系不存在,它们之间并不存在某种特殊的关系。这样是没有办法得到好的结果。

2.2 其他模型(理想代替品)

  • 先看二分类,将 function中内嵌一个函数 g(x),如果大于0,就认识是类别1,否则认为是类别2。损失函数的定义就是,如果选中某个funciton f(x),在训练集上预测错误的次数。当然希望错误次数越小越好。但是这样的损失函数没办法解,这种定义没办法微分。这是有方法的,比如Perceptron(感知机),SVM等。下面介绍了一种概率模型。

三、概率模型实现原理

3.1 盒子抽球概率举例

  • 说明:假设两个盒子,各装了5个球,还得知随机抽一个球,抽到的是盒子1的球的概率是 2/3,是盒子2的球的概率是1/3。从盒子中蓝色球和绿色球的分配可以得到:
    • 在盒子1中随机抽一个球,是蓝色的概率为4/5,绿的的概率为1/5
    • 在盒子2中随机抽一个球,是蓝色的概率为2/5,绿的的概率为3/5

  • 现在随机从两个盒子种抽一个球,抽到的是盒子1种蓝色球的概率是:P(B_1|Blue) = \frac{P(Blue|B_1)P(B_1)}{P(Blue|B_1)P(B_1)+P(Blue|B_2)P(B_2)}=\frac{4}{5}

3.2 概率与分类的关系

  • 将上面两个盒子换成两个类别:
  • 知道红色方框的值,就可以计算出给一个x,它是属于哪个类型的,P(C_1|x)P(C_2|x),哪个列别的概率大就属于哪个类别。接下来就需要从训练集中估测红色方框中的值。这一套想法叫做生成模型(Generative Model)。因为有了这个模型,就可以生成一个x,可以计算某个x出现的概率,知道了x的分布,就可以产生自己的x。

3.2.1 先验概率

  • 先考虑简单的二分类,水属性或者一般属性,通过训练集的数据可以计算出P(C_1)P(C_2),如下图:
    • 水属性占比:P(C_1) = 0.56
    • 普通属性占比:P(C_2)=0.44

  • 下面我们要计算海龟是水属性的概率,我们向模型中输入的是一个特征向量,也就是在水洗神奇宝贝中随机选一只,是海龟的概率。下面将训练集中的79个水系的神奇宝贝,属性DefenseSP Defense进行可视化,这里我们可以假设这79个点是从高斯分布(Gussian distribution)中采样的,现在需要从这79个点中找出符合的那个高斯分布。

3.2.2 高斯分布

  • 我们可以把高斯分布看作一个函数,输入就是一个向量x,输出就是选中x的概率(实际上高斯分布不等于概率,只是和概率成正比)。函数是由期望\mu和协方差矩阵\Sigma决定。下图先后说明了同样的\Sigma,不同的\mu,概率分布的最高点的位置是不同的;同样的\mu,不同的\Sigma,概率分布的最高点是一样的,但是离散程度不同。

  • 我们可以假设通过79个点估测出了期望\mu和协方差矩阵\Sigma。期望是图中的黄色点,协方差举证是红色的范围。现在给一个不在79个点之内的新点,用刚才估测出的期望和协方差矩阵写出高斯分布的函数f_{\mu ,\Sigma }(x),然后把x代入,计算被挑选出来的概率。

3.2.3 最大似然估计

  • 首先对于这79个点,任意期望和协方差矩阵构成的高斯分布,都可以生成这些点。但是他们产生这些点的可能性不同。给定一个\mu\Sigma,他们生成点的概率为L(\mu ,\Sigma )L(\mu ,\Sigma )也称为样本的似然函数。将使得L(\mu ,\Sigma )最大的L(\mu ,\Sigma )记做(\mu ^*, \Sigma ^*)(\mu ^*, \Sigma ^*)就是所有L(\mu ,\Sigma )的Maximum Likelihood(最大似然估计)

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

四、分类模型

4.1 分类

  • 我们得到需要计算的值,就可以进行分类了,左上角的图中蓝色点是水属性的神奇宝贝,红色点是一般属性的神奇宝贝,图中的颜色:越偏向红色代表是水属性的可能性越高,越偏向蓝色代表是水属性的可能性越低。右上角在训练集上进行分类的结果,红色就是 P(C_1|x)大于0.5的部分,是属于类别1,相对蓝色属于类别2。右下角是放在测试集上进行分类的结果。结果是测试集上正确率只有 47% 。当然这里只处理了二维(两个属性)的情况,那在7维空间计算出最大释然估计值,此时μ是7维向量,Σ是7维矩阵。得到结果也只有54% 的正确率。

4.2 模型优化

  • 通常来说,不会给每个高斯分布都计算出一套不同的最大似然估计,协方差矩阵是和输入feature大小的平方成正比,所以当feature很大的时候,协方差矩阵是可以增长很快的。此时考虑到model参数过多,容易Overfitting,为了有效减少参数,给描述这两个类别的高斯分布相同的协方差矩阵。

  • 此时修改似然函数为L(\mu ^1, \mu ^2, \Sigma )\mu ^1, \mu ^2计算方法和之前相似。分别加起来取平均值即可。但是\Sigma的计算有所不同,为每个\Sigma的加权和。

五、概率模型-建模三部曲

  • 上述问题我们可以简化为三步

  • 实际我们要做的就是找到一个概率分布模型,可以最大化的产生data的likelihood。

六、后验概率

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值