首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【机器学习与实现】线性回归分析

【机器学习与实现】线性回归分析

作者头像
Francek Chen
发布2025-01-22 21:21:19
发布2025-01-22 21:21:19
2680
举报

一、相关和回归的概念

(一)变量间的关系

——函数关系和相关关系

(1)是一一对应的确定关系

(2)变量间关系不能用函数关系精确表达

1、函数关系的例子

  • 某种商品的销售额 (y) 与销售量 (x) 之间的关系可表示为
y = p x

(

p

为单价)

2、相关关系的例子

  • 商品的消费量 (
y

) 与居民收入 (

x

) 之间的关系

  • 父亲身高 (
y

) 与子女身高 (

x

) 之间的关系

3、相关关系的图示

(二)Pearson(皮尔逊)相关系数

随机变量

\color{red}X

\color{red}Y

\color{blue}D=\{ (x_1, y_1) , (x_2, y_2), \cdots, (x_m, y_m) \}
\mu_X=\frac{1}{m}\sum_{i=1}^mx_i,\mu_Y=\frac{1}{m}\sum_{i=1}^my_i,
\sigma_X=\sqrt{\frac{1}{m-1}\sum_{i=1}^m(x_i-\mu_X)^2},\sigma_Y=\sqrt{\frac{1}{m-1}\sum_{i=1}^m(y_i-\mu_Y)^2},
Cov(X,Y)=\frac{1}{m-1}\sum_{i=1}^m(x_i-\mu_X)(y_i-\mu_Y),
\boxed{ρ=\frac{Cov(X,Y)}{\sigma_X\sigma_Y}}
  • 相关系数
r

等于

X

Y

的协方差除以它们各自标准差的乘积

  • 相关系数
r

的取值

[-1,1]
  • 1表示完全正相关,-1表示完全负相关,0表示不相关

二、线性回归的概念和方程

(一)回归分析概述

回归分析指研究一组随机变量

(X_1, X_2,\cdots, X_k)

和另一组变量

(Y_1,Y_2,\cdots,Y_i)

之间相关关系的统计分析方法。

  • 按自变量:一元回归和多元回归
  • 按因变量:简单回归和多重回归
  • 按函数形式:线性回归和非线性回归
X_i

是自变量,

Y_i

是取连续值的因变量。

(二)线性回归方程

1、一元线性回归

一元线性回归由大体上有线性关系的一个自变量和一个因变量组成;模型是

Y=a+ bx +ε

X

是自变量,

Y

是因变量,

ε

是随机误差)。

回归分析的任务就是寻找一条拟合直线,使得所有样本点到该直线的距离之和最小。

2、多元线性回归

如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。

h(x)=\theta_0+\theta_1x_1+\theta_2x_2+\cdots+\theta_nx_n+\varepsilon_i

x_0=1

,则上式可写成

h_\theta(x)=\theta^TX=X^T\theta
\theta=\left(\begin{matrix}\theta_0\\\theta_1\\\cdots\\\theta_n\end{matrix}\right),X=\left(\begin{matrix}x_0\\x_1\\\cdots\\x_n\end{matrix}\right)
θ

称为参数向量,也是要求解的一个量(注意:向量默认是列向量)

多元线性回归方程的直观解释:

三、线性回归模型的损失函数与参数估计

线性回归方程参数的求解: 线性回归分析的目标是求出线性回归方程中参数向量

θ

的值,这有两种方法。 ① 正规解方程法(最小二乘法) ② 梯度下降法

(一)正规解方程法(最小二乘法)

1、线性回归模型方程

假设房屋价格与以下因子(自变量或者特征)存在线性关系,求解预测房屋

m

的价格(因变量或者预测量)。

面积

房间数

人口密度

房龄

价格

70

2

50

5

74.2

60

2

60

10

66.2

110

4

70

20

117.4

80

3

40

15

84.3

70

3

30

10

74.3

90

3

60

10

m?

2、将样本代入线性回归方程

f(X)

为预测值,也写作

\hat{y}

y

为实际值。

