线性回归、梯度下降、逻辑回归(Linear Regression、Gradient Descent、Logistic Regression)
Regression 常规步骤
- 寻找h函数(即预测函数)
- 构造J函数(损失函数)
- 想办法使得J函数最小并求得回归参数(θ)
线性回归(Linear Regression)
假设特征和结果满足线性关系,即满足一个计算公式h(x),这个公式的自变量就是已知的数据x,函数值h(x)就是要预测的目标值。这一计算公式称为回归方程,得到这个方程的过程就称为回归。
线性回归就是假设这个方式是一个线性方程,即假设这个方程是一个多元一次方程。假设自变量为x1、x2,因变量为y,我们用h(x)来表示y。假设x与y是线性关系。他们满足公式
上述公式中的θ为参数,也称为权重,可以理解为x1和x2对h(x)的影响度。对这个公式稍作变化就是
公式中θ和x是向量,n是样本数。
损失函数(Loss Function)--依据训练数据求解θ的最优取值
损失函数利用最小二乘法
梯度下降(Gradient Descent)
求解使得J(θ)最小的θ值,最小均方算法(Least mean square,LMS算法)大概的思路是:我们首先随便给θ一个初始化的值,然后改变θ值让J(θ)的取值变小,不断重复改变θ使J(θ)变小的过程直至J(θ)约等于最小值。θ迭代公式:
公式中α称为步长(learning rate),它控制θ每次向J(θ)变小的方向迭代时的变化幅度。J(θ)对θ的偏导表示J(θ)变化最大的方向。由于求的是极小值,因此梯度方向是偏导数的反方向。求解一下这个偏导,过程如下:
那么θ的迭代公式就变为:
样本为多个时,可以使用:梯度下降(gradient descent)和正则方程(The normal equations)
- 批梯度下降(batch gradient descent)--每一步都是计算的全部训练集的数据
转化为处理多个样本就是如下表达:
注意,梯度下降可能得到局部最优,但在优化问题里我们已经证明线性回归只有一个最优点,因为损失函数J(θ)是一个二次的凸函数,不会产生局部最优的情况。(假设学习步长α不是特别大)
批梯度下降的算法执行过程如下图:
- 随机梯度下降(Stochastic Gradient Descent, SGD)
随机梯度下降表达式如下:
执行过程如下图:
批梯度下降和随机梯度下降在三维图上对比如下:
线性回归是回归问题中的一种,线性回归假设目标值与特征之间线性相关,即满足一个多元一次方程。使用最小二乘法构建损失函数,用梯度下降来求解损失函数最小时的θ值。
参考自:http://www.cnblogs.com/BYRans/p/4700202.html#3771771
逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数g(z)将最为假设函数来预测。g(z)可以将连续值映射到0到1之间。线性回归模型的表达式带入g(z),就得到逻辑回归的表达式:
- 逻辑回归的软分类
- 梯度上升
第二步是根据g(z)求导的特性g'(z) = g(z)(1 - g(z)) 。
第三步就是普通的变换。
- Logistic Regression的适用性
只有在feature和target是线性关系时,才能用Logistic Regression
逻辑回归不像朴素贝叶斯一样需要满足条件独立假设(因为它没有求后验概率)。但每个feature的贡献是独立计算的,即LR是不会自动帮你combine 不同的features产生新feature的。
- 逻辑回归的优缺点
1)可以适用于连续性和类别性自变量;
2)速度快,适合二分类问题 (预测结果是界于0和1之间的概率);
3)简单易于理解,直接看到各个特征的权重 ;
4)能容易地更新模型吸收新的数据 。
缺点:
对数据和场景的适应能力有局限性,不如决策树算法适应性那么强。
1)对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性;
2)预测结果呈“S”型,因此从log(odds)向概率转化的过程是非线性的,在两端随着log(odds)值的变化,概率变化很小,边际值太小,slope太小,而中间概率的变化很大,很敏感。 导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阀值。