线性回归
1. 引入
1.1 银行贷款
- 在银行贷款的时候,银行可以根据我们的工资、年龄和家庭关系等特征进行贷款,那么我们能贷款多少金额呢?
- 数据:工资和年龄 (以2个特征为例)
- 目标:预测可以贷款多少钱
- 工资和年龄会影响贷款的金额比重会是多少
2 线性回归
2.1 通俗解释
-
在线性回归中,工资和年龄就是我们的特征,即X1 和 X2,Y为预测的金额
-
找出一条直线尽可能的涵盖多的样本
2.2 数学解释 (theta = Q)
-
假设Q1是年龄的参数,Q2是工资的参数
-
HQ(x) = Q0 * X0 + Q1 * X1 + Q2 * X2 (其中,X0 = 1,Q0 * X0 代表直线的偏置)
-
整合:
h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 = ∑ i = 0 n θ i x i = θ T x h_\theta(x) = \theta_0x_0 + \theta_1x_1 + \theta_2x_2 = \sum_{i=0}^{n}{\theta_ix_i} =\theta^Tx hθ(x)=θ0x0+θ1x1+θ2x2=i=0∑nθixi=θTx
2.3 误差:
-
真实值和预测值肯定是要存在误差的
y i = θ T x i + ε i y^i = \theta^Tx^i + \varepsilon^i yi=θTxi+εi -
误差 是独立并且具有相同的分布,并且服从均值为0方差为 Q^2 的高斯分布
2.4 损失函数
- 由于误差服从高斯分布,则将误差带入到高斯公式化简得:
- 其中sigma为宽度 > 0
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}\sum_{i=1}^{m}{(y^i - \theta^Tx^i)^2} mlog2πσ1−σ2121i=1∑m(yi−θTxi)2
- 由于预测值要越接近真实值,即L(Q)最大,即损失函数最小
- 最小二乘法
J ( θ ) = 1 2 ∑ i = 1 m ( y i − θ T x i ) 2 J(\theta) = \frac{1}{2}\sum_{i=1}^{m}{(y^i - \theta^Tx^i)^2} J(θ)=21i=1∑m(yi−θTxi)2
2.5 如何求出theta
- 损失函数最小,也就是求出极小值下的theta值
- 其中 n = 1 ~ m 求和也就是矩阵的乘积
J ( θ ) = 1 2 ∑ i = 1 m ( y i − θ T x i ) 2 = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta) = \frac{1}{2}\sum_{i=1}^{m}{(y^i - \theta^Tx^i)^2} = \frac{1}{2}(X\theta - y)^T(X\theta- y) J(θ)=21i=1∑m(yi−θTxi)2=21(Xθ−y)T(Xθ−y)
-
对theta求偏导
∇ θ J ( θ ) = X T X θ − X T y \nabla_\theta J(\theta) = X^TX\theta - X^Ty ∇θJ(θ)=XTXθ−XTy -
令偏导等于0得,theta的值为
θ = ( X T X ) − 1 X T y \theta = (X^TX)^{-1}X^Ty θ=(XTX)−1XTy
3 评估方法
-
评估项 R^2 ,认为取值越接近 1 模型拟合的越好
R 2 : 1 − ∑ i = 1 m ( y i ^ − y i ) 2 ∑ i = 1 m ( y i − y ‾ ) 2 R^2 : 1 - \frac{\sum_{i=1}^{m}{(\hat{y_i }- y_i)^2}}{\sum_{i=1}^{m}{(y_i - \overline{y})^2}} R2:1−∑i=1m(yi−y)2∑i=1m(yi^−yi)2 -
(残差平方和) / (类似方差项)
4 梯度下降
4.1 通俗解释
-
假如你在山顶,如何一步一步的去走到山底,也就是目标函数达到极值点的theta
-
目标函数:
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) J(\theta_0,\theta_1) = \frac{1}{2m}\sum_{i=1}^{m}{(h_\theta(x^i) - y^i)} J(θ0,θ1)=2m1i=1∑m(hθ(xi)−yi) -
下山步骤:
- 找到当前最合适的方向
- 走那么一小步,走快了该”跌倒 ”了
- 按照方向与步伐去更新我们的参数
4.2 梯度下降种类
-
梯度下降,目标函数:J(theta)
J ( θ ) = 1 2 m ∑ i = 1 m ( y i − θ T x i ) 2 J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}{(y^i - \theta^Tx^i)^2} J(θ)=2m1i=1∑m(yi−θTxi)2 -
批量梯度下降
- 容易得到最优解,但是由于每次考虑所有样本,速度很慢
-
随机梯度下降
- 每次找一个样本,迭代速度快,但不一定每次都朝着收敛的方向
-
小批量梯度下降法
- 每次更新选择一小部分数据来算
θ j : = θ j − α 1 10 ∑ k = i i + 9 ( h θ ( x k ) − y k ) x j k \theta_j := \theta_j - \alpha\frac{1}{10}\sum_{k = i}^{i+9}{(h_\theta(x^k) - y^k)}x_j^k θj:=θj−α101k=i∑i+9(hθ(xk)−yk)xjk
- 其中 alpha 一般小一些