注:笔记 来自课程 人工智能必备数学知识
Tips①:只是记录从这个课程学到的东西,不是推广、没有安利
Tips②:本笔记主要目的是为了方便自己遗忘查阅,或过于冗长、或有所缺省、或杂乱无章,见谅
Tips③:本笔记使用markdown编写,相关缩进为了方便使用了LaTeX公式的\qquad
,复制粘贴请注意
Tips④:本笔记部分内容为自己的整理拓展,课程中并未提及
一、定义
回归
\color{#6666FF} \textbf{回归}
回归
根
据
已
有
的
数
据
,
建
立
因
变
量
Y
与
自
变
量
X
的
函
数
关
系
的
模
型
:
\color{#6666FF} \qquad 根据已有的数据,建立因变量Y与自变量X的函数关系的模型:
根据已有的数据,建立因变量Y与自变量X的函数关系的模型:
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成线性关系:
在回归的基础上,要求因变量Y与自变量X成线性关系:
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+⋯+wnxneg:y=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∑(y−y^)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+b∂a∂loss=0∂b∂loss=0⟹⎩⎪⎪⎪⎨⎪⎪⎪⎧a=∑(x−xˉ)2∑(x−xˉ)(y−yˉ)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+b−y)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} 故∂b∂loss=2∑(ax+b−y)=2(a∑x+∑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} 故∂a∂loss=2∑(ax+yˉ−axˉ−y)x=2∑(ax2+xyˉ−axˉx−xy)=2[a∑(x2−xˉx)−∑(xy−xyˉ)]=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=∑(x2−xˉx)∑(xy−xyˉ)=∑(x2−xˉx)+nxˉ2−nxˉ2∑(xy−xyˉ)+nxˉyˉ−nxˉyˉ=∑(x2−xˉx)+∑(−xˉx+xˉ2)∑(xy−xyˉ)+∑(−xˉy+xˉyˉ)=∑(x−xˉ)2∑(x−xˉ)(y−yˉ)
综 上 , { 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=∑(x−xˉ)2∑(x−xˉ)(y−yˉ)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=390−9.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+⋯+wnxn∂w0∂loss=0∂w1∂loss=0⋮∂wn∂loss=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=1∑nwixi−y)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} 故∂w0∂loss=2∑(w0+i=1∑nwixi−y)=2[∑w0+i=1∑n(wi∑xi)−∑y]=2(Nw0+i=1∑n(wiNxˉi)−Nyˉ)=2N(w0+i=1∑nwixˉi−yˉ)=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=1∑nwixˉ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} 故∂wm∂loss=2∑(w0+i=1∑nwixi−y)xm=2∑[i=1∑nwi(xi−xˉi)−(y−yˉ)]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=1∑nwi(xi−xˉi)xm=∑(y−yˉ)xmi=1∑n(wi∑(xi−xˉi)xm)=∑(y−yˉ)xmi=1∑n[wi(∑(xi−xˉi)xm−Nxˉixˉm+Nxˉixˉm)]=∑(y−yˉ)xm−Nxˉmy+Nxˉmyi=1∑n[wi(∑(xi−xˉi)xm−∑(xi−xˉi)xˉm)]=∑(y−yˉ)xm−∑(y−yˉ)xˉmi=1∑n[wi∑(xi−xˉi)(xm−xˉm)]=∑(y−yˉ)(xm−xˉm)
由 此 我 们 得 到 n 个 关 于 w i 的 线 性 方 程 组 : \color{#FF8080} \qquad\qquad 由此我们得到 n 个关于w_i的线性方程组: 由此我们得到n个关于wi的线性方程组:
{ 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=b2⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯an1w1+an2w2+⋯+annwn=bn其中,{amnbi=∑(xm−xˉm)(xn−xˉn)=∑(xi−xˉi)(y−yˉ)
显 然 , 根 据 线 性 代 数 的 \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=∣∣∣∣∣∣∣∣∣a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann∣∣∣∣∣∣∣∣∣Di=∣∣∣∣∣∣∣∣∣a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1(i−1)a2(i−1)⋮an(i−1)b1b2⋮bna1(i+1)a1(i+1)⋮a1(i+1)⋯⋯⋱⋯a1na1n⋮a1n∣∣∣∣∣∣∣∣∣
其
中
,
D
为
系
数
行
列
式
,
D
i
为
将
D
中
的
第
i
列
换
成
常
数
项
后
的
行
列
式
\color{#FF8080} \qquad\qquad 其中,D为系数行列式,D_i为将D中的第i列换成常数项后的行列式
其中,D为系数行列式,Di为将D中的第i列换成常数项后的行列式
可 求 得 : 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=1∑nwixˉiwi=DDi,其中⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧D=∣∣∣∣∣∣∣∣∣a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann∣∣∣∣∣∣∣∣∣Di=∣∣∣∣∣∣∣∣∣a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1(i−1)a2(i−1)⋮an(i−1)b1b2⋮bna1(i+1)a1(i+1)⋮a1(i+1)⋯⋯⋱⋯a1na1n⋮a1n∣∣∣∣∣∣∣∣∣amn=∑(xm−xˉm)(xn−xˉn)bi=∑(xi−xˉi)(y−yˉ)
就 这 样 的 结 果 来 看 , 我 们 很 明 显 地 可 以 感 觉 到 , 手 动 计 算 的 计 算 量 非 常 之 大 \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次相乘累加计算 n2个amn和n个bi,每个都需要N次相乘累加计算
计 算 完 后 构 成 ( n + 1 ) 个 行 列 式 D 、 D i , 共 需 要 ( n + 1 ) 次 n 阶 行 列 式 计 算 \color{#00A000} \qquad\qquad 计算完后构成(n + 1)个行列式D、D_i,共需要(n + 1)次n阶行列式计算 计算完后构成(n+1)个行列式D、Di,共需要(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个数据样例 共n个自变量,N个数据样例
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=1∑Nei2=i=1∑N(yi−y^i)2=i=1∑N[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} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧∂w0∂Q=0∂w1∂Q=0∂w2∂Q=0⋮∂wn∂Q=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个待估参数β=⎝⎜⎜⎜⎜⎜⎛w0w1w2⋮wn⎠⎟⎟⎟⎟⎟⎞
即 \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} ⎝⎜⎜⎜⎜⎜⎛N∑x1i∑x2i⋮∑xni∑x1i∑x1i2∑x2ix1i⋮∑xnix1i∑x2i∑x1ix2i∑x2i2⋮∑xnix2i⋯⋯⋯⋱⋯∑xni∑x1ixni∑x2ixni⋮∑xni2⎠⎟⎟⎟⎟⎟⎞(n+1)×(n+1)⎝⎜⎜⎜⎜⎜⎛w0w1w2⋮wn⎠⎟⎟⎟⎟⎟⎞=(n+1)×1⎝⎜⎜⎜⎜⎜⎛1x11x21⋮xn11x12x22⋮xn2⋯⋯⋯⋱⋯1x1Nx2N⋮xnN⎠⎟⎟⎟⎟⎟⎞(n+1)×N⎝⎜⎜⎜⎜⎜⎛y1y2y3⋮yN⎠⎟⎟⎟⎟⎟⎞N×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} β=⎝⎜⎜⎜⎜⎜⎛w0w1w2⋮wn⎠⎟⎟⎟⎟⎟⎞X=⎝⎜⎜⎜⎜⎜⎛111⋮1x11x12x13⋮x1N⋯⋯⋯⋱⋯xn1xn2xn3⋮xnN⎠⎟⎟⎟⎟⎟⎞Y=⎝⎜⎜⎜⎜⎜⎛y1y2y3⋮yN⎠⎟⎟⎟⎟⎟⎞每行表示线性回归的评估参数(系数)每行表示一个样本的各个输入参数每行表示一个样本的输出结果
由 于 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=1∑Nei2=eTe=(Y−Xβ)T(Y−Xβ)
令 ∂ ∂ β ( 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)(Y−Xβ)=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} 即∂β∂(YTY−YTXβ−β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} 即∂β∂(YTY−2YTXβ+β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} 其中⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧β=⎝⎜⎜⎜⎜⎜⎛w0w1w2⋮wn⎠⎟⎟⎟⎟⎟⎞X=⎝⎜⎜⎜⎜⎜⎛111⋮1x11x12x13⋮x1N⋯⋯⋯⋱⋯xn1xn2xn3⋮xnN⎠⎟⎟⎟⎟⎟⎞Y=⎝⎜⎜⎜⎜⎜⎛y1y2y3⋮yN⎠⎟⎟⎟⎟⎟⎞每行表示线性回归的评估参数(系数)每行表示一个样本的各个输入参数每行表示一个样本的输出结果
注
:
\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=X−1(XT)−1XTY=X−1Y的化简方法是错误的
因
为
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−α∂βi∂G(β)∣∣∣∣β=βold其中,α代表学习率,即每步搜索下降的步伐大小,一般设置比较小(0.001∼0.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−α∂βi∂G(β)∣∣∣∣β=β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+10生成100个带噪声的数据,为其进行线性回归
代 码 示 例 : \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