线性回归算法应该是大多数人机器学习之路上的第一站,因为线性回归算法原理简单清晰,但却囊括了拟合、优化等等经典的机器学习思想。去年毕业时参加求职面试就被要求介绍线性回归算法,但由于当初过于追求神经网络、SVN、无监督学习等更加高大尚的算法,反而忽略了线性回归这些基础算法,当时给出的答案实在是差强人意。
这一篇关于线性回归的总结我也犹豫过要不要写,如果你看了我上两篇关于最小二乘和梯度下降算法介绍的博客,你就会发现,关于最小二乘法和梯度下降算法的介绍都是以线性回归为例展开,所以,综合来说,之前两篇博文对一元线性回归还是多元线性回归算法都已经有了还算全面的总结,再写一篇关于线性回归的文章总感觉有些多余。不过,为了让我对机器学习的总结更加系统,还是决定专门总结一下。
2 什么是线性回归说到线性回归,我们得先说说回归与分类、线性与非线性这些概念的区别。
回归和分类都是有监督学习(机器学习分有监督学习和无监督学习)中的概念。从算法的目标或者作用上看,分类的目标就如同字面上的意思,就是分类,将数据分门别类,而且类别是有限的(数学上称为离散的)。但回归算法不同,回归算法的目标是预测,说详细些就是从已有数据和结果中获取规律,对其它数据的位置结果进行预测,预测结果的数量数无限的(数学上叫连续的)。举个例子我们可以根据楼房的建材、面积、用途将茅草房、普通住房、厂房等等有限的几类,这就是分类;另外,我们可以根据房屋面积、地段、装修等因素对楼房房价进行预测,预测结果有无限种可能,可能是10000元/平米,也能是10001.1元/平米——这就是回归的过程。
对于线性和非线性的解释,我至今还没有见到过一个让我觉得满意的数学定义,所以,我也从直观认识上说说我的看法。我们高中时学习函数就是从一元一次函数学起的,一元一次函数在数学上可以表示为:
\[f(x)={{\theta }_{0}}+{{\theta }_{1}}x\]