机器学习——线性回归(Linear Regression)

1、从一个例子来了解线性回归

数据:工资和年龄
目标:预测银行贷款额度
考虑:工资和年龄对银行贷款额度的影响程度

工资年龄贷款额度
40002520000
80003070000
50002835000
75003350000
120004085000

自变量(特征):工资(X1)、年龄(X2)
因变量:贷款额度(y)
假设 θ 1 \theta_1 θ1是工资参数, θ 2 \theta_2 θ2是年龄参数,
则该例子中回归方程为: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 h_\theta(x) =\theta_0 + \theta_1x_1 +\theta_2x_2 hθ(x)=θ0+θ1x1+θ2x2

2、线性回归算法详解(Linear Regression)

对于每个样本,输出值是各特征的线性组合:
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n h_\theta(x) =\theta_0 + \theta_1x_1 +\theta_2x_2+\cdots+\theta_nx_n hθ(x)=θ0+θ1x1+θ2x2++θnxn
h θ ( x ) = ∑ i = 1 n θ i x i = θ T x h_\theta(x) = \displaystyle\sum_{i=1}^n\theta_ix_i=\theta^Tx hθ(x)=i=1nθixi=θTx (其中 θ 0 \theta_0 θ0是偏置项)

假设样本数量为m,每个样本包含n个特征,则输入数据为一个m*n的矩阵。
θ \theta θ:表示各个特征的权重
x ( i ) x^{(i)} x(i):表示第 i i i行所有的 x x x
h θ ( x ( i ) ) h_\theta(x^{(i)}) hθ(x(i)):表示第 i i i行所有的 x x x乘以 θ \theta θ后的取值
y ( i ) y^{(i)} y(i):表示第 i i i行对应的真实的 y y y

误差

真实值与预测值之间的误差用 ε \varepsilon ε表示,对于每个样本,有
y ( i ) = θ T x ( i ) + ε ( i ) y^{(i)} = \theta^Tx^{(i)} + \varepsilon^{(i)} y(i)=θTx(i)+ε(i)
误差 ε ( i ) \varepsilon^{(i)} ε(i)服从均值为0方差为 σ 2 \sigma^2 σ2的高斯分布

似然函数

高斯分布函数密度曲线可以表示为:
f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 f(x) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x)=2π σ1e2σ2(xμ)2 ( μ \mu μ:均值 σ \sigma σ:标准差)
则有误差服从高斯分布:
p ( ε ( i ) ) = 1 2 π σ e − ( ε ( i ) ) 2 2 σ 2 p(\varepsilon^{(i)})=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(\varepsilon^{(i)})^2}{2\sigma^2}} p(ε(i))=2π σ1e2σ2(ε(i))2
将误差公式代入,则有
p ( y ( i ) ∣ x ( i ) ; θ ) = 1 2 π σ e − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}} p(y(i)x(i);θ)=2π σ1e2σ2(y(i)θTx(i))2
似然函数: L ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m 1 2 π σ e − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 L(\theta)=\displaystyle\prod_{i=1}^mp(y^{(i)}|x^{(i)};\theta)=\displaystyle\prod_{i=1}^m\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}} L(θ)=i=1mp(y(i)x(i);θ)=i=1m2π σ1e2σ2(y(i)θTx(i))2
似然函数解释:什么样的参数组合 θ T \theta^T θT能够使得数据的预测值恰好是真实值的概率最大

似然函数公式化简

