这个目录不重要
Classification
概念
分类就是输入一个object,输出这个object属于哪一个class
还是以神奇宝贝为例,输入一个object(皮卡丘、杰尼龟或者妙蛙种子),输出它们是哪一种属性。
输入数值化
要把一个东西当作object,必须把它数值化,也就是特征数值化
以皮卡丘为例
回归模型 vs 概率模型
我们需要收集一些数据,例如:皮卡丘 ( x 1 , y ^ 1 ) (x^1,\hat{y}^1) (x1,y^1)为雷属性,杰尼龟 ( x 2 , y ^ 2 ) (x^2,\hat{y}^2) (x2,y^2)为水属性,妙蛙种子 ( x 3 , y ^ 3 ) (x^3,\hat{y}^3) (x3,y^3)为草属性
回归模型
可以把分类当作回归硬解。 举一个二分类的例子,假设输入神奇宝贝的特征 x x x,判断属于类别1或者类别2,把这个当作回归问题。
- 类别1:相当于target是1
- 类别2:相当于target是-1
然后训练模型:因为是个数值,如果数值比较接近1,就当作类别1,如果数值接近-1,就当做类别2。这样做会遇到什么问题?
左图:绿色是分界线,红色就是class2,蓝色就是class1
右图:紫色是分界线,红色依旧是class2,蓝色依旧是class1
训练集如果添加很多error的数据,分界线就会从绿色偏移到紫色
这样用回归的方式硬训练可能会得到紫色的这条。直观上就是将绿色的线偏移一点到紫色的时候,就能让右下角的那部分的值不是那么大了。但实际是绿色的才是比较好的,用回归硬训练并不会得到好结果。此时可以得出用回归的方式定义,对于分类问题来说是不适用的。
还有另外一个问题:比如多分类,类别1当作target1,类别2当作target2,类别3当作target3…如果这样做的话,就会认为类别2和类别3是比较接近的,认为它们是有某种关系的;认为类别1和类别2也是有某种关系的,比较接近的。但是实际上这种关系不存在,它们之间并不存在某种特殊的关系。这样是没有办法得到好的结果。
其他模型
先看二分类问题,是将 f u n c t i o n function function中内嵌一个函数 g ( x ) g(x) g(x),如果大于0就识别为class1,否则就是class2。损失函数的定义为,在训练集上预测错误的次数。
但是这样的loss function没办法微分,可以使用SVM,但现在先介绍一种概率模型
概率模型
举例:盒子抽球
假设有两个盒子各装5个球,要随机抽一个球,从盒子1里面抽一个球的概率是 2 / 3 2/3 2/3,从盒子2里面抽一个球的概率是 1 / 3 1/3 1/3
从盒子中蓝、绿色球的分配可以得到
- 在盒子1中抽一个球,为蓝色的概率是 4 / 5 4/5 4/5,为绿色的概率是 1 / 5 1/5 1/5
- 在盒子2中抽一个球,为蓝色的概率是 2 / 5 2/5 2/5,为绿色的概率是 3 / 5 3/5 3/5
现在,从两个盒子中随机取出一个球,抽到的是属于盒子1中的蓝色球的概率是多少?
P ( B 1 ∣ B l u e ) = P ( B l u e ∣ B 1 ) P ( B 1 ) P ( B l u e ∣ B 1 ) P ( B 1