线性回归原理小结
Posted 郑兴鹏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性回归原理小结相关的知识,希望对你有一定的参考价值。
线性回归可以说是机器学习中最基本的问题类型了,这里就对线性回归的原理和算法做一个小结。
1. 线性回归的模型函数和损失函数
线性回归遇到的问题一般是这样的。我们有m个样本,每个样本对应于n维特征和一个结果输出,如下:
(x(0)1,x(0)2,...x(0)n,y0),(x(1)1,x(1)2,...x(1)n,y1),...(x(m)1,x(m)2,...x(m)n,yn)(x1(0),x2(0),...xn(0),y0),(x1(1),x2(1),...xn(1),y1),...(x1(m),x2(m),...xn(m),yn)
我们的问题是,对于一个新的(x(x)1,x(x)2,...x(x)n(x1(x),x2(x),...xn(x), 他所对应的yxyx是多少呢? 如果这个问题里面的y是连续的,则是一个回归问题,否则是一个分类问题。
对于n维特征的样本数据,如果我们决定使用线性回归,那么对应的模型是这样的:
hθ(x1,x2,...xn)=θ0+θ1x1+...+θnxnhθ(x1,x2,...xn)=θ0+θ1x1+...+θnxn, 其中θiθi (i = 0,1,2... n)为模型参数,xixi (i = 0,1,2... n)为每个样本的n个特征值。这个表示可以简化,我们增加一个特征x0=1x0=1 ,这样hθ(x0,x1,...xn)=∑i=0nθixihθ(x0,x1,...xn)=∑i=0nθixi。
进一步用矩阵形式表达更加简洁如下:
hθ(X)=Xθhθ(X)=Xθ
其中, 假设函数hθ(X)hθ(X)为mx1的向量,θθ为nx1的向量,里面有n个代数法的模型参数。XX为mxn维的矩阵。m代表样本的个数,n代表样本的特征数。
得到了模型,我们需要求出需要的损失函数,一般线性回归我们用均方误差作为损失函数。损失函数的代数法表示如下:
J(θ0,θ1...,θn)=∑i=0m(hθ(x0,x1,...xn)−yi)2J(θ0,θ1...,θn)=∑i=0m(hθ(x0,x1,...xn)−yi)2
进一步用矩阵形式表达损失函数:
J(θ)=12(Xθ−Y)T(Xθ−Y)J(θ)=12(Xθ−Y)T(Xθ−Y)
由于矩阵法表达比较的简洁,后面我们将统一采用矩阵方式表达模型函数和损失函数。
2. 线性回归的算法
对于线性回归的损失函数J(θ)=12(Xθ−Y)T(Xθ−Y)J(θ)=12(Xθ−Y)T(Xθ−Y),我们常用的有两种方法来求损失函数最小化时候的θθ参数:一种是梯度下降法,一种是最小二乘法。由于已经在其它篇中单独介绍了梯度下降法和最小二乘法,可以点链接到对应的文章链接去阅读。
如果采用梯度下降法,则θθ的迭代公式是这样的:
θ=θ−αXT(Xθ−Y)θ=θ−αXT(Xθ−Y)
通过若干次迭代后,我们可以得到最终的θθ的结果
如果采用最小二乘法,则θθ的结果公式如下:
θ=(XTX)−1XTYθ=(XTX)−1XTY
当然线性回归,还有其他的常用算法,比如牛顿法和拟牛顿法,这里不详细描述。
3. 线性回归的推广:多项式回归
回到我们开始的线性模型,hθ(x1,x2,...xn)=θ0+θ1x1+...+θnxnhθ(x1,x2,...xn)=θ0+θ1x1+...+θnxn, 如果这里不仅仅是x的一次方,比如增加二次方,那么模型就变成了多项式回归。这里写一个只有两个特征的p次方多项式回归的模型:
hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x21+θ4x22+θ5x1x2hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x12+θ4x22+θ5x1x2
我们令x0=1,x1=x1,x2=x2,x3=x21,x4=x22,x5=x1x2x0=1,x1=x1,x2=x2,x3=x12,x4=x22,x5=x1x2 ,这样我们就得到了下式:
hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x3+θ4x4+θ5x5hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x3+θ4x4+θ5x5
可以发现,我们又重新回到了线性回归,这是一个五元线性回归,可以用线性回归的方法来完成算法。对于每个二元样本特征逻辑回归原理小结