机器学习——linear regression与linear classification

上一篇博客介绍了线性回归模型,但是不知道大家是否有这样的感觉:它与之前的PLA算法似乎有很多类似之处。 这两个算法都在使用线性的方法,也就是它们都是通过\(y_n = W^TX_n\)来计算出\(y_n\),只不过PLA算法通过\(y_n\)来判断第n个样本的分类,而线性回归直接使用\(y_n\)来作为它的预测值。

线性回归中,\(y\)的值的范围是整个实数,从另一方面想,线性classification的\(y\)取值只有+1,-1两个取值,这两个值当然也是实数,我们是否能将线性回归算法用作于线性分类中呢?

要思考这个问题,首先要决定如何将线性回归用于线性分类:对样本集\(\{X_n,Y_n\}\)利用线性回归来进行学习,得到\(W\),然后通过\(sign(y'_n)\)(其中\(y'_n = W^TX_n\))来对该样本进行分类。与PLA的区别是PLA一直在尝试各种不同的\(W\),而线性回归直接得到一个自己认为最好的\(W\)。但是实际上它们的Hypothesis都是一样的。

这个算法是否可行,需要来检查它的泛化能力,也就是它的\(E_{out}\)是否像PLA算法一样有个上界。首先,我们观察两个算法对于错误的衡量有什么区别(注:以下错误都是单个样本的错误):

category \(E_{in}\)
linear classification(PLA) \(y \neq y'\)
linear regression \((y - y')^2\)
linear regression to classification \(y \neq sign(y')\)

在上面的表格中,我加了一行,也就是利用线性回归算法来进行线性分类时候的\(E_{in}\),这意味着它们的\(y'\)是一样的(实际上\(y'\)代表的应该是最终的预测值,这里正确的写法应该是\(h(X)\),此处只为了方便区分PLA)。

如果画出y = -1 与 y = +1 时候的曲线图,我们可以清晰地观察到,线性回归得到的错误永远是大于利用线性回归进行分类的错误的:

y = +1时:

y = -1时:

而通过之前vc bound那一节我们可以知道:

\[E_{out} \leq E_{in}(classification)+\sqrt {...}\]

也就可以得到:

\[E_{out} \leq E_{in}(regression) +\sqrt {...}\]

这意味着,只要linear regression的\(E_{in}\)做的足够好,那么使用线性回归来做线性分类,往往也能取到比较好的效果。

实际中,我们也可以使用线性回归与PLA算法结合,先通过线性回归得到W,然后因为给了PLA或者POCKET算法一个好的初始点,它能更快得到最后好的结果。