线性回归简介

线性回归简介

1、情景描述

假设,我们现在有这么一张图:

其中,横坐标x表示房子的面积,纵坐标y表示房价。我们猜想x与y之间存在线性关系: y = k x + b y=kx+b y=kx+b

现在,思考一个问题:如何找到一条直线,使得这条直线尽可能地拟合图中的所有数据点?

这个找最佳拟合直线的过程称为做线性回归

简而言之,线性回归就是在N维空间中找一个类似直线方程y=kx+b一样的函数来拟合数据

线性回归模型则是利用线性函数对一个或多个自变量(x)和因变量(y)之间的关系进行拟合的模型

这里有一个问题,线性等于直线吗?

线性函数的定义是零阶或一阶多项式。特征是二维时,线性模型在二维空间构成一条直线;特征是三维时,线性模型在三维空间中构成一个平面;以此类推,具体见下文线性回归的定义及推导

还有一个问题,那就是如何评判找的哪条直线才是最优的?详见文章最小二乘法:传送门

2、线性回归

1)线性回归的定义及推导

定义:对于一个有n个特征的样本而言,它的线性回归方程如下:

y = f ( x 1 , x 2 , . . . , x n − 1 ) = ω 0 + w 1 x 1 + w 2 x 2 + . . . + w n − 1 x n − 1 y = f(x_1,x_2,...,x_{n-1}) = \omega_0 + w_1x_1 + w_2x_2 +...+w_{n-1}x_{n-1} y=f(x1,x2,...,xn−1)=ω0+w1x1+w2x2+...+wn−1xn−1

其中, w 0 w_0 w0~ w n − 1 w_{n-1} wn−1统称为模型的参数,表示样本有n个特征,有时也用 θ \theta θ或 β \beta β表示

w 0 w_0 w0称为截距, w 1 w_1 w1~ w n − 1 w_{n-1} wn−1称为回归系数(Regression Coefficients), x 1 x_1 x1~ x n − 1 x_{n-1} xn−1为样本的输入向量,y为样本的输出向量; x 0 x_0 x0始终等于1

根据简单场景推导n个特征的样本线性回归方程过程如下:

假设我们有2个样本:( x 1 x_1 x1=1, y 1 y_1 y1=1)、( x 2 x_2 x2=2, y 2 y_2 y2=3),我们猜测其关系符合:
y = k x + b y = kx + b y=kx+b

