机器学习入门系列05,Classification: Probabilistic Generative Model(分类:概率生成模型)

Posted yofer张耀琦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习入门系列05,Classification: Probabilistic Generative Model(分类:概率生成模型)相关的知识,希望对你有一定的参考价值。

Gitbook整理地址:

Classification 分类

分类要找一个function,输入就是对象 x ,输出是这个对象属于n个类别的哪一个。

比如信用评分

  • 输入:收入,储蓄,行业,年龄,金融史…
  • 输出:结果或者拒绝贷款

比如医疗诊断

  • 输入:当前症状,年龄,性别,医疗史…
  • 输出:患了哪种疾病

比如手写文字辨识

又是神奇宝贝举例

分类神奇宝贝

神奇宝贝有很多的属性,比如电,火,水。要做的就是一个分类的问题:需要找到一个function,输入一只神奇宝贝,输出它是什么属性。

将神奇宝贝数值化

比如皮卡丘

  • Total:整体强度,大概的表述神奇宝贝有多强,比如皮卡丘是320.
  • HP:生命值,比如皮卡丘35
  • Attack:攻击力,比如皮卡丘55
  • Defense:防御力,比如皮卡丘40
  • SP Atk:特殊攻击力,比如皮卡丘50
  • SP Def:特殊防御力,比如皮卡丘50
  • Speed:速度,比如皮卡丘90

所以一只神奇宝贝可以用一个向量来表示,上述7个数字组成的向量。

需要预测是因为在战斗的时候会有属性相克,下面给了张表,只需要知道,战斗的时候遇到对面神奇宝贝的属性己方不知道的情况,会吃亏,所以需要预测它的属性。

如何分类?

当作回归问题处理?

假设还不了解怎么做,但之前已经学过了regression。就把分类当作回归硬解。举一个二分类的例子:

假设输入x 属于类别1,或者类别2,把这个当作回归问题:类别1就当作target是1,类别2就当作target是-1。训进行训练:因为是个数值,如果数值比较接近1,就当作类别1,如果数值接近-1,就当做类别2。这样做遇到什么问题?

左边绿色的线是分界线,绿色线左边红色点就是-1的,绿色线右边蓝色点就是1的。但是如果训练集有很多的距离远大于1的点,比如有图右下角所示,这样用回归的方式硬训练可能会得到紫色的这条。直观上就是将绿色的线偏移一点到紫色的时候,就能让右下角的那部分的值不是那么大了。但实际是绿色的才是比较好的,用回归硬训练并不会得到好结果。此时可以得出用回归的方式定义,对于分类问题来说是不适用的。(Penalize to the examples that are “too correct” …)

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

Ideal Alternatives(理想替代品)

先看二分类,将function中内嵌一个函数 g(x) ,如果大于0,就认识是类别1,否则认为是类别2。损失函数的定义就是,如果选中某个funciton f ,在训练集上预测错误的次数。当然希望错误次数越小越好。

但是这样的损失函数没办法解,这种定义没办法微分。这是有方法的,比如Perceptron(感知机),SVM,这里先不讲这些。

盒子抽球

假设两个盒子,各装了5个球,还得知随机抽一个球,抽到的是盒子1的球的概率是三分之二,是盒子2的球的概率是三分之一。从盒子中蓝色球和绿色球的分配可以得到:在盒子1中随机抽一个球,是蓝色的概率为五分之四,绿的的概率为五分之一,同理得到盒子2的信息。

现在求随机从两个盒子中抽一个球,抽到的是盒子1中蓝色球的概率是多少?(高中数学得:)

P(B1|Blue)=P(Blue|B1)P(B1)P(Blue|B1)P(B1)+P(Blue|B2)P(B2)

抽球的概率和分类有什么关系?

将上面两个盒子换成两个类别

同理知道红色方框的值,就可以计算出给一个x,它是属于哪个类型的, P(C1|x) P(C2x) ,谁大就属于谁。接下来就需要从训练集中估测红色方框中的值。

这一套想法叫做 Generative Model。因为有了这个model,就可以生成一个x,可以计算某个x出现的几率,知道了x的分布,就可以自己产生x。

P(C1|x) 是由贝叶斯(bayes)公式得到的;P(x)是由全概率公式得到的,详情见《概率论与数理统计,浙江大学,第一章》。

Prior 先验

先考虑简单的二分类,水属性或者一般属性,通过训练集的数据可以计算出 P(C1) P(C2)

下面想计算 P(x|C1)

也就是在水系的神奇宝贝中随机选一只,是海龟的概率。下面将训练集中79个水系的神奇宝贝,属性Defense 和 SP Defense进行可视化

这里假设这79点是从高斯分布(Gaussian distribution)中得到的,现在需要从这79个点找出符合的那个高斯分布。

高斯分布

下面简单说一下高斯分布:

简单点可以把高斯分布当作一个function,输入就是一个向量 x ,输出就是选中 x的概率(实际上高斯分布不等于概率,只是和概率成正比,这里简单说成概率)。function由期望 μ 和协方差矩阵 Σ 决定。上图的例子是说同样的 Σ ,不同的 μ ,概率分布的最高点的位置是不同的。下图的例子是同样的 μ ,不同的 Σ ,概率分布的最高点是一样的,但是离散度是不一样的。

假设通过79个点估测出了期望 μ 和协方差矩阵 Σ 。期望是图中的黄色点,协方差矩阵是红色的范围。现在给一个不在79个点之内的新点,用刚才估测出的期望和协方差矩阵写出高斯分布的function fμ,Σ(x) ,然后把x带进去,计算出被挑选出来的概率

Maximum Likelihood(最大似然估计)

首先对于这79个点,任意期望和协方差矩阵构成的高斯分布,都可以生成这些点。当然,像图中左边的高斯分布生成这些点,比右边高斯分布生成这些点的几率要大。那给一个 μ Σ ,它生成这79个点的概率为图中的 L(μ,Σ) L(μ,Σ) 也称为样本的似然函数。

将使得 L(μ,Σ) 最大的 (μ,Σ) 记做 (μ,Σ) (μ,Σ) 就是所有 (μ,Σ) Maximum Likelihood(最大似然估计)

这些解法很直接,直接对 L(μ,Σ) 求两个偏微分,求偏微分是0的点。

最大似然估计更多详情参看《概率论与数理统计,浙江大学,第七章》

应用最大似然估计

算出之前水属性和一般属性高斯分布的期望和协方差矩阵的最大似然估计值。

开始分类

上图看出我们已经得到了需要计算的值,可以进行分类了。

左上角的图中蓝色点是水属性的神奇宝贝,红色点是一般属性的神奇宝贝,图中的颜色:越偏向红色代表是水属性的可能性越高,越偏向蓝色代表是水属性的可能性越低。

右上角在训练集上进行分类的结果,红色就是 P(机器学习- 吴恩达Andrew Ng - week3-1 Classification

机器学习-入门笔记

机器学习与数据挖掘系列算法之--knn的python实现

机器学习与数据挖掘系列算法之--knn的python实现

微软Microsoft Azure 机器学习工作室的案例之Image Classification using DenseNet

机器学习入门 05 —— Pandas使用