机器学习基石HOW部分(3)
标签:机器学习基石
第十一章
binary classification via (logistic) regression; multiclass via OVA/OVO decomposition
所有的回归算法,经过一些修改,就可以用来做分类。但是分类算法无论怎么改都不能做回归。
前面的章节介绍了三种线性模型,PLA、Linear Regression与Logistic Regression。之所以称他们是线性模型,是因为这三种分类模型的方程中,都含有一个相同的部分,该部分是各个特征的一个线性组合,也可以称这个部分叫做线性评分方程:
s=wTx Linear Classification模型:取s的符号作为结果输出,使用0/1 error作为误差衡量方式,但它的cost function,也就是 Ein(w) 是一个离散的方程,并且该方程的最优化是一个NP-hard问题(简单说就是非常难解的问题)。Linear Regression模型:直接输出评分方程,使用平方误差square error作为误差衡量方式,好处是其 Ein(w) 是一个凸二次曲线,非常方便求最优解(可通过矩阵运算一次得到结果)。Logistic Regression模型:输出的是评分方程经过sigmoid的结果,使用cross-entropy作为误差衡量方式,其 Ein(w) 是一个凸函数,可以使用gradient descent的方式求最佳解。
Linear Regression和Logistic Regression的输出是一个实数,而不是一个Binary的值,他们能用来解分类问题吗?
当然可以,就像在最前面说的那样,回归模型可以用来做分类。只要定一个阈值,高于阈值的输出+1,低于阈值的输出-1就好。既然Linear Regression和Logistic Regression都可以用来解分类问题,并且在最优化上,他们都比Linear Classification简单许多,我们能否使用这两个模型取代Linear Classification呢?
好,下面看看可不可以代替。
拿Linear Regression或Logistic Regression来替代Linear Classification
三个模型的区别在于误差的衡量,误差的衡量可以说是一个模型最重要的部分。不同的误差衡量可能会产生不同的g。
看看三种模型的误差衡量吧。
我们可以看到到三个模型的error function都有一个ys的部分,也叫做分类正确性分数 (classification correctness score)。其中s是模型对某个样本给出的分数,y是该样本的真实值。
既然叫做分类正确性分数,那就是正确性越高分数越高啦。
于是,我们将不择手段把分数提高。
当y=+1时,我们希望s越大越好,当y=−1时,我们希望s越小越好。
既然这三个error function都与ys有关,我们可以以ys为横坐标,err为纵坐标,把这三个函数画出来。
sqr (squre error)为Linear Regression的误差函数,ce (cross entropy)为Logistic Regression的误差函数。
errsqr 在ys较小的时候很大,但是,在ys较大的时候 errsqr 同样很大,这点不是很理想,因为我们希望ys大的时候cost要小,尽管如此,至少在 errsqr 小的时候, err0