将样本代入函数:
{ k ∗ 1 + b = 1 k ∗ 2 + b = 3 \begin{cases} k * 1 + b = 1 \\ k * 2 + b = 3 \end{cases} {k∗1+b=1k∗2+b=3

按照从 x 0 x_0 x0~ x n − 1 x_{n-1} xn−1的顺序排列:
{ b ∗ 1 + k ∗ 1 = 1 b ∗ 1 + k ∗ 2 = 3 \begin{cases} b*1 + k*1 = 1 \\ b*1 + k*2 = 3 \end{cases} {b∗1+k∗1=1b∗1+k∗2=3

对应到2个特征的线性回归方程模板:
{ b ∗ x 01 + k ∗ x 11 = y 1 b ∗ x 02 + k ∗ x 12 = y 2 \begin{cases} b*x_{01} + k*x_{11} = y_1 \\ b*x_{02} + k*x_{12} = y_2 \end{cases} {b∗x01+k∗x11=y1b∗x02+k∗x12=y2

将方程转换为矩阵:
[ 1 1 1 2 ] [ b k ] = [ 1 3 ] \left[ \begin{matrix} 1 & 1 \\ 1 & 2 \end{matrix} \right] \left[ \begin{matrix} b \\ k \end{matrix} \right] = \left[ \begin{matrix} 1 \\ 3 \end{matrix} \right] [1112][bk]=[13]

其中, x 0 x_0 x0始终为1。再次对应到2个特征的线性回归方程模板:
[ 1 x 11 1 x 12 ] [ b k ] = [ y 1 y 2 ] \left[ \begin{matrix} 1 & x_{11} \\ 1 & x_{12} \end{matrix} \right] \left[ \begin{matrix} b \\ k \end{matrix} \right] = \left[ \begin{matrix} y_1 \\ y_2 \end{matrix} \right] [11x11x12][bk]=[y1y2]

根据上述过程,推广到一般场景:
[ 1 x 11 x 21 ⋯ x n − 1 , 1 1 x 12 x 22 ⋯ x n − 1 , 2 ⋮ ⋮ ⋮ ⋱ ⋮ 1 x 1 m x 2 m ⋯ x n − 1 , m ] [ ω 0 ω 1 ⋮ ω m − 1 ] = [ y 1 y 2 ⋮ y m ] \left[ \begin{matrix} 1 & x_{11} & x_{21} & \cdots & x_{{n-1},1} \\ 1 & x_{12} & x_{22} & \cdots & x_{{n-1},2} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{1m} & x_{2m} & \cdots & x_{{n-1},m} \end{matrix} \right] \left[ \begin{matrix} \omega_0 \\ \omega_1 \\ \vdots \\ \omega_{m-1} \end{matrix} \right] = \left[ \begin{matrix} y_1 \\ y_2 \\ \vdots \\ y_m \end{matrix} \right] 11⋮1x11x12⋮x1mx21x22⋮x2m⋯⋯⋱⋯xn−1,1xn−1,2⋮xn−1,m ω0ω1⋮ωm−1 = y1y2⋮ym

简化:
X ω = y X\omega=y Xω=y

其中,y为m × \times × 1的矩阵向量,表示模型的理论输出;X为m × \times × n的矩阵向量,表示模型的样本输入,m表示样本数,n表示样本的特征数; ω \omega ω为n × \times × 1的矩阵向量,表示模型有n个特征

2)线性回归的解

线性回归的解析解 ω \omega ω推导:

假设Y是样本的输出矩阵向量,维度为m × \times × 1,则根据勒让德最小二乘准则有:
J ( ω ) = ∣ ∣ y − Y ∣ ∣ 2 = ∣ ∣ X ω − Y ∣ ∣ 2 = ( X ω − Y ) T ( X ω − Y ) J(\omega) = ||y-Y||^2 = ||X\omega-Y||^2=(X\omega-Y)^T(X\omega-Y) J(ω)=∣∣y−Y∣∣2=∣∣Xω−Y∣∣2=(Xω−Y)T(Xω−Y)

根据数学知识,函数导数为0处取极值:
∂ ∂ ω J ( ω ) = 2 X T X ω − 2 X T Y = 0 \frac{\partial}{\partial\omega}J(\omega)=2X^TX\omega-2X^TY=0 ∂ω∂J(ω)=2XTXω−2XTY=0

解得:
ω = ( X T X ) − 1 X T Y \omega=(X^TX)^{-1}X^TY ω=(XTX)−1XTY

3)线性回归解的几何意义

线性回归的解是通过最小二乘法求解的。其几何意义是:求解 Y Y Y在 X X X的列向量空间中的投影

几何意义的推导后续视情况补充

相关推荐
杰哥技术分享2 天前
百度飞浆:paddle 线性回归模型
百度·线性回归·paddle
谢眠3 天前
机器学习day7-线性回归3、逻辑回归、聚类、SVC
机器学习·逻辑回归·线性回归
行码棋4 天前
【机器学习】回归模型(线性回归+逻辑回归)原理详解
人工智能·机器学习·线性回归
闫铁娃5 天前
【AtCoder】Beginner Contest 380-C.Move Segment
c语言·开发语言·数据结构·c++·算法·线性回归
baijin_cha5 天前
机器学习基础05_随机森林&线性回归
随机森林·机器学习·线性回归
两千连弹7 天前
机器学习 ---线性回归
机器学习·回归·线性回归·sklearn
Light608 天前
低代码牵手 AI 接口:开启智能化开发新征程
人工智能·python·深度学习·低代码·链表·线性回归
workflower9 天前
数据结构练习题和答案
数据结构·算法·链表·线性回归
raylu66611 天前
基于Scikit-learn的多元线性回归模型构建与验证
机器学习·线性回归·scikit-learn
TengMMVP12 天前
机器学习与数据挖掘_使用梯度下降法训练线性回归模型
机器学习·数据挖掘·线性回归