线性回归学习笔记

一、线性回归模型定义

按变量数据可以分为:一元线性回归和多元线性回归。一元线性回归模型可以表示如下:
在这里插入图片描述
公式中参数解释如下:
x :自变量
y :因变量
β 0:截距
β 1:变量回归系数
ϵ :误差项的随机变量 ,假设服从正态分布
(β 0 +β 1 x)反映了由x变化引起的y线性变化。多元回归模型表示如下:
在这里插入图片描述
写成向量:
在这里插入图片描述
总结一下,有如下几个主要的假设条件:

(1)误差项ϵ是一个期望为0的随机变量,即E(ϵ)=0

(2)对于自变量的所有值,ϵ的方差σ^2 都相同

(3)误差项ϵ是一个服从正态分布的随机变量,且相互独立,即ϵ~N(0,σ^2 )

二、损失函数、目标函数、似然函数

2.1损失函数

从样本数据考虑,如果想让我们预测值尽量准确,那么我们就必须让真实值与预测值的差值最小,即让误差平方和ϵ最小,用公式来表达即:
在这里插入图片描述
注:用平方而没用误差绝对值是因为:平方对于后续求导比较方便;为方便计算前面通常会乘上1/2。
如果不考虑诸如过拟合等其他问题,这就是我们需要优化的目标函数。

2.2似然函数

对于每个样本:
在这里插入图片描述
由于误差服从高斯分布:
在这里插入图片描述
则可得到:
在这里插入图片描述
模型的最终目标是希望在全部样本上预测最准,也
就是概率积最大,这个概率积就是似然函数。优化的目标函数即为似然函数,表示如下:
在这里插入图片描述
似然函数解释了什么样的参数跟我们的数据组合后恰好是真实值。
对数似然:
在这里插入图片描述
转化为对数似然函数后,从乘法变为加法,理解和运算都容易多了。
展开化简:
在这里插入图片描述
提取出目标函数J(θ),
在这里插入图片描述
让似然函数越大越好,转化成求J(θ)越小越好。

三、参数计算

如何调整参数 使得 取得最小值?方法有很多,经典的方法有最小二乘
法、梯度下降法以及牛顿法。

3.1最小二乘法

最小二乘法可以将误差方程转化为有确定解的代数方程组(其方程式数目正好等于未知数的个数),从而可求解出这些未知参数。这个有确定解的代数方程组称为最小二乘法估计的 正规方程 。 将代数方程组用矩阵来代替可以简化推导过程。
在这里插入图片描述
J(θ)对θ求偏导:
在这里插入图片描述
偏导等于0,则
在这里插入图片描述

3.2梯度下降法

梯度下降是另一种常用的方法,可以用来求解凸优化问题。它的原理有别于最小二乘法,它是通过一步步迭代求解,不断逼近正确结果,直到与真实值之差小于一个阈值,从而得到最小化损失函数的模型参数值的。它的公式如下:
在这里插入图片描述
对于损失函数的梯度(即求偏导的过程),上面在最小二乘法部分已经给出推导过程和结果。不同的是,我们不会将公式等于0来求极值,而是带入上面梯度下面公式来迭代完成求解,以下是梯度下降矩阵形式的最终求解结果。
在这里插入图片描述

最小二乘法 vs 梯度下降法

通过上面推导,我们不难看出,二者都对损失函数的回归系数进行了求偏导,并且所得到的推导结果是相同的,那么究竟哪里不同呢?

如果仔细观察,可以观察到:最小二乘法通过使推导结果等于0,从而直接求得极值,而梯度下降则是将推导结果带入迭代公式中,一步一步地得到最终结果。简单地说,最小二乘法是一步到位的,而梯度下降是一步步进行的。

因而通过以上的异同点,总结如下

最小二乘法:

  • 得到的是全局最优解,因为一步到位,直接求极值,因而步骤简单
  • 线性回归的模型假设,这是最小二乘方法的优越性前提,否则不能推出最小二乘是最佳(即方差最小)的无偏估计

梯度下降法:

  • 得到的是局部最优解,因为是一步步迭代的,而非直接求得极值
  • 既可以用于线性模型,也可以用于非线性模型,没有特殊的限制和假设条件

四、线性回归的评估指标

4.1 判定系数

回归直线与各观测点的接近程度成为回归直线对数据的拟合优度。而评判直线拟合优度需要一些指标,其中一个就是判定系数。

我们知道,因变量y值有来自两个方面的影响:

(1)来自x值的影响,也就是我们预测的主要依据

(2)来自无法预测的干扰项ϵ的影响
如果一个回归直线预测非常准确,那么它就需要让来自x的影响尽可能的大,而让来自无法预测干扰项的影响尽可能的小,也就是说
x影响占比越高,预测效果就越好。
以下为相关指标定义。
在这里插入图片描述

  • SST(总平方和):变差总平方和
  • SSR(回归平方和):由x与y之间的线性关系引起的y变化
  • SSE(残差平方和):除x影响之外的其它因素引起的y变化

它们之间的关系是:SST = SSR + SSE。根据我们前面的分析,SSR越高,则代表回归预测越准确,观测点越是靠近直线,也即越大,直线拟合越好。因此,判定系数的定义就自然的引出来了,我们一般称为R2。
在这里插入图片描述
`

4.2估计标准误差

判定系数R2的意义是由x引起的影响占总影响的比例来判断拟合程度的。当然,我们也可以从误差的角度去评估,也就是用残差SSE进行判断。估计标准误差是均方残差的平方根,可以度量各实际观测点在直线周围散布的情况。
在这里插入图片描述

S_e = \sqrt{\frac{\sum(y_i- \hat{y})}{n-2}} = \sqrt{\frac{SSE}{n-2}} = \sqrt{MSE}

MSE 均方误差 RMSE 均方根误差(MSE开根号)

估计标准误差与判定系数相反,se反映了预测值与真实值之间误差的大小,se越小说明拟合度越高,相反,se越大说明拟合度越低。

五、sklearn参数详解

5.1

  • 线性回归模块导入:from sklearn.linear_model import LinearRegression
  • LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)

参数

fit_intercept : 布尔型参数,表示是否计算该模型截距。可选参数。
normalize : 布尔型参数,若为True,则X在回归前进行归一化。可选参数。默认值为False。
copy_X : 布尔型参数,若为True,则X将被复制;否则将被覆盖。 可选参数。默认值为True。
n_jobs: 计算时设置的任务个数(number of jobs)。如果选择-1则代表使用所有的CPU。这一参数的对于目标个数>1(n_targets>1)且足够大规模的问题有加速作用
返回值
coef_ 数组型变量, 形状为(n_features,)或(n_targets, n_features)。对于线性回归问题计算得到的feature的系数。如果输入的是多目标问题,则返回一个二维数组(n_targets, n_features);如果是单目标问题,返回一个一维数组 (n_features,)。
intercept_数组型变量
方法:
decision_function(X) 对训练数据X进行预测
fit(X, y[, n_jobs]) 对训练集X,y进行训练。是对scipy.linalg.lstsq的封装
get_params([deep]) 得到该估计器(estimator)的参数。
predict(X) 使用训练得到的估计器对输入为X的集合进行预测(X可以是测试集,也可以是需要预测的数据)。
score(X, y[,]sample_weight)返回对于以X为samples,以y为target的预测效果评分。
set_params(**params) 设置估计器的参数
参考链接:https://blog.csdn.net/voidfaceless/article/details/61182436

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值