线性回归 推导

线性回归

前言

没学的时候感觉非常高大上,公式看一眼就头疼,想走捷径看b站视频,发现推导也不怎么详细,就找了很多博客看,终于入门了。写本文的目的一是小白入门,二是练习LaTex。

1 概念

  • 回归:指的是目标值为连续型,如房价数据集,预测房价是90.5,90.6…这些连续的数字。
  • 分类:指的是目标值为离散型,如鸢尾花数据集,预测种类是第1,2,3这些类别。
  • 线性:直线的性质
    所以 线性回归 就是用直线完成预测。换句话说,线性回归 就是 找直线

图片

图中的直线可以找到无数条,那谁是最好的那一条呢?出现了一个新概念,损失函数

损失函数

又叫误差函数,顾名思义,就是衡量误差的多少,拿它做标准,自然是损失函数最小直线最好
而此处的误差 就是 实际值 - 预测值。预测值:直线上的值;实际值:那些点。
在这里插入图片描述

损失函数公式 ∑ i = 1 m ( y i − y ^ i ) 2 \sum_{i=1}^{m}({y_i - \hat{y}_i)^2} i=1m(yiy^i)2 实际值 用 y y y,预测值 用 y ^ \hat{y} y^ i i i指的是第 i i i条数据

很明显,这是不开根号的欧氏距离求和,平方容易理解,(预测-实际)的结果有正有负嘛,平方去掉负号;而不开根号的原因是:平方后开根号,等价于 绝对值,绝对值不方便求导,比如 ∣ x ∣ |x| x在0点无导数,而后面会对损失函数求导,所以不用。

已知 y i y_i yi,在labels里给出,比如下面表格中的:90.2、100.3等等;未知 y ^ i \hat{y}_i y^i ,然后给出预测值 y ^ i \hat{y}_i y^i 的公式

y ^ i = w 1 x i 1 + w 2 x i 2 + . . . w n x i n + b \hat{y}_i =w_1x_{i1} + w_2x_{i2} + ...w_nx_{in} + b y^i=w1xi1+w2xi2+...wnxin+b

其中, w 1 , w 2 . . . w n w_1,w_2...w_n w1,w2...wn都是不同属性 x 1 , x 2 . . . x n x_1,x_2...x_n x1,x2...xn对应的权重。比如: w 1 = 0.9 w_1 = 0.9 w1=0.9 x i 1 x_{i1} xi1为第i条数据的房面积,说明房面积很重要,权重为0.9;其它诸如此类。
b是偏移量,要是没有它,你的那条线只能从0点过了,不够灵活


目的

到这里目的很明确了,就是要找到一组参数 w 1 , w 2 . . . w n w_1,w_2...w_n w1,w2...wn(又叫系数、权重),使得损失函数最小。常见的方法有两种

  1. 正规方程解(像天才一样,一步到位,直接算出W)
  2. 梯度下降(努力的普通人,不断试错,改进)

给个房价数据集表格,以便后面理解

x1x2xny
面积楼层地段房价
10026190.2
80591100.3

2 正规方程解 推导

但是 y ^ i \hat{y}_i y^i 这个式子 计算机不好处理,它擅长处理矩阵。所以,将这个式子化为向量内积的形式。 y ^ i = X i ∗ W \hat{y}_i = X_i * W y^i=XiW , 即分解成:一行 × 一列

X i = ( x i 1 x i 2 . . . x i n 1 ) , W = ( w 1 w 2 . . . w n b ) X_i = \begin{pmatrix}x_{i1} & x_{i2} & ...& x_{in} &1\\ \end{pmatrix}, W = \begin{pmatrix}w_1 \\ w_2 \\ ...\\ w_n\\ b \end{pmatrix} Xi=(xi1xi2...xin1)W=w1w2...wnb
X i X_i Xi 表示第 i i i 条数据,1到n代表每一条数据中1到n个属性
比如: i = 1 , X i i = 1 , X_i i=1,Xi = 第一行数据; x i 1 = 100 x_{i1} =100 xi1=100,第一行第一个属性值; x i 2 = 2 x_{i2}=2 xi2=2,第一行第二属性值…(看上面表格)


上面看的是第 i i i 条数据,现在考虑 m 条数据:
X b = ( x 11 x 12 . . . x 1 n 1 x 21 x 22 . . . x 2 n 1 . . . x m 1 x m 2 . . . x m n 1 ) X_b = \begin{pmatrix}x_{11} & x_{12} & ...& x_{1n} &1\\ x_{21} & x_{22} & ...& x_{2n} &1\\...\\x_{m1} & x_{m2} & ...& x_{mn} &1 \end{pmatrix} Xb=x11x21...xm1x12x22xm2.........x1nx2nxmn111
m*n矩阵,m条数据,n个特征属性

那公式就从第 i 条数据的预测值 y ^ i = X i ∗ W \hat{y}_i = X_i * W y^i=XiW
拓展成了 m条数据的预测值 y ^ = X b ∗ W \hat{y} = X_b * W y^=XbW

