2020-09-21机器学习之线性回归模型笔记(一)

机器学习之线性回归模型

1.线性回归模型

1.1 模型结构

  线性回归模型是通过建立线性特征组合进行预测的回归模型。我们需要虚招一条直线来最大程度的“拟合”样本特征。
  假设线性模型为: y = a x + b y=ax+b y=ax+b其中y是连续变量。
  那么我们可以知道,对于任意的特征 x i x_i xi都有预测值 y ^ = a x i + b \hat{y}=ax_i+b y^=axi+b
其真实值为 y y y
如下图,真实值 y ^ = [ 2 , 3 , 5 , 9 , 10 , 11 ] \hat{y}=[2,3,5,9,10,11] y^=[2,3,5,9,10,11]
在这里插入图片描述
1.2 损失函数
  对于构建的线性回归模型,我们希望 ∣ y i − y i ^ ∣ \mid{y_i-\hat{y_i}}\mid yiyi^尽量小,为了方便计算(后续公式的求导),我们引入欧拉距离 ( y i − y i ^ ) 2 (y_i-\hat{y_i})^2 (yiyi^)2,然后考虑所有的样本可得 ∑ i = 1 m ( y i − y i ^ ) 2 \sum_{i=1}^m(y_i-\hat{y_i})^2 i=1m(yiyi^)2
