多元线性回归原理

例子先行

一元线性:拿房价预测来说,房价就只与一个特征size(feet^2)有关:

多元线性:

房子除了面积,还会有其他的特征:number of bedrooms;number of floors; age of home....,为了引入这些特征,有了多元线性回归,x1,x2,x3,x4为特征,y为预测的价格。

符号引入:

                n:特征的数量

                x^{(i)}:第i个训练样例

                x_j^{(i)}:第i个训练样例的第j个特征

可以得到模型函数:\small h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n

我们要假设x0为1,即(\small x_0^{(i)}=1),可以理解为我们增加了一个额外的第零个特征向量,因此我们的特征向量由原来的n个变为了n+1个,所以现在我们X的特征向量为:,n+1维向量,\small \theta=\begin{bmatrix} \theta_0\\ \theta_1\\ \theta_2\\ ...\\ \theta_n \end{bmatrix}的n+1维向量,则向量表示模型函数为:\small h_\theta(x)=\theta^Tx

\small \theta^T=\begin{bmatrix} \theta_0 &\theta_1 &... &\theta_n \end{bmatrix},   而\small x=\begin{bmatrix} x_0\\ x_1\\ x_2\\ ...\\ x_n \end{bmatrix},所以内积\small \theta^Tx=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n

定义代价函数:

如图将模型写成向量形式,\small \theta_0...\theta_n用向量\small \theta代替,代价函数\small J(\theta_{0}...\theta_n)用向量J(\small \theta)代替,梯度下降的代价函数\small J(\theta_{0}...\theta_n)也用向量J(\small \theta)代替

从0~n不断的update第j个特征的参数,即执行梯度下降的过程。下图是一元和多元的比较,

具体求导过程和一元的类似,如下是推理证明过程。

多元线性回归思路

经过简单的一元线性回归知识,可以了解知道,多元线性回归是将原来一元的x变成了x的向量,由y=b+a*x到了y=a0+a1*X1+a2*X2+...+an*Xn,含有多个特征。

得到一个直线(实际不是直线,有可能是面或者跟复杂的曲线(面))最大程度的拟合所有的点,

方程:,x向量(x1~xn)和y都是已知的,只需要求出\Theta即可,所求出来的\Theta也是一个向量,即求得了线性回归的模型。

先列举几个几个典型的模型:


● 最基本的单变量线性回归: 
形如h(x)=theta0+theta1*x1
● 多变量线性回归: 
形如h(x)=theta0+theta1*x1+theta2*x2+theta3*x3
● 多项式回归(Polynomial Regression): 
形如h(x)=theta0+theta1*x1+theta2*(x2^2)+theta3*(x3^3) 
或者h(x)=ttheta0+theta1*x1+theta2*sqr(x2) 
但是可以令x2=x2^2,x3=x3^3,于是又将其转化为了线性回归模型。虽然不能说多项式回归问题属于线性回归问题,但是一般我们就是这么做的。
● 所以最终通用表达式就是: 
这里写图片描述

          引自:https://blog.csdn.net/weixin_40014576/article/details/79918819#comments

原理思路:

由最小二乘法,多元线性回归的损失函数:和一元线性回归一样都是求\small \frac{1}{2m}\sum_{i=1}^{m}(y^{(i)}-\hat{y}^{(i)})^2的最小值,让预测结果和真实的结果的差值的平方 尽可能的小。

\Theta是个向量,x也是个向量,\Theta原来为列向量,让\Theta变为行向量,转置\Theta^{T}

\hat{y}^{(i)}做一个改变,在\Theta _{0}前面也乘以一个系数X_{0}^{(i)},为了不改变原式子,令X_{0}^{(i)}=1.

所以X^{(i)}=(X_{0}^{(i)},X_{1}^{(i)},X_{2}^{(i)},....,X_{n}^{(i)}),由此\hat{y}^{(i)}可以变成向量形式:\hat{y}^{(i)}=X^{(i)}\cdot \theta^T

推广到整个式子为:\hat{y}=X_b\cdot \theta^T,其中X_b\theta^T分别为(m,n+1)的矩阵和(n+1,1)的矩阵,

所得结果\hat{y}为 所有的预测值组成的向量 。根据矩阵乘法法则,最后得到的是一个(m,1)的矩阵。

我们的目标就是让代价函数最小:\small \frac{1}{2m}\sum_{i=1}^{m}(y^{(i)}-\hat{y}^{(i)})^2最小,变为向量形式为:\small \frac{1}{2m}\sum_{i=1}^{m}(y-\hat{y})^2,将\hat{y}=X_b\cdot \theta^T带入上式子得:

\small \frac{1}{2m}(y-X_b\cdot \theta)^{T}(y-X_b\cdot \theta),在目标函数中,对第一个(y -X_{b}*\theta) 进行了转置,这是为了方便使用矩阵的乘法;转置之后,第一个式子为(1,m)的行向量,第二个式子为(m,1)的列向量;所以最终结果为一个值。

最小二乘法求多元线性回归的参数

在学习模型的任务中,我们要做到的是让预测值尽量逼近真实值,做到误差最小,而均方误差就是表达这种误差的一种,所以我们要求解多元线性回归模型,就是要求解使均方误差最小化时所对应的参数:(其中W 相当于\small \theta)

                                                                                            式(1)

其中w*为模型对应的解,即使得均方误差函数最小化时的权重向量。

那么,我们应该如何求w*呢?在这里,我们可以用最小二乘法对模型的参数进行估计,具体做法是:损失函数对需要求解的参数进行求导(求梯度),并且令其导数为0,求得相应的参数。

在这里,我们需要让对w求导,在求导之前,我们来看一下两个求导公式:

                                                                                           式(2)

                                                                                           式(3)

 下图为详细的求导过程:

 损失函数对参数进行求导之后,可以求得:

                                                                                           式(4)

令式(4)为零可得:

                                                                                           式(5)

以上即为参数w最优解的闭式解,但我们可以发现w*的计算涉及矩阵的求逆,这样的话就有一些限制了,只有在X^T*X为满秩矩阵或者正定矩阵时,才可以使用以上式子计算。但在现实任务中,X^T*X往往不是满秩矩阵,这样的话就会导致有多个解,并且这多个解都能使均方误差最小化,但并不是所有的解都适合于做预测任务,因为某些解可能会产生过拟合的问题。

缺点:时间复杂度高:O(n^3) (优化O(n^2.4)); 当我们有上百万个样本,或者上百万个特征的时候,运算时间会非常长;但是能直接求得数学解也是很不错的,因为在机器学习算法中,很少有算法可以直接求出数学解。

优点:不需要对数据做归一化处理;结果是 原始数据运算得到结果,所以不存在量纲的问题;

参考:https://www.cnblogs.com/pengyingzhi/p/5383801.html

https://blog.csdn.net/qq_37610062/article/details/82532995

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值