Machine Learning Series--Linear Regression

前言

最近看了李航老师的《统计学习方法》,还正在学习吴恩达老师的《机器学习》的课程(网易公开课上有,较老的版本)。自从看过《统计学习方法》之后,发现笔记不看其实学习效果并不好。因此想以电子版格式写下来记录,一方面加深自己的印象,一方面也是希望能够和大家交流。

此版本大致与吴恩达老师的《机器学习》课程一致,因为是结合他的课程以及我之前的《统计学习方法》笔记来写的这一系列文章。


以下观点均是本人在学习过程当中的总结,如有疑问或者问题,欢迎大家批评指正,本人万分感谢。

愿大家共同进步!


线性回归(Linear Regression)


At first, I wanna show what is linear regression?

线性回归的历史来源我也不知道,只是高中的时候大概就知道拟合这个概念,老师说一群散点,可以大致画出一条线来拟合他们,使得每个点与线上的值的残差平方和最小,也就是说是最小二乘方法来拟合散点了,这大概就是我们说的线性回归。

强调一下,这里并未区分线性回归和线性拟合,不够严谨,不知道这么表述是否合适,若有读者质疑此处,请在留言区不吝赐教,将不胜感激。

画张图:

图1 随机数据集

这个是随机生成的15个点,其对应数据格式为(x,y)。

import numpy as np
data= np.random.random((15,1))
label = np.random.random((15,1))

这样就随机生成了一组数据,如图1所示。
接下来我们就是要去拟合这些点,大致结果如下:


图2 线性回归

How do I get this result?

#使用线性回归拟合这些点
from sklearn import linear_model
from sklearn.metrics import mean_squared_error,r2_score
reg = linear_model.LinearRegression()
reg.fit(data,label)
y_pre = reg.predict(data)

这里我用了scikit-learn中的linear_model去拟合这些点,我们且不看效果如何,那么这里是怎么得到中间那条线的呢?
参照scikit-learn中linear_model中的官方文档中的介绍,我们可以知道,这里拟合采用的最小二乘算法。
也就是说,我们的目标函数如下:

最小二乘的目标函数

上述摘自scikit-learn官方文档。

So,Why should we minimize the residual sum of squares?
为什么是最小二乘呢?


为什么线性拟合要使用最小二乘?

这里参照吴恩达老师的课程当中的讲授,简要说一下。
我们进行线性回归(或者说线性拟合)时,我们往往认为因变量和自变量之间呈现某种线性关系,形象的说,如下所示:


线性关系

上述摘自scikit-learn官方文档。

艾玛,居然不能写公式,太累了,改CSDN了。
累觉不爱,会贴出CSDN博客的地址。

你可能感兴趣的:(Machine Learning Series--Linear Regression)