\left\{ \begin{array}{l} f(X)=\theta_0+70\theta_1+2\theta_2+50\theta_3+5\theta_4 \\[1ex] f(X)=\theta_0+60\theta_1+2\theta_2+60\theta_3+10\theta_4 \\[1ex] f(X)=\theta_0+110\theta_1+4\theta_2+70\theta_3+20\theta_4 \\[1ex] f(X)=\theta_0+80\theta_1+3\theta_2+40\theta_3+15\theta_4 \\[1ex] f(X)=\theta_0+70\theta_1+3\theta_2+30\theta_3+10\theta_4 \end{array} \right.
X_b\cdot\theta=\left[ \begin{matrix} 1 & X_1^{(1)} & X_2^{(1)} & \cdots & X_n^{(1)} \\[1ex] 1 & X_1^{(2)} & X_2^{(2)} & \cdots & X_n^{(2)} \\[1ex] \cdots & & & & \cdots \\[1ex] 1 & X_1^{(m)} & X_2^{(m)} & \cdots & X_n^{(m)} \end{matrix} \right] \cdot\left[ \begin{matrix} \theta_0 \\[1ex] \theta_1 \\[1ex] \theta_2 \\[1ex] \cdots \\[1ex] \theta_n \end{matrix} \right] =f(X)
m

个样本(上标)

n

个特征(下标)

X

(m,n+1)

特征矩阵

\theta

:权重向量/系数向量

3、线性回归的损失函数

4、线性回归参数估计

目标:找到

\theta_0,\theta_1,\theta_2,\cdots,\theta_n

,使得平方损失函数

\sum_{i=1}^m(y^{(i)}-\hat{y}^{(i)})^2

尽可能小。 其中

\hat{y}^{(i)}=\theta_0+\theta_1X_1^{(i)}+\theta_2X_2^{(i)}+...+\theta_nX_n^{(i)}

5、补充:均方误差(MSE)函数

在线性回归中使用的损失函数是“平方损失函数” (quadratic loss function)

L(Y,f(X))=(Y-f(X))^2

E_{(\omega,b)}=\sum_{i=1}^m(y_i-\omega x_i-b)^2

但是在计算的时候,常常多出一个2,并且表示成平均损失的形式:

\begin{aligned} Loss(\omega,b)=E_{(\omega,b)}&=\frac{1}{2m}\sum_{i=1}^m(f(x_i)-y_i)^2\\ &=\frac{1}{2m}\sum_{i=1}^m(y_i-\omega x_i-b)^2 \end{aligned}

平方损失函数下,样本数越多误差越大;相比于前面的平方损失函数,均方误差函数(mean-square error,MSE)既克服了样本数量的影响,同时它也仅仅是在平方损失函数前面增加了一个常量系数(

\frac{1}{2m}

),因此后面通过平方损失函数最小化求解参数的计算过程对它同样适用。

6、损失函数的向量化表示

损失函数

\begin{aligned}\sum_{i=1}^m(y^{(i)}-\hat{y}^{(i)})^2\end{aligned}

y=\left(\begin{matrix}y^{(1)}\\\cdots\\y^{(m)}\end{matrix}\right)

\hat{y}=X_b\cdot\theta=\left(\begin{matrix}\hat{y}^{(1)}\\\cdots\\\hat{y}^{(m)}\end{matrix}\right)

根据

\begin{aligned}\sum p_i^2=P^TP\end{aligned}

,进行向量化:

(y-X_b\cdot\theta)^T(y-X_b\cdot\theta)
J(\theta)=\boxed{\theta^TX_b^TX_b\theta}-\boxed{2(X_b\theta)^Ty}+y^Ty

\theta

求偏导,并令其等于0:

2X_b^TX_b\theta-2X^Ty=0
X_b^TX_b\theta=X_b^Ty
\theta=(X_b^TX_b)^{-1}X_b^Ty

参数

θ

的推导过程:

X_b^TX_b

可逆时,上述解称为线性回归权系数向量的最小二乘解(基于均分误差/平方误差最小化)。上面两个黑色框的求导结果是根据下面两条函数对向量和矩阵的求导规则:

A

是实对称矩阵时,有

\begin{aligned}\frac{\partial (a^TAx)}{\partial x}=2Ax\end{aligned}
\begin{aligned}\frac{\partial (a^Tx)}{\partial x}=\frac{\partial (x^Ta)}{\partial x}=a\end{aligned}

7、最小二乘解的缺点

X_b^TX_b

不可逆时无法求解;

  • 即使可逆,逆矩阵求解可能计算很复杂;
  • 求得的权系数向量
\theta

可能不稳定,即样本数据的微小变化可能导致

\theta

的巨大变化,从而使得回归模型不稳定,缺乏泛化能力。

(二)梯度下降法

1、基本概念

梯度下降(Gradient Descent)法适合特征个数多、样本数多、其他方法内存无法满足要求的情况下使用。

梯度下降算法是一种求局部最优解的数值计算方法,该方法的整体思路是通过迭代来逐渐调整参数使得损失函数达到最小值。

2、基本思想

目标:找到

\theta_0,\theta_1,\theta_2,\cdots,\theta_n

,使得损失函数

\begin{aligned}\sum_{i=1}^m(y^{(i)}-\hat{y}^{(i)})^2\end{aligned}

尽可能小。

比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。 这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。

3、梯度下降法举例

梯度下降法举例(1):

损失函数:

J(\theta)=\theta^2

θ

求导:

J'(θ)=2θ

设:

θ^0=1

  步长:

\alpha=0.4
θ^0=1
θ^1=θ^0-α\cdot J'(θ^0)=1-0.4\times2=0.2
θ^2=θ^1-α\cdot J'(θ^1)=0.2-0.4\times0.4=0.04
θ^3=θ^2-α\cdot J'(θ^2)=0.04-0.4\times0.08=0.008
θ^4=θ^3-α\cdot J'(θ^3)=0.008-0.4\times0.016=0.0016

梯度下降法举例(2):

J(θ)=θ_1^2+θ_2^2
θ^0=(1,3)
\alpha=0.1
\nabla J(θ)=\langle2θ_1,2θ_2\rangle
θ^0=(1,3)
θ^1=θ^0-\alpha\cdot\nabla J(θ)=(1,3)-0.1\cdot(2,6)=(0.8,2.4)
θ^2=θ^1-\alpha\cdot\nabla J(θ)=(0.8,2.4)-0.1\cdot(1.6,4.8)=(0.64,1.92)
θ^3=(0.5124,1.536)
θ^4=(0.4096,1.228800000000001)
\vdots
θ^{10}=(0.1073741824000003,0.32212254720000005)
\vdots
θ^{50}=(1.141798154164342e^{-05},3.42539442494306e^{-05})
\vdots
θ^{100}=(1.6296287810675902e^{-10},4.8888886343202771e^{-10})

4、梯度下降法的步骤

(1)确定当前位置的损失函数的梯度

\begin{aligned}\frac{\partial}{\partial\theta_i}J(θ_0,θ_1,...,θ_n)\end{aligned}

(2)用步长

\alpha

乘以损失函数的梯度,得到当前位置下降的距离

\begin{aligned}\alpha\frac{\partial}{\partial\theta_i}J(θ_0,θ_1,...,θ_n)\end{aligned}

(3)确定是否所有的

θ_i

,梯度下降的距离都小于

ε

,如果小于

ε

则算法终止,当前所有的

θ_i

即为最终结果。否则进入步骤(4)。

(4)更新所有的

θ_i

θ_i

的更新表达式如下。更新完毕后继续转入步骤(1)。

θ_i=θ_i-\begin{aligned}\alpha\frac{\partial}{\partial\theta_i}J(θ_0,θ_1,...,θ_n)\end{aligned}

5、步长过大或过小的情况

在这里插入图片描述
在这里插入图片描述

6、梯度下降法的种类

  • 批量梯度下降法BGD:在更新参数时使用所有的样本来进行更新
  • 随机梯度下降法SGD:仅仅选取一个样本
j

来求梯度

  • 小批量梯度下降法MBGD:对于
m

个样本,抽取其中

x

个子样本来迭代

7、模型评价

R^2

为0时,模型最差;

R^2

为1时,模型最好;

R^2

越大,模型越好。

训练集上的

R^2

:拟合程度好;测试集上的

R^2

:泛化能力强。

四、线性回归的正则化

(一)正则化线性回归

为防止过拟合,引入了正则化(regularization)技术,就是在原来损失函数的后面加上一个关于模型系数的正则化项:

直观理解,因为正则化项的存在,当新的目标函数

J(\omega)

取得最小值时,

L(\omega)

也不至于因为过小而产生过拟合。

正则化项可以理解成对模型参数的一种惩罚,在最小化误差的同时,使得模型参数变得更小(模型参数越小,甚至趋向于0,将降低模型复杂度,防止过拟合)。

(二)L2正则化与岭回归

在原来线性回归的均方误差后面增加

l_2

范数做正则项,就是岭回归(ridge regression):

J(\omega)=\frac{1}{2m}\sum_{i=1}^m(f(\omega,x_i)-y_i)^2+\frac{\alpha}{2}\lVert\omega\rVert_2^2
\omega^*=argminJ(\omega)

其中

\lVert\omega\rVert_2^2=\omega_0^2+\omega_1^2+...+\omega_n^2

岭回归求得的权重系数虽然都比较小,接近于0但不等于0,说明它是比较均衡的对待多个特征。

(三)L1正则化与Lasso回归

在原来线性回归的均方误差后面增加

l_1

范数做正则项,就是稀疏线性回归(Lasso regression):

J(\omega)=\frac{1}{2m}\sum_{i=1}^m(f(\omega,x_i)-y_i)^2+\frac{\alpha}{2}\lVert\omega\rVert_1
\omega^*=argminJ(\omega)

其中

\lVert\omega\rVert_1=|\omega_0|+|\omega_1|+...+|\omega_n|

Lasso

回归求得的权重系数多数都为0,体现出稀疏性,说明它具有特征选择的能力。

(四)比较L1与L2正则化

超参数𝛼既不能过大也不能太小:𝛼过大,使得正则项的作用加强,会削弱拟合效果𝛼过小,惩罚力度不够,防止过拟合效果不明显。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、相关和回归的概念
    • (一)变量间的关系
    • (二)Pearson(皮尔逊)相关系数
  • 二、线性回归的概念和方程
    • (一)回归分析概述
    • (二)线性回归方程
  • 三、线性回归模型的损失函数与参数估计
    • (一)正规解方程法(最小二乘法)
    • (二)梯度下降法
  • 四、线性回归的正则化
    • (一)正则化线性回归
    • (二)L2正则化与岭回归
    • (三)L1正则化与Lasso回归
    • (四)比较L1与L2正则化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档