机器学习——linear regression与linear classification
上一篇博客介绍了线性回归模型,但是不知道大家是否有这样的感觉:它与之前的PLA算法似乎有很多类似之处。 这两个算法都在使用线性的方法,也就是它们都是通过来计算出,只不过PLA算法通过来判断第n个样本的分类,而线性回归直接使用来作为它的预测值。
线性回归中,的值的范围是整个实数,从另一方面想,线性classification的取值只有+1,-1两个取值,这两个值当然也是实数,我们是否能将线性回归算法用作于线性分类中呢?
要思考这个问题,首先要决定如何将线性回归用于线性分类:对样本集利用线性回归来进行学习,得到,然后通过(其中)来对该样本进行分类。与PLA的区别是PLA一直在尝试各种不同的,而线性回归直接得到一个自己认为最好的。但是实际上它们的Hypothesis都是一样的。
这个算法是否可行,需要来检查它的泛化能力,也就是它的是否像PLA算法一样有个上界。首先,我们观察两个算法对于错误的衡量有什么区别(注:以下错误都是单个样本的错误):
| category | |
|---|---|
| linear classification(PLA) | |
| linear regression | |
| linear regression to classification |
在上面的表格中,我加了一行,也就是利用线性回归算法来进行线性分类时候的,这意味着它们的是一样的(实际上代表的应该是最终的预测值,这里正确的写法应该是,此处只为了方便区分PLA)。
如果画出y = -1 与 y = +1 时候的曲线图,我们可以清晰地观察到,线性回归得到的错误永远是大于利用线性回归进行分类的错误的:
y = +1时: 
y = -1时: 
而通过之前vc bound那一节我们可以知道:
也就可以得到:
这意味着,只要linear regression的做的足够好,那么使用线性回归来做线性分类,往往也能取到比较好的效果。
实际中,我们也可以使用线性回归与PLA算法结合,先通过线性回归得到W,然后因为给了PLA或者POCKET算法一个好的初始点,它能更快得到最后好的结果。