人工智能必备数学知识· 学习笔记 ·001【线性回归,最小二乘法&梯度下降法】

注:笔记 来自课程 人工智能必备数学知识
Tips①:只是记录从这个课程学到的东西,不是推广、没有安利
Tips②:本笔记主要目的是为了方便自己遗忘查阅,或过于冗长、或有所缺省、或杂乱无章,见谅
Tips③:本笔记使用markdown编写,相关缩进为了方便使用了LaTeX公式的\qquad,复制粘贴请注意
Tips④:本笔记部分内容为自己的整理拓展,课程中并未提及

一、定义

回归 \color{#6666FF} \textbf{回归} 回归
根 据 已 有 的 数 据 , 建 立 因 变 量 Y 与 自 变 量 X 的 函 数 关 系 的 模 型 : \color{#6666FF} \qquad 根据已有的数据,建立因变量Y与自变量X的函数关系的模型: YX
y = f ( x 1 , x 2 , ⋯   , x n ) \color{#6666FF} y = f(x_1, x_2, \cdots, x_n) y=f(x1,x2,,xn)

线性回归 \color{#6666FF} \textbf{线性回归} 线性回归
在 回 归 的 基 础 上 , 要 求 因 变 量 Y 与 自 变 量 X 成 线 性 关 系 : \qquad \color{#6666FF} 在回归的基础上,要求因变量Y与自变量X成线性关系: YX线
y = w 1 x 1 + w 2 x 2 + ⋯ + w n x n e g : y = a x + b \color{#6666FF} \begin{aligned} & y = w_1 x_1 + w_2 x_2 + \cdots + w_n x_n \\ & \color{#FFA5FF} eg:y = ax + b \end{aligned} y=w1x1+w2x2++wnxnegy=ax+b

回归 与 分类 的 区 别 \color{#AA66FF} \textbf{回归}与\textbf{分类}的区别 回归分类
回 归 的 预 测 是 连 续 的 , 而 分 类 的 预 测 是 离 散 的 \color{#AA66FF} \qquad 回归的预测是连续的,而分类的预测是离散的

二、评估

通 过 回 归 求 解 , 使 模 型 预 测 值 y ^ 尽 可 能 接 近 真 实 测 量 y \color{#6666FF}通过回归求解,使模型预测值\hat{y}尽可能接近真实测量y 使y^y
即 最 小 化 均方误差 ‾ \color{#6666FF}即最小化\textbf{\underline{均方误差}}
MSE = 1 n ∑ ( y − y ^ ) 2 \color{#6666FF} \text{MSE} = \frac{1}{n}\sum(y - \hat{y})^2 MSE=n1(yy^)2

三、求解

1、最小二乘法

以 一 元 输 入 为 例 , 联 立 方 程 组 , 直 接 找 到 全局最小值 ‾ : \color{#FFC000} 以一元输入为例,联立方程组,直接找到\underline{\textbf{全局最小值}}: 全局最小值
{ loss = ∑ ( y ^ − y ) 2 y ^ = a x + b ∂ loss ∂ a = 0 ∂ loss ∂ b = 0 ⟹ { a = ∑ ( x − x ˉ ) ( y − y ˉ ) ∑ ( x − x ˉ ) 2 b = y ˉ − a x ˉ \color{#FFC000} \begin{cases} \text{loss} = \sum(\hat{y} - y)^2 \\ \\ \hat{y} = ax + b \\ \\ \begin{aligned} \frac{\partial \text{loss}}{\partial a} = 0 \end{aligned} \\ \\ \begin{aligned} \frac{\partial \text{loss}}{\partial b} = 0 \end{aligned} \\ \end{cases} \color{#AA66FF} \Longrightarrow \begin{cases} a = \begin{aligned} \frac{\sum(x - \bar{x})(y - \bar{y})}{\sum(x - \bar{x})^2} \end{aligned} \\ \\ b = \bar{y} - a \bar{x} \\ \end{cases} loss=(y^y)2y^=ax+baloss=0bloss=0a=(xxˉ)2(xxˉ)(yyˉ)b=yˉaxˉ

推 导 过 程 : \color{#FF8080} 推导过程:

loss = ∑ ( a x + b − y ) 2 \color{#FF8080} \qquad \begin{aligned} \text{loss} = \sum(ax + b - y)^2 \end{aligned} loss=(ax+by)2

故 ∂ loss ∂ b = 2 ∑ ( a x + b − y ) = 2 ( a ∑ x + ∑ b + ∑ y ) = 2 ( a n x ˉ + n b + n y ˉ ) = 0 \color{#FF8080} \qquad \begin{aligned} 故\frac{\partial \text{loss}}{\partial b} & = 2 \sum(ax + b - y) \\ & = 2 (a\sum x + \sum b + \sum y ) \\ & = 2 (an\bar{x} + nb + n\bar{y}) \\ & = 0 \end{aligned} bloss=2(ax+by)=2(ax+b+y)=2(anxˉ+nb+nyˉ)=0

得 : b = y ˉ − a x ˉ \color{#FF8080} \qquad 得:b = \bar{y} - a \bar{x} b=yˉaxˉ

故 ∂ loss ∂ a = 2 ∑ ( a x + y ˉ − a x ˉ − y ) x = 2 ∑ ( a x 2 + x y ˉ − a x ˉ x − x y ) = 2 [ a ∑ ( x 2 − x ˉ x ) − ∑ ( x y − x y ˉ ) ] = 0 \color{#FF8080} \qquad \begin{aligned} 故\frac{\partial \text{loss}}{\partial a} & = 2 \sum(ax + \bar{y} - a \bar{x} - y)x \\ & = 2 \sum(ax^2 + x\bar{y} - a \bar{x}x - xy) \\ & = 2 \left[a\sum(x^2- \bar{x}x) - \sum(xy - x\bar{y}) \right] \\ & = 0 \end{aligned} aloss=2(ax+yˉaxˉy)x=2(ax2+xyˉaxˉxxy)=2[a(x2xˉx)(xyxyˉ)]=0

得 : a = ∑ ( x y − x y ˉ ) ∑ ( x 2 − x ˉ x ) = ∑ ( x y − x y ˉ ) + n x ˉ y ˉ − n x ˉ y ˉ ∑ ( x 2 − x ˉ x ) + n x ˉ 2 − n x ˉ 2 = ∑ ( x y − x y ˉ ) + ∑ ( − x ˉ y + x ˉ y ˉ ) ∑ ( x 2 − x ˉ x ) + ∑ ( − x ˉ x + x ˉ 2 ) = ∑ ( x − x ˉ ) ( y − y ˉ ) ∑ ( x − x ˉ ) 2 \color{#FF8080} \qquad \begin{aligned} 得:a & = \frac {\sum(xy - x\bar{y})} {\sum(x^2- \bar{x}x)} \\ \\ & = \frac {\sum(xy - x\bar{y}) + n\bar{x}\bar{y} - n\bar{x}\bar{y}} {\sum(x^2- \bar{x}x) + n\bar{x}^2 - n\bar{x}^2} \\ \\ & = \frac {\sum(xy - x\bar{y}) + \sum(-\bar{x}y+\bar{x}\bar{y})} {\sum(x^2- \bar{x}x) + \sum(-\bar{x}x + \bar{x}^2)} \\ \\ & = \frac {\sum(x - \bar{x})(y - \bar{y})} {\sum(x - \bar{x})^2} \\ \end{aligned} a=(x2xˉx)(xyxyˉ)=(x2xˉx)+nxˉ2nxˉ2(xyxyˉ)+nxˉyˉnxˉyˉ=(x2xˉx)+(xˉx+xˉ2)(xyxyˉ)+(xˉy+xˉyˉ)=(xxˉ)2(xxˉ)(yyˉ)

综 上 , { a = ∑ ( x − x ˉ ) ( y − y ˉ ) ∑ ( x − x ˉ ) 2 b = y ˉ − a x ˉ \color{#FF8080} \qquad 综上, \begin{cases} a = \begin{aligned} \frac{\sum(x - \bar{x})(y - \bar{y})}{\sum(x - \bar{x})^2} \end{aligned} \\ \\ b = \bar{y} - a \bar{x} \\ \end{cases} a=(xxˉ)2(xxˉ)(yyˉ)b=yˉaxˉ


例 1 : 用 最 小 二 乘 法 为 以 下 数 据 做 线 性 回 归 \color{#FFA5FF} 例1:用最小二乘法为以下数据做线性回归 1线

x
时长(min)
y
产量(个)
20 195
30 305
50 480
60 580

解 : \color{#FF8080}解:

x ˉ = 40 , y ˉ = 390 \color{#FF8080} \qquad \bar{x} = 40, \bar{y} = 390 xˉ=40,yˉ=390

故 { a = ( − 20 ) × ( − 195 ) + ( − 10 ) × ( − 85 ) + 10 × 90 + 20 × 190 2 0 2 + 1 0 2 + 1 0 2 + 2 0 2 = 9.45 b = 390 − 9.45 × 40 = 12 \color{#FF8080} \qquad 故 \begin{cases} a = \begin{aligned} \frac {(-20) \times (-195) + (-10) \times (-85) + 10 \times 90 + 20 \times 190} {20^2+10^2+10^2+20^2} = 9.45 \end{aligned} \\ \\ b = 390 - 9.45 \times 40 = 12 \end{cases} a=202+102+102+202(20)×(195)+(10)×(85)+10×90+20×190=9.45b=3909.45×40=12

故 线 性 回 归 方 程 为 y = 9.45 x + 12 \color{#FF8080} \qquad 故线性回归方程为 y = 9.45 x +12 线y=9.45x+12


现 在 我 们 把 问 题 推 广 到 n 元 \color{#6666FF} 现在我们把问题推广到n元 广n

因 为 问 题 涉 及 线 性 方 程 组 , 我 分 为 两 种 形 式 进 行 讨 论 ( 个 人 认 为 , 数 值 形 式 便 于 理 解 , 矩 阵 形 式 便 于 计 算 ) \color{#6666FF} 因为问题涉及线性方程组,我分为两种形式进行讨论(个人认为,数值形式便于理解,矩阵形式便于计算) 线便便

数 值 形 式 : \color{#FF8080} \qquad 数值形式:

{ loss = ∑ ( y ^ − y ) 2 y ^ = w 0 + w 1 x 1 + w 2 x 2 + ⋯ + w n x n ∂ loss ∂ w 0 = 0 ∂ loss ∂ w 1 = 0 ⋮ ∂ loss ∂ w n = 0 \color{#FF8080} \qquad\qquad \begin{cases} \text{loss} = \sum(\hat{y} - y)^2 \\ \\ \hat{y} = w_0 + w_1x_1 + w_2x_2 + \cdots + w_nx_n \\ \\ \begin{aligned} \frac{\partial \text{loss}}{\partial w_0} = 0 \end{aligned} \\ \\ \begin{aligned} \frac{\partial \text{loss}}{\partial w_1} = 0 \end{aligned} \\ \\ \quad \vdots \\ \\ \begin{aligned} \frac{\partial \text{loss}}{\partial w_n} = 0 \end{aligned} \\ \end{cases} loss=(y^y)2y^=w0+w1x1+w2x2++wnxnw0loss=0w1loss=0wnloss=0

同 样 地 , 按 照 之 前 一 元 的 做 法 , 我 们 先 计 算 关 于 常 数 项 的 偏 导 \color{#FF8080} \qquad\qquad 同样地,按照之前一元的做法,我们先计算关于常数项的偏导

loss = ∑ ( w 0 + ∑ i = 1 n w i x i − y ) 2 \color{#FF8080} \qquad\qquad \begin{aligned} \text{loss} = \sum(w_0 + \sum\limits_{i = 1}^{n}{w_i x_i}- y)^2 \end{aligned} loss=(w0+i=1nwixiy)2

故 ∂ loss ∂ w 0 = 2 ∑ ( w 0 + ∑ i = 1 n w i x i − y ) = 2 [ ∑ w 0 + ∑ i = 1 n ( w i ∑ x i ) − ∑ y ] = 2 ( N w 0 + ∑ i = 1 n ( w i N x ˉ i ) − N y ˉ ) = 2 N ( w 0 + ∑ i = 1 n w i x ˉ i − y ˉ ) = 0 \color{#FF8080} \qquad\qquad \begin{aligned} 故 \frac {\partial \text{loss}} {\partial w_0} & = 2 \sum(w_0 + \sum\limits_{i = 1}^{n}{w_i x_i} - y) \\ & = 2 \left[ \sum{w_0} + \sum\limits_{i = 1}^{n}(w_i \sum{x_i}) - \sum{y} \right] \\ & = 2 \left( N w_0 + \sum\limits_{i = 1}^{n}(w_i N \bar{x}_i) - N \bar{y} \right) \\ & = 2N \left( w_0 + \sum\limits_{i = 1}^{n}w_i \bar{x}_i - \bar{y} \right) \\ & = 0 \end{aligned} w0loss=2(w0+i=1nwixiy)=2[w0+i=1n(wixi)y]=2(Nw0+i=1n(wiNxˉi)Nyˉ)=2N(w0+i=1nwixˉiyˉ)=0

得 : w 0 = y ˉ − ∑ i = 1 n w i x ˉ i \color{#FF8080} \qquad\qquad 得: \begin{aligned} w_0 = \bar{y} -\sum\limits_{i = 1}^{n}{w_i \bar{x}_i} \end{aligned} w0=yˉi=1nwixˉi

故 ∂ loss ∂ w m = 2 ∑ ( w 0 + ∑ i = 1 n w i x i − y ) x m = 2 ∑ [ ∑ i = 1 n w i ( x i − x ˉ i ) − ( y − y ˉ ) ] x m = 0 \color{#FF8080} \qquad\qquad \begin{aligned} 故 \frac {\partial \text{loss}} {\partial w_m} & = 2 \sum(w_0 + \sum\limits_{i = 1}^{n}{w_i x_i} - y) x_m \\ & = 2 \sum \left[ \sum\limits_{i = 1}^{n}{w_i (x_i - \bar{x}_i)} - (y - \bar{y}) \right] x_m \\ & = 0 \end{aligned} wmloss=2(w0+i=1nwixiy)xm=2[i=1nwi(xixˉi)(yyˉ)]xm=0

可 知 : ∑ ∑ i = 1 n w i ( x i − x ˉ i ) x m = ∑ ( y − y ˉ ) x m 即 ∑ i = 1 n ( w i ∑ ( x i − x ˉ i ) x m ) = ∑ ( y − y ˉ ) x m 即 ∑ i = 1 n [ w i ( ∑ ( x i − x ˉ i ) x m − N x ˉ i x ˉ m + N x ˉ i x ˉ m ) ] = ∑ ( y − y ˉ ) x m − N x ˉ m y + N x ˉ m y 即 ∑ i = 1 n [ w i ( ∑ ( x i − x ˉ i ) x m − ∑ ( x i − x ˉ i ) x ˉ m ) ] = ∑ ( y − y ˉ ) x m − ∑ ( y − y ˉ ) x ˉ m 即 ∑ i = 1 n [ w i ∑ ( x i − x ˉ i ) ( x m − x ˉ m ) ] = ∑ ( y − y ˉ ) ( x m − x ˉ m ) \color{#FF8080} \qquad\qquad \begin{aligned} 可知:& \\ & \sum\sum\limits_{i = 1}^{n}{w_i (x_i - \bar{x}_i) x_m} = \sum{(y - \bar{y}) x_m} \\ 即 & \sum\limits_{i = 1}^{n}{\left( w_i \sum{(x_i - \bar{x}_i)} x_m \right)} = \sum{(y - \bar{y}) x_m} \\ 即 & \sum\limits_{i = 1}^{n}{\left[ w_i \left( \sum{(x_i - \bar{x}_i) x_m} - N \bar{x}_i \bar{x}_m + N \bar{x}_i \bar{x}_m \right) \right]} = \sum{(y - \bar{y}) x_m} - N \bar{x}_m y + N \bar{x}_m y \\ 即 & \sum\limits_{i = 1}^{n}{\left[ w_i \left( \sum{(x_i - \bar{x}_i) x_m} - \sum{(x_i - \bar{x}_i) \bar{x}_m} \right) \right]} = \sum{(y - \bar{y}) x_m} - \sum{(y - \bar{y}) \bar{x}_m} \\ 即 & \sum\limits_{i = 1}^{n}{\left[ w_i \sum{(x_i - \bar{x}_i) (x_m - \bar{x}_m) } \right]} = \sum{(y - \bar{y}) (x_m - \bar{x}_m)} \\ \end{aligned} i=1nwi(xixˉi)xm=(yyˉ)xmi=1n(wi(xixˉi)xm)=(yyˉ)xmi=1n[wi((xixˉi)xmNxˉixˉm+Nxˉixˉm)]=(yyˉ)xmNxˉmy+Nxˉmyi=1n[wi((xixˉi)xm(xixˉi)xˉm)]=(yyˉ)xm(yyˉ)xˉmi=1n[wi(xixˉi)(xmxˉm)]=(yyˉ)(xmxˉm)

由 此 我 们 得 到 n 个 关 于 w i 的 线 性 方 程 组 : \color{#FF8080} \qquad\qquad 由此我们得到 n 个关于w_i的线性方程组: nwi线

{ a 11 w 1 + a 12 w 2 + ⋯ + a 1 n w n = b 1 a 21 w 1 + a 22 w 2 + ⋯ + a 2 n w n = b 2 ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ a n 1 w 1 + a n 2 w 2 + ⋯ + a n n w n = b n 其 中 , { a m n = ∑ ( x m − x ˉ m ) ( x n − x ˉ n ) b i = ∑ ( x i − x ˉ i ) ( y − y ˉ ) \color{#FF8080} \begin{aligned} & \begin{cases} a_{11} w_1 + a_{12} w_2 + \cdots + a_{1n} w_n = b_1 \\ a_{21} w_1 + a_{22} w_2 + \cdots + a_{2n} w_n = b_2 \\ \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \\ a_{n1} w_1 + a_{n2} w_2 + \cdots + a_{nn} w_n = b_n \\ \end{cases} \\ \\ & 其中, \begin{cases} a_{mn} & = \sum(x_m - \bar{x}_m)(x_n - \bar{x}_n) \\ b_i & = \sum(x_i - \bar{x}_i)(y - \bar{y}) \end{cases} \end{aligned} a11w1+a12w2++a1nwn=b1a21w1+a22w2++a2nwn=b2an1w1+an2w2++annwn=bn{amnbi=(xmxˉm)(xnxˉn)=(xixˉi)(yyˉ)

显 然 , 根 据 线 性 代 数 的 \color{#FF8080} \qquad\qquad 显然,根据线性代数的 线 克莱姆法则 ‾ \underline{\textbf{克莱姆法则}} 克莱姆法则 , 我 们 很 容 易 可 以 求 出 方 程 的 解 \color{#FF8080} ,我们很容易可以求出方程的解

令   D = ∣ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ∣ D i = ∣ a 11 a 12 ⋯ a 1 ( i − 1 ) b 1 a 1 ( i + 1 ) ⋯ a 1 n a 21 a 22 ⋯ a 2 ( i − 1 ) b 2 a 1 ( i + 1 ) ⋯ a 1 n ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n ( i − 1 ) b n a 1 ( i + 1 ) ⋯ a 1 n ∣ \color{#FF8080} \qquad\qquad \begin{aligned} 令 \ & D = \begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \\ \end{vmatrix} \\ \\ & D_i = \begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1(i-1)} & b_1 & a_{1(i+1)} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2(i-1)} & b_2 & a_{1(i+1)} & \cdots & a_{1n} \\ \vdots & \vdots & \ddots & \vdots & \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{n(i-1)} & b_n & a_{1(i+1)} & \cdots & a_{1n} \\ \end{vmatrix} \\ \\ \end{aligned}  D=a11a21an1a12a22an2a1na2nannDi=a11a21an1a12a22an2a1(i1)a2(i1)an(i1)b1b2bna1(i+1)a1(i+1)a1(i+1)a1na1na1n
其 中 , D 为 系 数 行 列 式 , D i 为 将 D 中 的 第 i 列 换 成 常 数 项 后 的 行 列 式 \color{#FF8080} \qquad\qquad 其中,D为系数行列式,D_i为将D中的第i列换成常数项后的行列式 DDiDi

可 求 得 : w i = D i D \color{#FF8080} \qquad\qquad \begin{aligned} 可求得:w_i = \frac{D_i}{D} \end{aligned} wi=DDi

综 上 , { w 0 = y ˉ − ∑ i = 1 n w i x ˉ i w i = D i D , 其 中 { D = ∣ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ∣ D i = ∣ a 11 a 12 ⋯ a 1 ( i − 1 ) b 1 a 1 ( i + 1 ) ⋯ a 1 n a 21 a 22 ⋯ a 2 ( i − 1 ) b 2 a 1 ( i + 1 ) ⋯ a 1 n ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n ( i − 1 ) b n a 1 ( i + 1 ) ⋯ a 1 n ∣ a m n = ∑ ( x m − x ˉ m ) ( x n − x ˉ n ) b i = ∑ ( x i − x ˉ i ) ( y − y ˉ ) \color{#FF8080} \qquad\qquad 综上, \color{#AA66FF} \begin{cases} \begin{aligned} w_0 = \bar{y} -\sum\limits_{i = 1}^{n}{w_i \bar{x}_i} \end{aligned} \\ \\ \begin{aligned} w_i = \frac{D_i}{D} \end{aligned} \\ \end{cases} ,其中 \begin{cases} \begin{aligned} D = \begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \\ \end{vmatrix} \end{aligned} \\ \\ \begin{aligned} D_i = \begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1(i-1)} & b_1 & a_{1(i+1)} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2(i-1)} & b_2 & a_{1(i+1)} & \cdots & a_{1n} \\ \vdots & \vdots & \ddots & \vdots & \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{n(i-1)} & b_n & a_{1(i+1)} & \cdots & a_{1n} \\ \end{vmatrix} \\ \end{aligned} \\ \\ \begin{aligned} a_{mn} = \sum(x_m - \bar{x}_m)(x_n - \bar{x}_n) \\ \end{aligned} \\ \\ \begin{aligned} b_i = \sum(x_i - \bar{x}_i)(y - \bar{y}) \\ \end{aligned} \\ \end{cases} w0=yˉi=1nwixˉiwi=DDiD=a11a21an1a12a22an2a1na2nannDi=a11a21an1a12a22an2a1(i1)a2(i1)an(i1)b1b2bna1(i+1)a1(i+1)a1(i+1)a1na1na1namn=(xmxˉm)(xnxˉn)bi=(xixˉi)(yyˉ)

就 这 样 的 结 果 来 看 , 我 们 很 明 显 地 可 以 感 觉 到 , 手 动 计 算 的 计 算 量 非 常 之 大 \color{#00A000} \qquad\qquad 就这样的结果来看,我们很明显地可以感觉到,手动计算的计算量非常之大

n 2 个 a m n 和 n 个 b i , 每 个 都 需 要 N 次 相 乘 累 加 计 算 \color{#00A000} \qquad\qquad n^2个a_{mn}和n个b_i,每个都需要N次相乘累加计算 n2amnnbiN

计 算 完 后 构 成 ( n + 1 ) 个 行 列 式 D 、 D i , 共 需 要 ( n + 1 ) 次 n 阶 行 列 式 计 算 \color{#00A000} \qquad\qquad 计算完后构成(n + 1)个行列式D、D_i,共需要(n + 1)次n阶行列式计算 (n+1)DDi(n+1)n

而 行 列 式 计 算 的 复 杂 度 是 比 较 高 的 ( \color{#00A000} \qquad\qquad 而行列式计算的复杂度是比较高的( 高斯消元法 ‾ \underline{\textbf{高斯消元法}} 高斯消元法 的 复 杂 度 O ( n 3 ) ) , 因 此 手动计算的计算量非常之大 \color{#00A000} 的复杂度O(n^3)),因此\textbf{手动计算的计算量非常之大} O(n3)手动计算的计算量非常之大

下 面 我 们 从 矩 阵 形 式 来 考 虑 \color{#00A000} \qquad\qquad 下面我们从矩阵形式来考虑


矩 阵 形 式 : \color{#FF8080} \qquad 矩阵形式:
\qquad\qquad 参考链接1:多元线性回归最小二乘法及其应用 ‾ \underline{\textbf{参考链接1:多元线性回归最小二乘法及其应用}} 参考链接1:多元线性回归最小二乘法及其应用
\qquad\qquad 参考链接2:计量经济学:多元线性回归的最小二乘估计 ‾ \underline{\textbf{参考链接2:计量经济学:多元线性回归的最小二乘估计}} 参考链接2:计量经济学:多元线性回归的最小二乘估计
\qquad\qquad 参考链接3:线性回归与最小二乘法 ‾ \underline{\textbf{参考链接3:线性回归与最小二乘法}} 参考链接3:线性回归与最小二乘法

共 n 个 自 变 量 , N 个 数 据 样 例 \color{#FF8080} \qquad\qquad 共n个自变量,N个数据样例 nN

y ^ i = w 0 + w 1 x 1 i + w 2 x 2 i + ⋯ + w n x n i    ( i = 1 , 2 , ⋯   , N ) \color{#FF8080} \qquad\qquad \hat{y}_i = w_0 + w_1 x_{1i} + w_2 x_{2i} + \cdots + w_n x_{ni} \; (i = 1, 2, \cdots, N) y^i=w0+w1x1i+w2x2i++wnxni(i=1,2,,N)

则 损 失 Q = ∑ i = 1 N e i 2 = ∑ i = 1 N ( y i − y ^ i ) 2 = ∑ i = 1 N [ y i − ( w 0 + w 1 x 1 i + w 2 x 2 i + ⋯ + w n x n i ) ] 2 \color{#FF8080} \qquad\qquad 则损失Q = \sum\limits_{i=1}^{N}{{e_i}^2} = \sum\limits_{i=1}^{N}{(y_i - \hat{y}_i)^2} = \sum\limits_{i=1}^{N}{[y_i - (w_0 + w_1 x_{1i} + w_2 x_{2i} + \cdots + w_n x_{ni})]^2} Q=i=1Nei2=i=1N(yiy^i)2=i=1N[yi(w0+w1x1i+w2x2i++wnxni)]2

根 据 最 小 二 乘 原 理 , 有 \color{#FF8080} \qquad\qquad 根据最小二乘原理,有

{ ∂ Q ∂ w 0 = 0 ∂ Q ∂ w 1 = 0 ∂ Q ∂ w 2 = 0 ⋮ ∂ Q ∂ w n = 0 \color{#FF8080} \qquad\qquad\qquad \begin{cases} \begin{aligned} \frac {\partial Q} {\partial w_0} = 0 \end{aligned} \\ \\ \begin{aligned} \frac {\partial Q} {\partial w_1} = 0 \end{aligned} \\ \\ \begin{aligned} \frac {\partial Q} {\partial w_2} = 0 \end{aligned} \\ \\ \qquad \vdots \\ \\ \begin{aligned} \frac {\partial Q} {\partial w_n} = 0 \end{aligned} \\ \end{cases} w0Q=0w1Q=0w2Q=0wnQ=0

即 \color{#FF8080} \qquad\qquad 即

{ ∑ ( w 0 + w 1 x 1 i + w 2 x 2 i + ⋯ + w n x n i ) = ∑ y i ∑ ( w 0 + w 1 x 1 i + w 2 x 2 i + ⋯ + w n x n i ) x 1 i = ∑ y i x 1 i ∑ ( w 0 + w 1 x 1 i + w 2 x 2 i + ⋯ + w n x n i ) x 2 i = ∑ y i x 2 i ⋮ ∑ ( w 0 + w 1 x 1 i + w 2 x 2 i + ⋯ + w n x n i ) x n i = ∑ y i x n i \color{#FF8080} \qquad\qquad\qquad \begin{cases} \begin{aligned} \sum{(w_0 + w_1 x_{1i} + w_2 x_{2i} + \cdots + w_nx_{ni})} = \sum{y_i} \end{aligned} \\ \\ \begin{aligned} \sum{(w_0 + w_1 x_{1i} + w_2 x_{2i} + \cdots + w_nx_{ni}) x_{1i}} = \sum{y_i x_{1i}} \end{aligned} \\ \\ \begin{aligned} \sum{(w_0 + w_1 x_{1i} + w_2 x_{2i} + \cdots + w_nx_{ni}) x_{2i}} = \sum{y_i x_{2i}} \end{aligned} \\ \\ \qquad \qquad \qquad \qquad \qquad \qquad \vdots \\ \\ \begin{aligned} \sum{(w_0 + w_1 x_{1i} + w_2 x_{2i} + \cdots + w_nx_{ni}) x_{ni}} = \sum{y_i x_{ni}} \end{aligned} \\ \end{cases} (w0+w1x1i+w2x2i++wnxni)=yi(w0+w1x1i+w2x2i++wnxni)x1i=yix1i(w0+w1x1i+w2x2i++wnxni)x2i=yix2i(w0+w1x1i+w2x2i++wnxni)xni=yixni

解 这 n + 1 个 方 程 组 成 的 线 性 方 程 组 , 可 以 得 到 n + 1 个 待 估 参 数 β = ( w 0 w 1 w 2 ⋮ w n ) \color{#FF8080} \qquad\qquad 解这 n + 1 个方程组成的线性方程组,可以得到 n + 1 个待估参数\beta = \begin{pmatrix} w_0 \\ w_1 \\ w_2 \\ \vdots \\ w_n \\ \end{pmatrix} n+1线n+1β=w0w1w2wn

即 \color{#FF8080} \qquad\qquad 即

( N ∑ x 1 i ∑ x 2 i ⋯ ∑ x n i ∑ x 1 i ∑ x 1 i 2 ∑ x 1 i x 2 i ⋯ ∑ x 1 i x n i ∑ x 2 i ∑ x 2 i x 1 i ∑ x 2 i 2 ⋯ ∑ x 2 i x n i ⋮ ⋮ ⋮ ⋱ ⋮ ∑ x n i ∑ x n i x 1 i ∑ x n i x 2 i ⋯ ∑ x n i 2 ) ( w 0 w 1 w 2 ⋮ w n )    =    ( 1 1 ⋯ 1 x 11 x 12 ⋯ x 1 N x 21 x 22 ⋯ x 2 N ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯ x n N ) ( y 1 y 2 y 3 ⋮ y N ) ( n + 1 ) × ( n + 1 ) ( n + 1 ) × 1 ( n + 1 ) × N N × 1 \color{#FF8080} \qquad\qquad\qquad \begin{matrix} \begin{pmatrix} N & \sum{x_{1i}} & \sum{x_{2i}} & \cdots & \sum{x_{ni}} \\ \sum{x_{1i}} & \sum{{x_{1i}}^2} & \sum{x_{1i} x_{2i}} & \cdots & \sum{x_{1i}x_{n_i}} \\ \sum{x_{2i}} & \sum{x_{2i} x_{1i}} & \sum{{x_{2i}}^2} & \cdots & \sum{x_{2i}x_{n_i}} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \sum{x_{ni}} & \sum{x_{ni} x_{1i}} & \sum{x_{ni} x_{2i}} & \cdots & \sum{{x_{n_i}}^2} \\ \end{pmatrix} & \begin{pmatrix} w_0 \\ w_1 \\ w_2 \\ \vdots \\ w_n \\ \end{pmatrix} \; = \; & \begin{pmatrix} 1 & 1 & \cdots & 1 \\ x_{11} & x_{12} & \cdots & x_{1N} \\ x_{21} & x_{22} & \cdots & x_{2N} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{nN} \end{pmatrix} & \begin{pmatrix} y_1 \\ y_2 \\ y_3 \\ \vdots \\ y_N \\ \end{pmatrix} \\ \\ \small{(n + 1) \times (n + 1)} & \small{(n+1) \times 1} & \small{(n + 1) \times N} & \small{N \times 1} \end{matrix} Nx1ix2ixnix1ix1i2x2ix1ixnix1ix2ix1ix2ix2i2xnix2ixnix1ixnix2ixnixni2(n+1)×(n+1)w0w1w2wn=(n+1)×11x11x21xn11x12x22xn21x1Nx2NxnN(n+1)×Ny1y2y3yNN×1

即 \color{#FF8080} \qquad\qquad 即

( X T X ) β = X T Y \color{#FF8080} \qquad\qquad\qquad (X^T X) \beta = X^T Y (XTX)β=XTY

其 中 \color{#FF8080} \qquad\qquad 其中

β = ( w 0 w 1 w 2 ⋮ w n ) 每 行 表 示 线 性 回 归 的 评 估 参 数 ( 系 数 ) X = ( 1 x 11 ⋯ x n 1 1 x 12 ⋯ x n 2 1 x 13 ⋯ x n 3 ⋮ ⋮ ⋱ ⋮ 1 x 1 N ⋯ x n N ) 每 行 表 示 一 个 样 本 的 各 个 输 入 参 数 Y = ( y 1 y 2 y 3 ⋮ y N ) 每 行 表 示 一 个 样 本 的 输 出 结 果 \color{#FF8080} \qquad\qquad\qquad \begin{array}{ll} \beta = \begin{pmatrix} w_0 \\ w_1 \\ w_2 \\ \vdots \\ w_n \\ \end{pmatrix} & 每行表示线性回归的评估参数(系数) \\ \\ X = \begin{pmatrix} 1 & x_{11} & \cdots & x_{n1} \\ 1 & x_{12} & \cdots & x_{n2} \\ 1 & x_{13} & \cdots & x_{n3} \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_{1N} & \cdots & x_{nN} \end{pmatrix} & 每行表示一个样本的各个输入参数 \\ \\ Y = \begin{pmatrix} y_1 \\ y_2 \\ y_3 \\ \vdots \\ y_N \\ \end{pmatrix} & 每行表示一个样本的输出结果 \end{array} β=w0w1w2wnX=1111x11x12x13x1Nxn1xn2xn3xnNY=y1y2y3yN线

由 于 X T X 满 秩 ( 或 者 即 便 极 少 的 情 况 不 满 秩 , 亦 可 对 原 始 数 据 进 行 特 征 筛 选 或 正 则 化 处 理 ) \color{#FF8080} \qquad\qquad 由于X^TX满秩(或者即便极少的情况不满秩,亦可对原始数据进行特征筛选或正则化处理) XTX便

可 得 : \color{#FF8080} \qquad\qquad 可得:

β = ( X T X ) − 1 X T Y \color{#FF8080} \qquad\qquad\qquad \beta =(X^T X)^{-1} X^T Y β=(XTX)1XTY


上 述 过 程 也 可 直 接 用 矩 阵 表 示 : \color{#FF8080} \qquad\qquad 上述过程也可直接用矩阵表示:

Q = ∑ i = 1 N e i 2 = e T e = ( Y − X β ) T ( Y − X β ) \color{#FF8080} \qquad\qquad Q = \sum\limits_{i=1}^{N}{{e_i}^2} = e^T e = (Y - X \beta)^T (Y - X \beta) Q=i=1Nei2=eTe=(YXβ)T(YXβ)

令 ∂ ∂ β ( Y T − β T X T ) ( Y − X β ) = 0 \color{#FF8080} \qquad\qquad 令 \begin{aligned} \frac {\partial} {\partial \beta} (Y^T - \beta ^ T X^T)(Y - X \beta) = 0 \end{aligned} β(YTβTXT)(YXβ)=0

即 ∂ ∂ β ( Y T Y − Y T X β − β T X T Y + β T X T X β ) = 0 \color{#FF8080} \qquad\qquad 即 \begin{aligned} \frac {\partial} {\partial \beta} (Y^T Y - Y^T X \beta - \beta ^ T X^T Y + \beta^T X^T X \beta) = 0 \end{aligned} β(YTYYTXββTXTY+βTXTXβ)=0

即 ∂ ∂ β ( Y T Y − 2 Y T X β + β T X T X β ) = 0 \color{#FF8080} \qquad\qquad 即 \begin{aligned} \frac {\partial} {\partial \beta} (Y^T Y - 2 Y^T X \beta + \beta^T X^T X \beta) = 0 \end{aligned} β(YTY2YTXβ+βTXTXβ)=0

矩阵、向量 求导的性质:


根 据 矩 阵 向 量 求 导 的 性 质 , 可 知 : \color{#FF8080} \qquad\qquad 根据矩阵向量求导的性质,可知:

∂ Y T Y β = 0 , ∂ Y T X β β = X T Y , ∂ β T X T X β β = 2 X T X β \color{#FF8080} \qquad\qquad\qquad \begin{aligned} \frac {\partial Y^T Y} {\beta} = 0, \frac {\partial Y^T X \beta} {\beta} = X^T Y, \frac {\partial \beta^T X^T X \beta} {\beta} = 2X^T X \beta \end{aligned} βYTY=0βYTXβ=XTYββTXTXβ=2XTXβ

于 是 有 − 2 X T Y + 2 X T X β = 0 \color{#FF8080} \qquad\qquad 于是有-2 X^T Y + 2 X^T X \beta = 0 2XTY+2XTXβ=0

即 X T X β = X T Y \color{#FF8080} \qquad\qquad\qquad 即 X^T X \beta = X^T Y XTXβ=XTY

即 β = ( X T X ) − 1 X T Y \color{#FF8080} \qquad\qquad\qquad 即 \beta = (X^T X)^{-1} X^T Y β=(XTX)1XTY

综 上 , β = ( X T X ) − 1 X T Y \color{#FF8080} \qquad\qquad 综上, \color{#AA66FF} \beta = (X^T X)^{-1} X^T Y β=(XTX)1XTY

其 中 { β = ( w 0 w 1 w 2 ⋮ w n ) 每 行 表 示 线 性 回 归 的 评 估 参 数 ( 系 数 ) X = ( 1 x 11 ⋯ x n 1 1 x 12 ⋯ x n 2 1 x 13 ⋯ x n 3 ⋮ ⋮ ⋱ ⋮ 1 x 1 N ⋯ x n N ) 每 行 表 示 一 个 样 本 的 各 个 输 入 参 数 Y = ( y 1 y 2 y 3 ⋮ y N ) 每 行 表 示 一 个 样 本 的 输 出 结 果 \color{#AA66FF} \qquad\qquad\qquad\qquad 其中 \begin{cases} \beta = \begin{pmatrix} w_0 \\ w_1 \\ w_2 \\ \vdots \\ w_n \\ \end{pmatrix} & 每行表示线性回归的评估参数(系数) \\ \\ X = \begin{pmatrix} 1 & x_{11} & \cdots & x_{n1} \\ 1 & x_{12} & \cdots & x_{n2} \\ 1 & x_{13} & \cdots & x_{n3} \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_{1N} & \cdots & x_{nN} \end{pmatrix} & 每行表示一个样本的各个输入参数 \\ \\ Y = \begin{pmatrix} y_1 \\ y_2 \\ y_3 \\ \vdots \\ y_N \\ \end{pmatrix} & 每行表示一个样本的输出结果 \end{cases} β=w0w1w2wnX=1111x11x12x13x1Nxn1xn2xn3xnNY=y1y2y3yN线

注 : \color{#80E0FF} \qquad\qquad 注:
β = ( X T X ) − 1 X T Y = X − 1 ( X T ) − 1 X T Y = X − 1 Y 的 化 简 方 法 是 错 误 的 \color{#80E0FF} \qquad\qquad\qquad \beta = (X^T X)^{-1} X^T Y = X^{-1} (X^T)^{-1} X^T Y = X^{-1}Y的化简方法是错误的 β=(XTX)1XTY=X1(XT)1XTY=X1Y
因 为 X 不 一 定 是 方 阵 , 即 便 是 方 阵 也 未 必 可 逆 \color{#80E0FF} \qquad\qquad\qquad 因为X不一定是方阵,即便是方阵也未必可逆 X便
β = ( X T X ) − 1 X T Y 的 记 法 已 是 最 简 \color{#80E0FF} \qquad\qquad\qquad \beta = (X^T X)^{-1} X^T Y的记法已是最简 β=(XTX)1XTY


根 据 上 述 推 广 我 们 看 到 最 小 二 乘 法 的 解 析 解 为 β = ( X T X ) − 1 X T Y \color{#6666FF} 根据上述推广我们看到最小二乘法的解析解为 \beta = (X^T X)^{-1} X^T Y 广β=(XTX)1XTY
最 小 二 乘 法 仍 存 在 着 一 些 缺 点 : \color{#6666FF} 最小二乘法仍存在着一些缺点:
① . X T X 可 能 不 可 逆 \color{#AA66FF} \qquad ①.X^T X 可能不可逆 .XTX
包 括 以 下 情 形 : \color{#6666FF} \qquad\qquad 包括以下情形:
1 。 样 本 个 数 < 参 数 个 数 \color{#6666FF} \qquad\qquad\qquad 1^。样本个数 < 参数个数 1<
2 。 一 个 样 本 的 特 征 与 其 他 样 本 线 性 相 关 \color{#6666FF} \qquad\qquad\qquad 2^。一个样本的特征与其他样本线性相关 2线
解 决 方 法 : \color{#FFC000} \qquad\qquad 解决方法:
1 。 增 加 样 本 量 \color{#FFC000} \qquad\qquad\qquad 1^。增加样本量 1
2 。 筛 选 出 线 性 无 关 的 特 征 , 保 证 不 存 在 线 性 相 关 的 特 征 \color{#FFC000} \qquad\qquad\qquad 2^。筛选出线性无关的特征,保证不存在线性相关的特征 2线线
3 。 采 用 正 则 化 的 方 法 \color{#FFC000} \qquad\qquad\qquad 3^。采用正则化的方法 3
如 , L 2 正 则 化 , 解 析 解 为 \color{#FFA5FF} \qquad\qquad\qquad\qquad 如,\text{L}2正则化,解析解为 L2
β = ( X T X + λ E ) − 1 X T Y \color{#FFA5FF} \qquad\qquad\qquad\qquad\qquad\quad \beta = (X^T X + \lambda E)^{-1} X^T Y β=(XTX+λE)1XTY
或 β = ( X T X + N λ E ) − 1 X T Y \color{#FFA5FF} \qquad\qquad\qquad\qquad\qquad 或 \beta = (X^T X + N\lambda E)^{-1} X^T Y β=(XTX+NλE)1XTY
( 有 没 有 N 取 决 于 损 失 函 数 中 均 方 误 差 部 分 有 没 有 取 平 均 ) \color{#FFA5FF} \qquad\qquad\qquad\qquad\qquad (有没有N取决于损失函数中均方误差部分有没有取平均) N
② . 最 小 二 乘 法 直 接 求 导 , 非 线 性 回 归 中 , 不 一 定 所 有 函 数 在 有 意 义 的 空 间 内 都 有 导 数 \color{#AA66FF} \qquad ②.最小二乘法直接求导,非线性回归中,不一定所有函数在有意义的空间内都有导数 .线
③ . 最 小 二 乘 法 直 接 将 极 小 值 作 为 最 小 值 , 非 线 性 回 归 中 , 这 样 做 有 失 偏 颇 ) \color{#AA66FF} \qquad ③.最小二乘法直接将极小值作为最小值,非线性回归中,这样做有失偏颇) .线
   ( 梯 度 下 降 则 比 较 好 的 规 避 此 项 缺 点 ) \color{#AA66FF} \qquad\quad\; (梯度下降则比较好的规避此项缺点)

2、梯度下降法

预 测 函 数 y ^ = p ( X ) \color{#FFC000} 预测函数 \hat{y} = p(X) y^=p(X)

需 要 最 小 化 误 差 G ( β ) = ∑ ( y ^ − y ) 2 \color{#FFC000} 需要最小化误差G(\beta) = \sum(\hat{y} - y)^2 G(β)=(y^y)2

而 最 小 化 误 差 的 过 程 , 我 们 可 以 分 多 步 迭 代 去 搜 索 , 如 下 图 所 示 : \color{#FFC000} 而最小化误差的过程,我们可以分多步迭代去搜索,如下图所示:

在这里插入图片描述

这 个 迭 代 的 搜 索 过 程 , 我 们 可 以 用 公 式 表 示 为 : \color{#FFC000} 这个迭代的搜索过程,我们可以用公式表示为:

β i new = β i old − α ∂ G ( β ) ∂ β i ∣ β = β old 其 中 , α 代 表 学 习 率 , 即 每 步 搜 索 下 降 的 步 伐 大 小 , 一 般 设 置 比 较 小 ( 0.001 ∼ 0.1 即 可 ) \color{#FFC000} \begin{aligned} & {\beta_i}_{\text{new}} = {\beta_i}_{\text{old}} - \alpha \frac {\partial G(\beta)} {\partial \beta_i} \bigg|_{\beta = \beta_{\text{old}}} \\ \\ & 其中,\alpha 代表学习率,即每步搜索下降的步伐大小,一般设置比较小(0.001 \sim 0.1即可) \end{aligned} βinew=βioldαβiG(β)β=βoldα0.0010.1

当 梯 度 下 降 的 高 度    ∣ β new − β old ∣    小 于 某 个 阈 值    θ    时 , 停 止 更 新 \color{#FFC000} 当梯度下降的高度 \; \mid \beta_{\text{new}} - \beta_{\text{old}} \mid \; 小于某个阈值 \; \theta \; 时,停止更新 βnewβoldθ


总 结 一 下 , 梯 度 下 降 法 的 上 述 步 骤 : \color{#FFC000} 总结一下,梯度下降法的上述步骤:

① . 确 定 梯 度 下 降 的 步 伐 大 小 α , 即 学 习 率 \color{#FFC000} \qquad ①. 确定梯度下降的步伐大小\alpha,即学习率 .α

② . 给 定 一 个 任 意 的 初 始 参 数 值 β 初 \color{#FFC000} \qquad ②. 给定一个任意的初始参数值\beta_初 .β

③ . 根 据 梯 度 ∂ G ( β ) ∂ β , 确 定 梯 度 下 降 的 方 向 根 据 β i new = β i old − α ∂ G ( β ) ∂ β i ∣ β = β old 更 新 β \color{#FFC000} \qquad \begin{aligned} ③. & 根据梯度 \frac {\partial G(\beta)} {\partial \beta} ,确定梯度下降的方向 \\ & 根据 {\beta_i}_{\text{new}} = {\beta_i}_{\text{old}} - \alpha \frac {\partial G(\beta)} {\partial \beta_i} \bigg|_{\beta = \beta_{\text{old}}} 更新\beta \end{aligned} .βG(β)βinew=βioldαβiG(β)β=βoldβ

④ . 设 置 梯 度 下 降 高 度 的 阈 值    θ    当 ∣ β new − β old ∣ < θ    时 , 停 止 梯 度 下 降 \color{#FFC000} \qquad \begin{aligned} ④. & 设置梯度下降高度的阈值 \; \theta \; \\ & 当 \mid \beta_{\text{new}} - \beta_{\text{old}} \mid < \theta \; 时,停止梯度下降 \end{aligned} .θβnewβold<θ

四、代码案例(Python)

案 例 1 : \color{#FFA5FF} 案例1: 1

根 据 y = 5 x + 10 生 成 100 个 带 噪 声 的 数 据 , 为 其 进 行 线 性 回 归 \color{#FFA5FF} \qquad 根据 y = 5x + 10 生成100个带噪声的数据,为其进行线性回归 y=5x+10100线

代 码 示 例 : \color{#FF8080} 代码示例:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# 生成 100份 x 和对应的带噪声的 y,绘制散点图
x = np.linspace(1, 100, 100)
y = 5 * x + 10 + 10 * np.random.randn(100)
plt.plot(x, y, ".k")

"""
注意点:
	sklearn的线性回归模型,在拟合和预测时,输入和输出都是二维的
"""
# 加载sklearn的线性回归模型,根据二维的x、y进行拟合
model = LinearRegression()
model.fit(x.reshape(100, 1), y.reshape(100, 1))

# 根据拟合的模型预测结果,在散点图上绘制拟合的直线
y_p = model.predict(x.reshape(100, 1))
plt.plot(x, y, ".k")
plt.plot(x, y_p, "b")

# 单个案例的预测
print(model.predict(np.array(10).reshape(1, 1)))

输 出 示 例 : \color{#FF8080} 输出示例:
\qquad
\qquad
[ [ 60.52575285 ] ] \color{#FF8080} \qquad [[60.52575285]] [[60.52575285]]

案 例 2 : \color{#FFA5FF} 案例2: 2

读 取 data.csv 文 件 , 做 出 【 食 品 消 费 】 关 于 【 家 庭 收 入 】 和 【 人 数 】 的 线 性 回 归 模 型 \color{#FFA5FF} \qquad 读取\text{data.csv}文件,做出【食品消费】关于【家庭收入】和【人数】的线性回归模型 data.csv线
data.csv 文 件 内 容 如 下 : \color{#FFA5FF} \qquad \text{data.csv}文件内容如下: data.csv
\qquad\qquad

代 码 示 例 : \color{#FF8080} 代码示例:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# 读取csv文件数据
data = pd.read_csv("data.csv")

# 将数据类型转换为numpy
data = data.values

# 分离出输入x和输出y
x=data[:, 1:3]
y=data[:, 3]

# 加载sklearn的线性回归模型,根据二维的x、y进行拟合
model = LinearRegression()
model.fit(x, y)

# 根据模型加载预测结果
y_predict=model.predict(x)

# 绘图(横轴y,纵轴y_predict)
plt.plot(y, y_predict, ".b")

输 出 示 例 : \color{#FF8080} 输出示例:
\qquad

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
最小二乘法是一种用于解决线性方程组的方法,它的本质是通过投影的思想来求解线性方程组的解。最小二乘法的目标是找到一个直线或曲线,使得该直线或曲线与给定的数据点的误差平方和最小。具体来说,在线性代数中,最小二乘法可以通过求解法方程组来找到直线或曲线的参数。通过最小二乘法,我们可以得到一个最优的拟合曲线,使得该曲线与数据点之间的误差最小化。在求解过程中,我们可以利用正交子空间的性质来简化计算,并得到最小二乘法的解析解。总之,最小二乘法是线性代数中常用的方法,用于拟合数据并求解线性方程组的解。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【线性代数】最小二乘法的本质、施密特正交化的“前世今生”,投影的核心思想](https://blog.csdn.net/m0_62011685/article/details/126022464)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [线性代数笔记4:最小二乘法](https://blog.csdn.net/crazy_scott/article/details/79659230)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

God-Excious

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值