Classification:Probabilistic Generative Model(概率生成模型)

分类问题

  • 输入数值化
  • How to do Classification
  • Solution:Generative model(生成模型)

分类问题就是输入找⼀个function,它的input是⼀个object,它的输出是这个object属于哪⼀个class
以宝可梦为例,已知宝可梦有18种属性,做⼀个宝可梦种类的分类器,找⼀个function的input是某⼀只宝可梦,output是这只宝可梦属于这18属性中的哪⼀个。

输入数值化

要想把⼀个东西当做function的input,就需要把它数值化,即用一组数字来描述一只宝可梦的特性(可以理解成各项属性的种族值)

How to do Classification

首先进行 Training data for Classification
把 Classification 的问题当做 Regression 的问题硬解,以二元分类为例,在 training 里 class 1 理解为目标是1,class 2 理解为目标是-1;在 testing 时,当结果接近1时归类为 class 1,当结果接近-1时归类为 class 2
Classification:Probabilistic Generative Model(概率生成模型)_第1张图片
如果把 Classification 的问题当做 Regression 的问题硬解,会有什么问题呢?
如下图,model是y = b + w1x1 + w2x2,input是两个feature:x1 和 x2 ;有两个class,蓝色class 1,红色class 2。如果是Regression,那么就希望蓝色class 1的宝可梦,input后的output越接近1越好;红色class 2的宝可梦,input后的output越接近-1越好。
理想的情况下图左边所示,绿色的线表示 b + w1x1 + w2x2 = 0 ,也就是class 1和class 2的分界线,这种情况下,值接近-1的宝可梦都集中在绿线的左上方,值接近1的宝可梦都集中在绿线的右下方,但是这样的现象只会出现在样本点比较集中地分布在output为-1和1的情况。
但如果像下图右侧所示,已知绿线为最好的那个model的分界线,如果要考虑右下角这些点的话,用绿线对应的model,它们做Regression的时候output会是远大于1的,所以这些output远大于1的点,它对于绿线对应的model来说是error。这组样本点通过Regression训练出来的model,会是紫色这条分界线对应的model,因为相对于绿线,它“减小”了由右下角这些点所带来的error。
总结:Regression定义model好坏的定义方式对classification来说是不适用的,两种方法目标不同
Classification:Probabilistic Generative Model(概率生成模型)_第2张图片
如果是多元分类问题,把class 1的target当做是1,class 2的target当做是2,class 3的target当做是3的做法是错误的,因为当你这样做的时候,就会被Regression认为class 1和class 2的关系是比较接近的,class 2和class 3的关系是比较接近的,而class 1和class 3的关系是比较疏远的;但是当这些class之间并没有什么特殊的关系的时候,这样的标签⽤Regression是没有办法得到好的结果的。

理想的方法如下图:
Classification:Probabilistic Generative Model(概率生成模型)_第3张图片

Solution:Generative model(生成模型)

假设我们考虑⼀个⼆元分类的问题,我们拿到⼀个input x,想要知道这个x属于class 1或class 2的概率,实际上就是⼀个贝叶斯公式,x属于class 1的概率就等于class 1自身发生的概率乘上在class 1里取出x这种颜色的球的概率除以在class 1和 class 2里取出x这种颜色的球的概率(后者是全概率公式)
Classification:Probabilistic Generative Model(概率生成模型)_第4张图片
后面这段的数学知识涉及的知识点太多了暂时接受不了,已在补充概率论知识,故略过…

本文图片来自李宏毅老师课程PPT,文字是对李宏毅老师上课内容的笔记或者原话复述,在此感谢李宏毅老师的教导。

你可能感兴趣的:(机器学习)