还记得损失函数的公式嘛,把它分解一下
∑ i = 1 m [ y i − y ^ i ] 2 = ( y 1 − y ^ 1 , y 2 − y ^ 2 , . . . , y m − y ^ m ) ( y 1 − y ^ 1 y 2 − y ^ 2 . . . y m − y ^ m ) \sum_{i=1}^{m}[{y_i - \hat{y}_i]^2} = (y_1-\hat{y}_1, y_2-\hat{y}_2,...,y_m-\hat{y}_m)\begin{pmatrix}y_1-\hat{y}_1 \\ y_2-\hat{y}_2 \\ ...\\ y_m-\hat{y}_m \end{pmatrix} i=1m[yiy^i]2=(y1y^1,y2y^2,...,ymy^m)y1y^1y2y^2...ymy^m
设 U = ( y 1 − y ^ 1 y 2 − y ^ 2 . . . y m − y ^ m ) = ( y 1 y 2 . . . y m ) − ( y ^ 1 y ^ 2 . . . y ^ m ) = y − y ^ 设 U = \begin{pmatrix}y_1-\hat{y}_1 \\ y_2-\hat{y}_2 \\ ...\\ y_m-\hat{y}_m \end{pmatrix} = \begin{pmatrix}y_1 \\ y_2 \\ ...\\ y_m\end{pmatrix} - \begin{pmatrix}\hat{y}_1 \\ \hat{y}_2 \\ ...\\ \hat{y}_m \end{pmatrix} = y-\hat{y} U=y1y^1y2y^2...ymy^m=y1y2...ymy^1y^2...y^m=yy^

y 与 y ^ 均 已 知 y与 \hat{y} 均已知 yy^ ,上述方程可变为 U T U U^TU UTU
∑ i = 1 m [ y i − y ^ i ] 2 = U T U = ( y − y ^ ) T ( y − y ^ ) = ( y − X b W ) T ( y − X b W ) = ( y T − W T X b T ) ( y − X b W ) = y T y − y T X b W − W T X b T y + W T X b T X b W \sum_{i=1}^{m}[{y_i - \hat{y}_i]^2} = U^TU = (y-\hat{y})^T(y-\hat{y}) \\ =(y-X_bW)^T(y-X_bW)\\ =(y^T-W^TX_b^T)(y-X_bW)\\\\= y^Ty - y^TX_bW-W^TX_b^Ty + W^TX_b^TX_bW i=1m[yiy^i]2=UTU=(yy^)T(yy^)=(yXbW)T(yXbW)=(yTWTXbT)(yXbW)=yTyyTXbWWTXbTy+WTXbTXbW

y T = 1 ∗ m , X b = m ∗ ( n + 1 ) , W = ( n + 1 ) ∗ 1 y^T = 1*m ,X_b = m * (n+1), W = (n+1)*1 yT=1mXb=m(n+1)W=(n+1)1

y T X b W y^TX_bW yTXbW这个算出来是个1*1的矩阵,就是个数字,很明显 W T X b T y W^TX_b^Ty WTXbTy是它的转置,那也是个同样的数字。所以上式继续推:
= y T y − 2 y T X b W + W T X b T X b W =y^Ty -2y^TX_bW + W^TX_b^TX_bW =yTy2yTXbW+WTXbTXbW
到这里就行了,注意我们的目标始终是使损失函数最小的 那组W
如果让你求 y = a x 2 + b x + c y = ax^2 + bx + c y=ax2+bx+c 的最小值,一般步骤是求导,然后看导数为0的点是否符合最小。 这里也是一样,不同的是此处对矩阵求导,令其为0。

这里给个两个书上的公式,就不介绍了
∇ w T x = w \nabla w^Tx = w wTx=w (公式1)
∇ x T A x = 2 A x \nabla x^TAx = 2Ax xTAx=2Ax(公式2)
这两个式子是对 x ⃗ \vec{x} x 求导,下面是对 W ⃗ \vec{W} W 求导

此部分 对W求导 y T y − 2 y T X b W + W T X b T X b W \boxed{y^Ty} -2y^TX_bW + W^TX_b^TX_bW yTy2yTXbW+WTXbTXbW,结果为0
此部分 用公式1求导 y T y − 2 y T X b W + W T X b T X b W y^Ty \boxed{-2y^TX_bW} + W^TX_b^TX_bW yTy2yTXbW+WTXbTXbW,结果为 − 2 X b T y -2X_b^Ty 2XbTy
此部分 用公式2求导 y T y − 2 y T X b W + W T X b T X b W y^Ty -2y^TX_bW + \boxed{W^TX_b^TX_bW} yTy2yTXbW+WTXbTXbW,结果为 2 X b T X b W 2X_b^TX_bW 2XbTXbW
令结果等于0,得到 2 X b T X b W − 2 X b T y = 0 即 X b T X b W = X b T y W = ( X b T X b ) − 1 ( X b T y ) 2X_b^TX_bW-2X_b^Ty = 0\\即X_b^TX_bW = X_b^Ty\\ W = (X_b^TX_b)^{-1}(X_b^Ty) 2XbTXbW2XbTy=0XbTXbW=XbTyW=(XbTXb)1(XbTy)

推导完毕!
LaTex真难敲啊,但样式确实好看~

3 参考文章:

https://blog.csdn.net/alw_123/article/details/82193535
https://blog.csdn.net/alw_123/article/details/82825785
https://blog.csdn.net/alw_123/article/details/83065764

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值