这就是我们的损失函数。在线性回归模型中,我们 利用这个损失函数的最小值做为评判标准来找出一条直线。
1.3最小二乘法
  对于多元线性回归模型,样本 x i = ( 1 , x 1 i , x 2 i , . . . , x m i ) x^i=(1,x_1^i,x_2^i,...,x_m^i) xi=(1,x1i,x2i,...,xmi),有 y ( θ ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ m i y(\theta)=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_m^i y(θ)=θ0+θ1x1+θ2x2+...+θmi
又有多元 Y = [ y 1 y 2 . . . y n ] n ∗ 1 Y=\begin{bmatrix}y^1\\y^2\\.\\.\\.\\y^n\end{bmatrix}_{n*1} Y=y1y2...ynn1
那么有 X = [ x 1 x 2 . . . x n ] n ∗ ( m + 1 ) , θ = [ θ 1 θ 2 . . . θ m ] ( m + 1 ) ∗ 1 X=\begin{bmatrix}x^1\\x^2\\.\\.\\.\\x^n\end{bmatrix}_{n*(m+1)},\theta=\begin{bmatrix}\theta^1\\\theta^2\\.\\.\\.\\\theta^m\end{bmatrix}_{(m+1)*1} X=x1x2...xnn(m+1),θ=θ1θ2...θm(m+1)1
Y ( θ ) = X ∗ θ Y(\theta)=X*\theta Y(θ)=Xθ
  经过以上推导,我们可以引出利用最小二乘法求解损失函数 Y ( θ ) = X ∗ θ Y(\theta)=X*\theta Y(θ)=Xθ
目标是找到一组 θ 0 , θ 1 , . . . , θ m \theta_0,\theta_1,...,\theta_m θ0θ1...θm,使损失函数 ∑ i = 1 m ( y i − y i ^ ) 2 \sum_{i=1}^m(y_i-\hat{y_i})^2 i=1m(yiyi^)2最小。
  推导一个公式,我们假设 U = ( u 1 , u 2 , . . . , u n ) U=(u^1,u^2,...,u^n) U=(u1,u2,...,un),则有 ∑ i = 1 n ( u i ) 2 = U T U \sum_i=1^n(u^i)^2=U^TU i=1n(ui)2=UTU
  那么 ∑ i = 1 n ( y i − x i θ ) 2 = ( Y − X θ ) T ( Y − X θ ) \sum_{i=1}^n(y^i-x^i\theta)^2=(Y-X\theta)^T(Y-X\theta) i=1n(yixiθ)2=(YXθ)T(YXθ)
  令 j = ( Y − X θ ) T ( Y − X θ ) j=(Y-X\theta)^T(Y-X\theta) j=(YXθ)T(YXθ)

解法一:正规方程求解模型参数
   J = ( Y − X θ ) T ( Y − X θ ) = ( Y T − X T θ T ) ( Y − X θ ) = Y T Y − Y T X θ − θ T X T Y + θ T X T X θ J=(Y-X\theta)^T(Y-X\theta)\\=(Y^T-X^T\theta^T)(Y-X\theta)\\=Y^TY-Y^TX\theta-\theta^TX^TY+\theta^TX^TX\theta J=(YXθ)T(YXθ)=(YTXTθT)(YXθ)=YTYYTXθθTXTY+θTXTXθ
  求导可得 δ J δ θ = δ ( θ T X T X θ ) δ θ − δ ( Y T X θ ) δ θ − δ ( θ T X T Y ) δ θ \frac{\delta J}{\delta \theta} =\frac{\delta(\theta^TX^TX\theta)}{\delta\theta}-\frac{\delta(Y^TX\theta)}{\delta\theta}-\frac{\delta(\theta^TX^TY)}{\delta\theta} δθδJ=δθδ(θTXTXθ)δθδ(YTXθ)δθδ(θTXTY)
  此时我们再推导一组公式, δ ( X T A X ) δ X = 2 A X , δ ( A B ) δ B = A T , δ A T B δ A = B \frac{\delta(X^TAX)}{\delta X}=2AX,\frac{\delta(AB){\delta B}}=A^T,\frac{\delta A^TB}{\delta A}=B δXδ(XTAX)=2AX,=δ(AB)δBAT,δAδATB=B
  那么 δ J δ θ = 2 X T X θ − ( Y T X ) T − X T Y = 2 X T X θ − 2 X T Y = 0 \frac{\delta J}{\delta\theta}=2X^TX\theta-(Y^TX)^T-X^TY\\=2X^TX\theta-2X^TY=0 δθδJ=2XTXθ(YTX)TXTY=2XTXθ2XTY=0 θ = ( X T X ) ( − 1 ) X T Y \theta=(X^TX)^{(-1)}X^TY θ=(XTX)(1)XTY

解法二:梯度下降法
  梯度下降法是一种基于搜索的最优化方法,可以最小化损失函数。
J = ∑ i = 1 m ( y i − θ 0 − θ 1 X 1 i − θ 2 X 2 i − . . . − θ n X n i ) 2 J=\sum_{i=1}^m(y^i-\theta_0-\theta_1X_1^i-\theta_2X_2^i-...-\theta_nX_n^i)^2 J=i=1m(yiθ0θ1X1iθ2X2i...θnXni)2

那么 ∇ J ( θ ) = ( ∇ J ( θ ) 0 ) , ∇ J ( θ ) 1 , ∇ J ( θ ) 2 ) , . . . , ∇ J ( θ ) n ) ) = ( ∑ i = 1 m 2 ( y i − X b i θ ) ( − 1 ) ∑ i = 1 m 2 ( y i − X b i θ ) ( − X 1 i ) ∑ i = 1 m 2 ( y i − X b i θ ) ( − X 1 i ) . . . ∑ i = 1 m 2 ( y i − X b i θ ) ( − X n i ) ) \nabla J(\theta)=(\frac{\nabla J}{(\theta)_0)},\frac{\nabla J}{(\theta)_1},\frac{\nabla J}{(\theta)_2)},...,\frac{\nabla J}{(\theta)_n)})=\begin{pmatrix}\sum_{i=1}^m2(y^i-X_b^i\theta)(-1)\\\sum_{i=1}^m2(y^i-X_b^i\theta)(-X_1^i)\\\sum_{i=1}^m2(y^i-X_b^i\theta)(-X_1^i)\\...\\\sum_{i=1}^m2(y^i-X_b^i\theta)(-X_n^i)\end{pmatrix} J(θ)=((θ)0)J,(θ)1J,(θ)2)J,...,(θ)n)J)=i=1m2(yiXbiθ)(1)i=1m2(yiXbiθ)(X1i)i=1m2(yiXbiθ)(X1i)...i=1m2(yiXbiθ)(Xni)
  目标是使 1 m ∑ i = 1 m ( y i − y ^ i ) \frac{1}{m}\sum_{i=1}^m(y^i-\hat y^i) m1i=1m(yiy^i)尽可能小。

   ∇ J ( θ ) = 2 m ( ∑ i = 1 m ( X b i θ − y i ) ∑ i = 1 m ( X b i θ − y i ) X 1 i ∑ i = 1 m ( X b i θ − y i ) X 1 i . . . ∑ i = 1 m ( X b i θ − y i ) X n i ) = 2 m ( X b 1 θ − y 1 , X b 2 θ − y 2 ) , . . . , X b m θ − y m ) ( X 0 1 . . . X n 1 . . . . . . . . . X 1 m . . . X n m ) = 2 m X b T ( X B θ − y ) \nabla J(\theta)=\frac{2}{m}\begin{pmatrix}\sum_{i=1}^m(X_b^i\theta-y^i)\\\sum_{i=1}^m(X_b^i\theta-y^i)X_1^i\\\sum_{i=1}^m(X_b^i\theta-y^i)X_1^i\\...\\\sum_{i=1}^m(X_b^i\theta-y^i)X_n^i\\\end{pmatrix}=\frac{2}{m}(X_b^1\theta-y^1,X_b^2\theta-y^2),...,X_b^m\theta-y^m)\begin{pmatrix}X_0^1...X_n^1\\.........\\X_1^m...X_n^m\end{pmatrix}=\frac{2}{m}X_b^T(X_B\theta-y) J(θ)=m2i=1m(Xbiθyi)i=1m(Xbiθyi)X1ii=1m(Xbiθyi)X1i...i=1m(Xbiθyi)Xni=m2(Xb1θy1,Xb2θy2),...,Xbmθym)X01...Xn1.........X1m...Xnm=m2XbT(XBθy)

猜你喜欢

转载自blog.csdn.net/playboygogogo/article/details/108710771