机器学习笔记_多元线性回归
Ch1 多元线性回归函数模型函数形式f(x)=θ0+θ1x1+⋯+θpxpf(x)=\theta_{0}+\theta_{1} x_{1}+\cdots+\theta_{p} x_{p}f(x)=θ0+θ1x1+⋯+θpxp向量形式:通常一个向量指的都是列向量,向量的转置是行向量f(x)=∑i=0pθixi=θTx=xTθ=[θ0θ1⋮θp][(x0=1),x1,x2,…,xp]f(x)
目录
文章目录
Ch1 多元线性回归
函数模型
函数形式
f ( x ) = θ 0 + θ 1 x 1 + ⋯ + θ p x p f(x)=\theta_{0}+\theta_{1} x_{1}+\cdots+\theta_{p} x_{p} f(x)=θ0+θ1x1+⋯+θpxp
向量形式:
通常一个向量指的都是列向量,向量的转置是行向量
f ( x ) = ∑ i = 0 p θ i x i = θ T x = x T θ = [ θ 0 θ 1 ⋮ θ p ] [ ( x 0 = 1 ) , x 1 , x 2 , … , x p ] f(x)=\sum_{i=0}^{p} \theta_{i} x_{i}=\boldsymbol{\theta}^{T} x=x^{T} \boldsymbol{\theta} = \left[\begin{array}{c}\theta_{0} \\ \theta_{1} \\ \vdots \\ \theta_{p}\end{array}\right]\left[\left(x_{0}=1\right), x_{1}, x_{2}, \ldots, x_{p}\right] f(x)=i=0∑pθixi=θTx=xTθ=⎣⎢⎢⎢⎡θ0θ1⋮θp⎦⎥⎥⎥⎤[(x0=1),x1,x2,…,xp]
损失函数:最小均方误差MSE:
J ( θ ) = 1 2 ∑ i = 1 n ( x i T θ − y i ) 2 J(\theta)=\frac{1}{2} \sum_{i=1}^{n}\left(x_{i}^{T} \theta-y_{i}\right)^{2} J(θ)=21i=1∑n(xiTθ−yi)2
线性回归模型:求解损失函数的最小值
θ ∗ = a r g m i n J ( θ ) \theta^* = arg minJ(\theta) θ∗=argminJ(θ)
加入数据后的模型
n组数据
预测值:
Y ^ = X θ = [ X 1 T θ X 2 T θ … X n T θ ] = [ X 11 X 12 … X 1 p X 21 X 22 … X 2 p … X n 1 X n 2 … X n p ] [ θ 0 θ 1 ⋮ θ p ] \hat Y = X\theta=\left[\begin{array}{l} X_1^T\theta \\X_2^T\theta \\ \ldots \\X_n^T\theta \\ \end{array}\right]=\left[\begin{array}{l} X_{11}\space X_{12}\ldots X_{1p}\\X_{21}\space X_{22}\ldots X_{2p} \\ \ldots \\X_{n1}\space X_{n2}\ldots X_{np} \\\end{array}\right]\left[\begin{array}{c}\theta_{0} \\ \theta_{1} \\ \vdots \\ \theta_{p}\end{array}\right] Y^=Xθ=⎣⎢⎢⎡X1TθX2Tθ…XnTθ⎦⎥⎥⎤=⎣⎢⎢⎡X11 X12…X1pX21 X22…X2p…Xn1 Xn2…Xnp⎦⎥⎥⎤⎣⎢⎢⎢⎡θ0θ1⋮θp⎦⎥⎥⎥⎤
实际值label (n组数据n个label):
Y = [ y 1 y 2 ⋮ y n ] Y =\left[\begin{array}{c}y_1 \\ y_2\\ \vdots \\ y_n\end{array}\right] Y=⎣⎢⎢⎢⎡y1y2⋮yn⎦⎥⎥⎥⎤
模型求解
梯度下降法
Gradient Decent
θ : = θ − α ∇ θ J ( θ ) \theta:=\theta-\alpha \nabla_{\theta} J(\theta) θ:=θ−α∇θJ(θ)
J ( θ ) = 1 2 ∑ i = 1 n ( x i T θ − y i ) 2 J(\theta)=\frac{1}{2} \sum_{i=1}^{n}\left(x_{i}^{T} \theta-y_{i}\right)^{2} J(θ)=21i=1∑n(xiTθ−yi)2
其中算子:梯度是偏导数的自然扩展
∇ θ J = [ ∂ J ∂ θ 0 ⋯ ⋯ ∂ J ∂ θ p ] \nabla_{\theta} J=\left[\begin{array}{l}\frac{\partial J}{\partial \theta_{0}} \\ \cdots \\ \cdots \\ \frac{\partial J}{\partial \theta_{p}}\end{array}\right] ∇θJ=⎣⎢⎢⎡∂θ0∂J⋯⋯∂θp∂J⎦⎥⎥⎤
求损失函数的偏导:
∂ 1 θ j 2 ( x i T θ − y i ) 2 = ∂ 1 θ j 2 ( ∑ j = 0 p x i , j θ j − y i ) 2 x i = ( x i , 0 , … , x i , p ) T = ( ∑ j = 0 p x i , j θ j − y i ) ∂ θ j ( ∑ j = 0 p x i , j θ j − y i ) = ( f ( x i ) − y i ) x i , j \begin{array}{l}\frac{\partial 1}{\theta_{j} 2}\left(x_{i}^{T} \theta-y_{i}\right)^{2} \\ =\frac{\partial 1}{\theta_{j} 2}\left(\sum_{j=0}^{p} x_{i, j} \theta_{j}-y_{i}\right)^{2} \quad x_{i}=\left(x_{i, 0}, \ldots, x_{i, p}\right)^{T} \\ =\left(\sum_{j=0}^{p} x_{i, j} \theta_{j}-y_{i}\right) \frac{\partial}{\theta_{j}}\left(\sum_{j=0}^{p} x_{i, j} \theta_{j}-y_{i}\right) \\ =\left(f\left(x_{i}\right)-y_{i}\right) x_{i, j}\end{array} θj2∂1(xiTθ−yi)2=θj2∂1(∑j=0pxi,jθj−yi)2xi=(xi,0,…,xi,p)T=(∑j=0pxi,jθj−yi)θj∂(∑j=0pxi,jθj−yi)=(f(xi)−yi)xi,j
正规方程法
J ( θ ) = 1 2 ∥ Y − X θ ∥ 2 = 1 2 ( X θ − Y ) T ( X θ − Y ) = 1 2 ( θ T X T X θ − 2 Y T X θ + Y T Y ) \begin{aligned} J(\theta) &=\frac{1}{2}\|Y-X \theta\|^{2} \\ &=\frac{1}{2}(X \theta-Y)^{T}(X \theta-Y) \\ &=\frac{1}{2}\left(\theta^{T} X^{T} X \theta-2 Y^{T} X \theta+Y^{T} Y\right) \end{aligned} J(θ)=21∥Y−Xθ∥2=21(Xθ−Y)T(Xθ−Y)=21(θTXTXθ−2YTXθ+YTY)
注解:
∂ x T B x ∂ x = ( B + B T ) x ∂ x T a ∂ x = ∂ a T x ∂ x = a \begin{array}{l}\frac{\partial \mathbf{x}^{T} \mathbf{B} \mathbf{x}}{\partial \mathbf{x}}=\left(\mathbf{B}+\mathbf{B}^{T}\right) \mathbf{x} \\ \frac{\partial \mathbf{x}^{T} \mathbf{a}}{\partial \mathbf{x}}=\frac{\partial \mathbf{a}^{T} \mathbf{x}}{\partial \mathrm{x}}=\text { a }\\\end{array} ∂x∂xTBx=(B+BT)x∂x∂xTa=∂x∂aTx= a
我们令 B = X T X , B T = B ⟹ ( B + B B ) θ = 2 B θ B=X^TX,B^T=B\Longrightarrow (B+B^B)\theta = 2B\theta B=XTX,BT=B⟹(B+BB)θ=2Bθ
∇ θ J ( θ ) = ∂ J ( θ ) ∂ θ = 1 2 ( θ T X T X θ − 2 Y T X θ + Y T Y ) ∂ θ = X T X θ − ( Y T X ) T = X T X θ − X T Y = 0 ⟹ X T X θ = X T Y θ ∗ = ( X T X ) − 1 X T ⟹ θ ∗ = ( X T X ) − 1 X T Y \nabla_{\theta} J(\theta)=\frac{\partial J(\theta)}{\partial \theta}=\frac{\frac{1}{2}\left(\theta^{T} X^{T} X \theta-2 Y^{T} X \theta+Y^{T} Y\right)}{\partial \theta}=X^{T} X \theta-\left(Y^{T} X\right)^{T}=X^{T} X \theta-X^{T} Y=0\\\Longrightarrow X^{T} X \theta=X^{T} Y\theta^{*}=\left(X^{T} X\right)^{-1} X^{T}\\\Longrightarrow\theta^{*}=\left(X^{T} X\right)^{-1} X^{T} Y ∇θJ(θ)=∂θ∂J(θ)=∂θ21(θTXTXθ−2YTXθ+YTY)=XTXθ−(YTX)T=XTXθ−XTY=0⟹XTXθ=XTYθ∗=(XTX)−1XT⟹θ∗=(XTX)−1XTY
随机梯度下降法
Mini-batch GD
每次只 用训练集中的一个数据,把数据分为若干个批,按批来更新参 数。一个批中的一组数据共同决定了本次梯度的方向,下降起 来就不容易跑偏,减少了随机性。
一个bacth 形成一个epoch分批次训练
全局最优解
当 J ( θ ) J(\theta) J(θ)是凸函数(凹函数和凸函数统称凸函数)时,二阶导数大于0, X T X X^TX XTX为半正定矩阵
∇ θ 2 J ( θ ) = X T X \nabla_{\theta}^{2} J(\theta)=X^{T} X ∇θ2J(θ)=XTX
当训练样本的数目n大于训练样本的维度(p+1 个属性,特征) X T X X^TX XTX通常可逆,表明改矩阵事正定矩阵,求的参数是全局最优解。不可逆时,可以接出多个参数解。可使用 正则化给出一个“归纳偏好”解。
评估方法
留出法
随机挑选 一部分标 记数据作 为测试集 (空心点 ),其余的作 为训练集 (实心点 ),计算 回归模型,使用测试 集对模型 评估: MSE =2.4,测试集不能太大,也不 能太小。2 <= n:m <=4
交叉验证法
十折交叉验证,如将数据集分为10份,每次选一份作为测试集,其余作为训练集。
性能度量
线性回归模型:平方和误差
在测试集上报告 MSE(mean square error) 误差
J train ( θ ) = 1 2 ∑ i = 1 n ( x i T θ − y i ) 2 J_{\text {train }}(\theta)=\frac{1}{2} \sum_{i=1}^{n}\left(\mathbf{x}_{i}^{T} \theta-y_{i}\right)^{2} Jtrain (θ)=21i=1∑n(xiTθ−yi)2
θ ∗ = argmin J train ( θ ) = ( X train T X train ) − 1 X train T y ⃗ train \theta^{*}=\operatorname{argmin} J_{\text {train }}(\theta)=\left(X_{\text {train }}^{T} X_{\text {train }}\right)^{-1} X_{\text {train }}^{T} \vec{y}_{\text {train }} θ∗=argminJtrain (θ)=(Xtrain TXtrain )−1Xtrain Tytrain
J test = 1 m ∑ i = n + 1 n + m ( x i T θ ∗ − y i ) 2 = 1 m ∑ i = n + 1 n + m ε i 2 J_{\text {test }}=\frac{1}{m} \sum_{i=n+1}^{n+m}\left(\mathbf{x}_{i}^{T} \theta^{*}-y_{i}\right)^{2}=\frac{1}{m} \sum_{i=n+1}^{n+m} \varepsilon_{i}^{2} Jtest =m1i=n+1∑n+m(xiTθ∗−yi)2=m1i=n+1∑n+mεi2
分类任务:错误率与精度
错误率是分类错误的样本数占样本总数的比例
精度是分类正确的样本数占样本总数的比例
对二分类问题:
查准率: P = T P T P + F P P=\frac{T P}{T P+F P} P=TP+FPTP
查全率: R = T P T P + F N R=\frac{T P}{T P+F N} R=TP+FNTP
F1: F 1 = 2 × P × R P + R = 2 × T P 样例总数 + T P − T N F 1=\frac{2 \times P \times R}{P+R}=\frac{2 \times T P}{\text { 样例总数 }+T P-T N} F1=P+R2×P×R= 样例总数 +TP−TN2×TP
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)