线性回归、梯度下降、逻辑回归(Linear Regression、Gradient Descent、Logistic Regression)

Regression 常规步骤

  1. 寻找h函数(即预测函数)
  2. 构造J函数(损失函数)
  3. 想办法使得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)
      随机梯度下降在计算下降最快的方向时随机选一个数据进行计算,而不是扫描全部训练数据集,这样就加快了迭代速度。随机梯度下降并不是沿着J(θ)下降最快的方向收敛,而是震荡的方式趋向极小点。余凯教授在龙星计划课程中用“曲线救国”来比喻随机梯度下降。
      随机梯度下降表达式如下:
clip_image001
  
   执行过程如下图:

 
     批梯度下降和随机梯度下降在三维图上对比如下:


线性回归是回归问题中的一种,线性回归假设目标值与特征之间线性相关,即满足一个多元一次方程。使用最小二乘法构建损失函数,用梯度下降来求解损失函数最小时的θ值。

参考自:http://www.cnblogs.com/BYRans/p/4700202.html#3771771

逻辑回归(Logistic Regression)
逻辑回归是一个二分类问题。
逻辑回归使用一个函数来归一化y值,使y的取值在区间(0,1)内,这个函数称为Logistic函数(logistic function),也称为Sigmoid函数(sigmoid function)。函数公式如下:


     逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数g(z)将最为假设函数来预测。g(z)可以将连续值映射到0到1之间。线性回归模型的表达式带入g(z),就得到逻辑回归的表达式: 

    依照惯例,x0=1:

 

  • 逻辑回归的软分类
    将y的取值通过Logistic函数归一化到(0,1)间,y的取值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率。

  • 梯度上升
    跟线性回归类似,构建似然函数,然后最大似然估计,最终推导出θ的迭代更新表达式。只不过这里用的不是梯度下降,而是梯度上升,因为这里是最大化似然函数不是最小化似然函数。
似然函数:


对似然函数取log,转换为:

对θ求偏导,以只有一个训练样本的情况为例:

求偏导过程:
第一步是对θ偏导的转化,依据偏导公式:y=lnx y'=1/x。
第二步是根据g(z)求导的特性g'(z) = g(z)(1 - g(z)) 。
第三步就是普通的变换。
ps: sigmoid函数求导特性:

这样我们就得到了梯度上升每次迭代的更新方向,那么θ的迭代表达式为:

  • Logistic Regression的适用性
1)可用于概率预测,也可用于分类
2)仅能用于线性问题
       只有在feature和target是线性关系时,才能用Logistic Regression
3)各feature之间不需要满足条件独立假设,但各个feature的贡献是独立计算的。
       逻辑回归不像朴素贝叶斯一样需要满足条件独立假设(因为它没有求后验概率)。但每个feature的贡献是独立计算的,即LR是不会自动帮你combine 不同的features产生新feature的。
  • 逻辑回归的优缺点
优点:
1)可以适用于连续性和类别性自变量;
2)速度快,适合二分类问题 (预测结果是界于0和1之间的概率);
3)简单易于理解,直接看到各个特征的权重 ;
4)能容易地更新模型吸收新的数据 。
缺点: 
对数据和场景的适应能力有局限性,不如决策树算法适应性那么强。
1)对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。​需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性;
2)预测结果呈“S”型,因此从log(odds)向概率转化的过程是非线性的,在两端随着​log(odds)值的变化,概率变化很小,边际值太小,slope太小,而中间概率的变化很大,很敏感。 导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阀值。


参考自:
http://www.cnblogs.com/BYRans/p/4700202.html#3771771
http://www.cnblogs.com/BYRans/p/4713624.html
http://blog.csdn.net/abcjennifer/article/details/7716281
http://blog.sina.com.cn/s/blog_890c6aa301015mya.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值