线性回归算法梳理
1. 机器学习的一些概念
监督式学习
监督式学习(Supervised learning),是机器学习的一种方法,可以由训练数据集中学到或建立一个模式(learning model),并依此模式推测新的实例。训练数据集是由输入物件(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。从训练数据集学习算法的过程可以被认为是监督学习的过程的教师。我们知道正确答案,算法迭代地对训练数据进行预测,并由教师纠正。当算法达到可接受的性能水平时,学习停止。
无监督的学习
无监督的学习(Unsupervised learning)也是机器学习的一种方法,没有给定事先标记过的训练示例,自动对输入的数据进行分类或分群。与监督式学习不同,无监督的学习没有正确的答案,也没有教师,算法由自己设计,来发现和呈现数据中的有趣结构。
泛化能力
泛化能力(generalization ability)是指机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。我们也叫作举一反三的能力,或者叫做学以致用的能力。
过拟合
我们训练一个机器学习算法,通过感性的告诉机器一个加上一个等于两个,之后算法通过自己的学习,推广计算多位数的加减法,多位数的加减法是无穷多个的,如果机器在不断的测试中都能够算对,那么我们认为机器已经总结出了加法的内部规律并且能够学以致用,如果说机器只会计算你给机器看过的比如2+2=4,而不会计算没有教过的5+7=12,那么我们认为机器只是死记硬背,并没有学以致用的能力,也就是说泛化能力非常的低,同时我们也把这种现象叫做这个算法过拟合(over-fitting)。过拟合通常可以理解为,模型的复杂度要高于实际的问题,所以就会导致模型死记硬背的记住,而没有理解背后的规律。就比如说人脑要比唐诗复杂得多,即使不理解内容,我们也能背下来,但是理解了内容和写法对于我们理解记忆其他唐诗有好处,如果死记硬背那么就仅仅记住了而已。过拟合图示如下
欠拟合
欠拟合(under-fitting)是和过拟合相对的现象,可以说是模型的复杂度较低,没法很好的学习到数据背后的规律。就好像开普勒在总结天体运行规律之前,他的老师第谷记录了很多的运行数据,但是都没法用数据去解释天体运行的规律并预测,这就是在天体运行数据上,人们一直处于欠拟合的状态,只知道记录过的过去是这样运行的,但是不知道道理是什么。欠拟合图示如下
交叉验证
交叉验证(Cross-validation),有的时候也称作循环估计(Rotation Estimation),是一种统计学上将数据样本切割成较小子集的实用方法,该理论是由Seymour Geisser提出的。
交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set),首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。
2. 线性回归的原理
理论模型
在统计学中,线性回归(linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。
给一个随机样本 ( Y i , X i 1 , . . . , X i p ) , i = 1 , . . . , n (Y_i,X_{i1},...,X_{ip}),i=1,...,n (Yi,Xi1,...,Xip),i=1,...,n ,一个线性回归模型假设回归子 Y i Y_i Yi和回归量 X i 1 , . . . , X i p X_{i1},...,X_{ip} Xi1,...,Xip之间的关系是除了 X X X的影响以外,还有其他的变量存在。我们加入一个误差项 ε i \varepsilon_i εi(也是一个随机变量)来捕获除了 X i 1 , . . . , X i p X_{i1},...,X_{ip} Xi1,...,Xip之外任何对 Y i Y_i Yi的影响。所以一个多变量线性回归模型表示为以下的形式:
Y i = β 0 + β 1 X i 1 + β 2 X i 2 + . . . + β p X i p + ε i , i = 1 , . . . , n Y_i=\beta_0+\beta_1X_{i1}+\beta_2X_{i2}+...+\beta_pX_{ip}+\varepsilon_i, \space\space\space\space i=1,...,n Yi=β0+β1Xi1+β2Xi2+...+βpXip+εi, i=1,...,n
其他的模型可能被认定成非线性模型。一个线性回归模型不需要是自变量的线性函数。线性在这里表示 Y i Y_i Yi的条件均值在参数 β \beta β 里是线性的。例如:模型 Y i = β 1 X i + β 2 X i 2 + ε i Y_i=\beta_1X_{i}+\beta_2X_{i}^2+\varepsilon_i Yi=β1Xi+β2Xi2+εi在 β 1 \beta_1 β1和 β 2 \beta_2 β2里是线性的,但在 X i 2 X_i^2 Xi2里是非线性的,它是 X i X_i Xi的非线性函数。
数据和估计
区分随机变量和这些变量的观测值是很重要的。通常来说,观测值或数据(以小写字母表记)包括了n个值 ( y i , x i , . . . , x i p ) , i = 1 , . . . , n (y_i,x_i,...,x_{ip}), \space i=1,...,n (yi,xi,...,xip), i=1,...,n
我们有 p+1个参数 β 0 , . . . , β p \beta_0,...,\beta_p β0,...,βp需要决定,为了估计这些参数,使用矩阵表记是很有用的。
Y = X β + ε Y=X\beta+\varepsilon