Machine Learning-Linear Regression
线性回归基本推导过程
- 基本的含义:一个样本,具有一个或者多个特征x(变量),一个预测值y(标签),研究x与y之间的线性关系。
例如下表中:根据工资以及年龄(特征),预测用户的贷款额度(标签)
工资$x_1$ | 年龄$x_2$ | 贷款额度y |
---|---|---|
4000 | 25 | 20000 |
800 | 30 | 70000 |
5000 | 28 | 35000 |
7500 | 33 | 50000 |
12000 | 40 | 85000 |
需要构造:
$$ y_{predict} = \theta_0x_0+ \theta_1x_1+\theta_2x_2\tag{1}=\theta^Tx $$
注:其中$x_0$值为1,代表常数项
使得对于对于任意i样本 $y^{(i)}_{predict}$ 与真实值$y^{(i)}$之间的误差越小越好,用数学表示,即:
$$ y^{(i)}_i = y^{(i)}_{predict} + \epsilon^{(i)}\tag{2} $$
需要假设误差项$ \epsilon^{(i)}$要符合标准正态分布,即满足期望是0,方差是$σ^2$
即:
$$ p(\epsilon^{(i)})= {1\over\sqrt{2\pi}\sigma}exp{(-{(\epsilon^{(i)})^2\over 2\sigma^2})}\tag{3} $$
将(1)式带入(2)式,再带入(3)式,对于任意i样本似然函数如下:
$$ L(\theta)_i= p(y^{(i)}|x^{(i)};\theta)=p(\epsilon^{(i)})= {1\over\sqrt{2\pi}\sigma}exp{(-{(y^{(i)}-\theta^Tx^{(i)})^2\over 2\sigma^2})} $$
解释:
似然函数是一种关于统计模型参数的函数。
给定输出y以及x时,参数$\theta$的概率「似然函数L(θ|y,x)」(在数值上)等于给定参数$\theta$的以及x后变量y的概率:L(θ|y,x)」=P(y|θ,x),我们希望似然函数越大越好,即预测值成为真实值的可能性越大。
对于m个样本而言,最大似然函数即为:
$$ L(\theta)= \Pi_{i=1}^{m}L(\theta)_i= \Pi_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta)= \Pi_{i=1}^{m}{1\over\sqrt{2\pi}\sigma}exp{(-{(y^{(i)}-\theta^Tx^{(i)})^2\over 2\sigma^2})} $$
对数变化,得到对数似然函数:
$$ \log L(\theta)=\log \prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta ^{T}x^{(i)})^{2}}{2\sigma ^{2}}) $$
展开化简得:
$$ \log L(\theta)=m\log \frac{1}{\sqrt{2\lambda }\sigma }-\frac{1}{\sigma ^{2}}\cdot \frac{1}{2}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2} $$
使得似然函数最大,即要求目标函数最小,此时目标函数为:
$$ \frac{1}{2}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}\tag{4} $$
对(4)求偏导得(以下为最小二乘法):
$$ \theta(X^{T}X)-X^{T}y $$
令偏导数等于0,得:
$$ \theta =(X^{T}X)^{-1}X^{T}y $$
但是并不是所有的目标函数都可以这样求解,从而求得参数,往往需要用到另外一种方法,在这里,线性回归只是一种特例,求导较简单。机器学习往往需要告诉电脑需要朝着什么样的方向去学习。
对于目标函数
$$ \frac{1}{2m}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2} $$
随机梯度下降(SGD)
$\alpha$为学习率,随机采用一个样本进行迭代
$$ \theta_{j}=\theta _{j}+\alpha(y^{(i)}-\theta ^{T}x^{(i)})x_{j}^{i} $$
批量梯度下降(BATCH)
所有的样本来迭代
$$ \theta_{j}=\theta _{j}+\alpha \frac{1}{m}\sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})x_{j}^{i} $$
小批量梯度下降(MINI-BATCH)
部分样本来进行迭代
$$ \theta_{j}=\theta _{j}+\alpha \frac{1}{k}\sum_{i=1}^{k}(y^{(i)}-\theta ^{T}x^{(i)})x_{j}^{i} $$
防止过拟合 正则项
目标函数中加入对于参数项的惩罚,防止过拟合,提高模型的泛化能力。
- Ridge回归 也叫岭回归 L2正则($\lambda \sum_{j=1}^{m}\theta _{j}^{2}$)
$$ J(\theta)=\frac{1}{2}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}+\lambda \sum_{j=1}^{m}\theta _{j}^{2} $$
- LASS0 L1 正则($\lambda \sum_{j=1}^{m}\left | \theta \right |$)
$$ J(\theta)=\frac{1}{2}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}+\lambda \sum_{j=1}^{m}\left | \theta \right | $$
- Elastic Net
$$ J(\theta)=\frac{1}{2}\cdot \sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}+\lambda (P\sum_{j=1}^{m}\left | \theta \right |+(1-p)\sum_{j=1}^{m}\theta _{j}^{2}) $$