由于似然函数包含累乘算术,将累乘变成累加有利于计算
根据 l o g ( A ∗ B ) = l o g A + l o g B log(A*B)=logA+logB log(AB)=logA+logB 则有
对数似然函数:
l o g L ( θ ) = l o g ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = l o g ∏ i = 1 m 1 2 π σ e − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 logL(\theta)=log\displaystyle\prod_{i=1}^mp(y^{(i)}|x^{(i)};\theta)=log\displaystyle\prod_{i=1}^m\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}} logL(θ)=logi=1mp(y(i)x(i);θ)=logi=1m2π σ1e2σ2(y(i)θTx(i))2
展开化简:
∑ i = 1 m l o g ( 1 2 π σ e − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) \displaystyle\sum_{i=1}^mlog(\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}}) i=1mlog(2π σ1e2σ2(y(i)θTx(i))2)
= m l o g 1 2 π σ − 1 σ 2 . 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 ) =mlog\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{\sigma^2}.\frac{1}{2}\displaystyle\sum_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2) =mlog2π σ1σ21.21i=1m(y(i)θTx(i))2)
目标:让似然函数(对数似然函数)值越大越好,因此目标函数 J ( θ ) J(\theta) J(θ)的值要越小越好

目标函数

J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 ) J(\theta)=\frac{1}{2}\displaystyle\sum_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2) J(θ)=21i=1m(y(i)θTx(i))2)
J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 ) J(\theta)=\frac{1}{2}\displaystyle\sum_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2) J(θ)=21i=1m(y(i)θTx(i))2)
= 1 2 ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) 2 =\frac{1}{2}\displaystyle\sum_{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))^2 =21i=1m(y(i)hθ(x(i)))2
= 1 2 ( X θ − y ) T ( X θ − y ) =\frac{1}{2}(X\theta-y)^T(X\theta-y) =21(Xθy)T(Xθy)

J ( θ ) J(\theta) J(θ)求偏导,令偏导为0,得 θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy

评估方法

最常用的评估项 R 2 R^2 R2:
R 2 = 1 − ∑ i = 1 m ( y i ^ − y i ) 2 ∑ i = 1 m ( y i − y ˉ ) 2 R^2=1-\frac{\displaystyle\sum_{i=1}^m(\hat{y_i}-y_i)^2}{\displaystyle\sum_{i=1}^m(y_i-\bar{y})^2} R2=1i=1m(yiyˉ)2i=1m(yi^yi)2
残差平方和: ∑ i = 1 m ( y i ^ − y i ) 2 \displaystyle\sum_{i=1}^m(\hat{y_i}-y_i)^2 i=1m(yi^yi)2
方差: ∑ i = 1 m ( y i − y ˉ ) 2 \displaystyle\sum_{i=1}^m(y_i-\bar{y})^2 i=1m(yiyˉ)2
R 2 R^2 R2越接近1,我们认为模型拟合效果越好

3、梯度下降

当引入了目标函数 J ( θ ) J(\theta) J(θ)之后,如何进行求解,不是每次都可以直接求解的(线性回归可直接求目标函数的偏导为0是特例)
梯度下降是一种寻找目标函数最小化的方法。
目标函数为:
J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 ) J(\theta)=\frac{1}{2}\displaystyle\sum_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2) J(θ)=21i=1m(y(i)θTx(i))2)
θ i = θ i − α ∂ ∂ θ i J ( θ ) \theta_i = \theta_i - \alpha\frac{\partial}{ \partial\theta_i}J(\theta) θi=θiαθiJ(θ)
α \alpha α:学习率,会对结果产生很大影响,一般设置较小

图片来源于:https://www.jianshu.com/p/93d9fea7f4c2

从数学的角度看,梯度的方向是函数增长最快的方向,梯度的反方向就是函数减小最快的方向。
越接近最优解的时候,步长越小。因为这个向量等于 α i \alpha_i αi与偏导数 的乘积,虽然 α i \alpha_i αi始终是一个定值,但是越接近最值的时候,这个坡度就会越缓,从而导数的值就越小,也就是乘积变小了,这就是看到步长变小的缘故。

  • 批量梯度下降

    每次都考虑所有的样本,容易得到最优解,但是速度慢

  • 随机梯度下降

    每次随机找一个样本,迭代速度快,但不一定每次都朝着收敛的方向

  • 小批量梯度下降

    每次更新选择一小部分数据来计算,较为实用!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值