线性回归简介

线性回归简介

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的列向量空间中的投影 几何意义的推导后续视情况补充

相关推荐
仙人掌_lz3 小时前
人工智能与机器学习:Python从零实现性回归模型
人工智能·python·机器学习·线性回归
蹦蹦跳跳真可爱5891 天前
Python----深度学习(基于深度学习Pytroch线性回归和曲线回归)
pytorch·python·深度学习·神经网络·回归·线性回归
缘友一世2 天前
线性回归之归一化(normalization)
算法·回归·线性回归
贵沫末2 天前
AI——神经网络以及TensorFlow使用
人工智能·python·线性回归
lixy5793 天前
深度学习3.1 线性回归
人工智能·python·深度学习·线性回归
夜松云3 天前
PaddlePaddle线性回归详解:从模型定义到加载,掌握深度学习基础
深度学习·线性回归·paddlepaddle·激活函数·模型加载·模型定义·模型保存
夜松云3 天前
PyTorch 线性回归详解:模型定义、保存、加载与网络结构
人工智能·pytorch·神经网络·线性回归·模型加载·模型定义·模型保存
爱的叹息4 天前
关于 梯度下降算法、线性回归模型、梯度下降训练线性回归、线性回归的其他训练算法 以及 回归模型分类 的详细说明
人工智能·算法·回归·线性回归
夜松云5 天前
自求导实现线性回归与PyTorch张量详解
人工智能·pytorch·算法·机器学习·线性回归·梯度下降·自动求导
lixy5796 天前
深度学习3.2 线性回归的从零开始实现
人工智能·python·深度学习·线性回归