线性回归LinearRegreesion

线性回归

前言

​ Linear Regression (LR)会一直成为每一个初学者在机器学习之间绕不过去的一个坎。所以,我想尽量把这篇写得更加地贴近新手,(像我这样的新手)。

​ 进入正题,LR旨在让一个线性函数尽可能预测 y y y,假设线性函数如下:
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_\theta(x) = \theta_0 + \theta_1x_1+\theta_2x_2+...+\theta_nx_n hθ(x)=θ0+θ1x1+θ2x2+...+θnxn
​ 这里的 θ i ( i = 0 , . . . , n ) \theta_i(i=0,...,n) θi(i=0,...,n)是回归系数,既然这样,我们也可以把这个线性函数改写一下,改写乘向量成向量的形式。
h θ ( x ) = ∑ j = 0 n θ j x j = θ T x h_\theta(x) = \sum _{j=0}^n\theta_jx_j=\theta^T x hθ(x)=j=0nθjxj=θTx
​ where KaTeX parse error: Unknown column alignment: * at position 32: …{\begin{array}{*̲{20}{c}} {{\the… KaTeX parse error: Unknown column alignment: * at position 27: …{\begin{array}{*̲{20}{c}} {{x_0}…

​ 所以,问题又转化为怎么求解这个向量$\theta $了。因此,我们需要再引进下面的损失函数。

损失函数

​ Q:为啥要损失函数?

​ A:因为我们需要找一种东西来度量,度量什么呢?度量我们所求出的 θ \theta θ是不是“well-performance”的 θ \theta θ

​ Q:损失函数长啥样?

​ A:就下面这样:
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^m(h_\theta(x^i)-y^i)^2 J(θ)=2m1i=1m(hθ(xi)yi)2
​ 在这里, x i x^i xi y i y^i yi是第 i i i个样本的因变量和自变量。理解的时候要这样理解,即 x i x^i xi 是用户行为,而 y i y^i yi 可以认为是用户最终的选择(或者属性)。比如你采集到用户对一系列的电影的评分( x i x^i xi ),然后你需要这些进行训练。怎么训练呢?就是通过 y i y^i yi x i x^i xi 进行计算,求出了 θ \theta θ了。以下介绍两种方向,计算出 θ \theta θ

梯度下降法

​ 梯度是什么?其实就是导数。

​ 这里不再重复造轮子了。

​ Reference:https://www.jianshu.com/p/c7e642877b0e

最小二乘法

​ 基本思路:对损失函数求偏导,令其为零,得到闭式解。请注意,闭式解很关键,因为这决定了我们求到的这个解能不能直接拿来用,如果是开式解就需要设计迭代算法进行求解。

​ 而这个基本思路,即求偏导,令其为零,得到解,是机器学习的基本思路,以后的很多方法都会基于此。因为我不太喜欢向量的形式,所以直接写成了这个矩阵的形式。
arg ⁡ min ⁡ θ ∥ Y − θ X ∥ F 2 \arg \min \limits_{\theta}\|Y - \theta X \|_F^2 argθminYθXF2

​ 在最小二乘法中,我想利用矩阵的迹进行推导。改写上面的式子,利用迹的形式,可以得到:
arg ⁡ min ⁡ θ ∥ Y − θ X ∥ F 2 = arg ⁡ min ⁡ θ t r ( ( Y − θ X ) T ( Y − θ X ) ) \arg \min \limits_{\theta}\|Y - \theta X \|_F^2=\arg \min \limits_{\theta}tr((Y - \theta X)^T (Y - \theta X)) argθminYθXF2=argθmintr((YθX)T(YθX))
将他们拆开,可以得到
arg ⁡ min ⁡ θ t r ( Y Y T − 2 Y T θ X + X θ T θ X ) ) \arg \min \limits_{\theta}tr(YY^T-2Y^T\theta X + X\theta^T \theta X)) argθmintr(YYT2YTθX+XθTθX))
因为 Y Y T YY^T YYT 是常数,因此我们优化的对象变成了以下的式子: arg ⁡ min ⁡ θ t r ( − 2 Y T θ X + X T θ T θ X ) ) \arg \min \limits_{\theta}tr(-2Y^T\theta X + X^T\theta^T \theta X)) argθmintr(2YTθX+XTθTθX))
因此,对其进行求导,可以得到:
0 = − 2 Y T X + 2 θ X 0=-2Y^TX+2\theta X 0=2YTX+2θX
Y T X X − 1 = θ Y^TXX^{-1 }=\theta YTXX1=θ

过拟合

​ 我们需要运用正则项来克服过拟合。所以,但是,这个留给下一篇吧~希望下一篇能真正让我介绍一下几种范数的正则化。

代码实现

https://download.csdn.net/download/weixin_43444175/12507151
代码注释很翔实

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值