算法梳理(二)逻辑回归原理及实现

  • 逻辑回归原理
    • 一、从线性回归到逻辑回归
    • 二、二分类的逻辑回归
      • (一)过程推理
      • (二)正则化
    • 三、scikit-learn中逻辑回归参数详解

逻辑回归原理

logistic回归又称logistic回归分析是一个分类算法,是一种广义的线性回归分析模型,它可以处理二元分类以及多元分类。常用于处理分类问题。

一、从线性回归到逻辑回归

我们知道,线性回归的模型是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数θ,满足Y=Xθ。此时我们的Y是连续的,所以是回归模型。如果我们想要Y是离散的话,怎么办呢?一个可以想到的办法是,我们对于这个Y再做一次函数转换,变为g(Y)。如果我们令g(Y)的值在某个实数区间的时候是类别A,在另一个实数区间的时候是类别B,以此类推,就得到了一个分类模型。如果结果的类别只有两种,那么就是一个二元分类模型了。逻辑回归的出发点就是从这来的。下面我们开始引入二元逻辑回归。

二、二分类的逻辑回归

(一)过程推理

考虑二分类任务,其输出标记y值域是集合{0,1},而线性回归产生的预测值是实数,于是需要将实值转换为0/1值。于是我们用到了对数几率函数。

函数图像如下:

下面进行逻辑回归的分析和推理
y^\widehat{y}y​ 表示f(x)模型的预测值

而在逻辑回归中我们输出一个概率值,则先用p^\widehat{p}p​ 表示f(x)结果对应的概率

如果p^\widehat{p}p​ 大于等于0.5,则结果为1,p^\widehat{p}p​ 小于等于0.5则结果为0

利用对数几率函数由线性回归到逻辑回归的转化:

代入公式:

接下来就是给定x,y如何找到这个 θ\thetaθ
我们可以使用最大似然函数直接进行求解

这里从另一个角度进行分析:
如图所示,如果y=1时, 即p>0.5, 这个时候概率p越小, 被错分为y=0的几率越大,损失函数便会越大。与之对应,如果y=0时, 即p<0.5, 这个时候概率p越大, 被错分为y=1的几率越大,损失函数便会越大。因此我们想到了下面的log函数。

对应的y=0,1两个函数如下图:
可以看出两根曲线相应的表示成了y=1,y=0时对应的损失。

则最终的代价函数可定义为:

代入对数几率函数:

如何求解呢?我们先考虑梯度下降法的方式。

为了计算简便我们可以充分利用对数几率函数和log函数

对σ(t)\sigma(t)σ(t)求导可得:

然后再对log求导可得:

可得到求导公式:

最终可得到对应的梯度矩阵

之后取步长进行迭代,就可以得出最终的值θ\thetaθ。

(二)正则化

正则化是结构风险最小化策略的实现,是在经验风险上加上一个正则项(regularizer)或罚项(penalty term)。是模型选择的典型方法。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大。比较常用的正则化项有模型参数向量的范数,L1、L2等。
我们以线性回归为例,当我们的数据拟合出现过拟合的时候。

这个时候,我们可以发现w的一些值会变得很大。

而正则化的作用就是限制w参数大小。

首先来看加入L1正则化的优化目标(LASSO):
加入L1正则化的优化目标
min12m∑i=1n(hw(x(i))−y(i))2+λ∑j=12∣wj∣min \frac{1}{2m} \sum_{i=1}^{n} (h_w(x^{(i)})-y^{(i)})^2 + \lambda \sum_{j=1}^{2} |w_j|min2m1​i=1∑n​(hw​(x(i))−y(i))2+λj=1∑2​∣wj​∣
L1趋向于使得一部分的W值为零,可以起到特征选择的作用。

其中gamma是及其重要的参数,下面我们看一下在LASSO回归中gamma的取值对数据拟合的影响:

  1. gamma取0.01:

  1. gamma取0.1:

加入L2正则化的优化目标(Ridge):

min12m∑i=1n(hw(x(i))−y(i))2+λ∑j=12wj2min \frac{1}{2m} \sum_{i=1}^{n} (h_w(x^{(i)})-y^{(i)})^2 + \lambda \sum_{j=1}^{2}w_j^2min2m1​i=1∑n​(hw​(x(i))−y(i))2+λj=1∑2​wj2​

L2趋向于一条曲线。

其中gamma是及其重要的参数,下面我们看一下在Ridge回归中gamma的取值对数据拟合的影响:

  1. gamma=1

  1. gamma = 100

三、scikit-learn中逻辑回归参数详解

之前做过这一工作,可参考

算法梳理(二)逻辑回归原理及实现相关推荐

  1. 逻辑回归原理梳理_以python为工具 【Python机器学习系列(九)】

    逻辑回归原理梳理_以python为工具 [Python机器学习系列(九)] 文章目录 1.传统线性回归 2.引入sigmoid函数并复合 3. 代价函数 4.似然函数也可以 5. python梯度下降 ...

  2. 【机器学习】Logistic Regression逻辑回归原理与java实现

    [机器学习]Logistic Regression逻辑回归原理与java实现 1.基于概率的机器学习算法 2.逻辑回归算法原理 2.1.分离超平面 2.2.阈值函数 2.3.样本概率 2.4.损失函数 ...

  3. 机器学习必备算法之(一)逻辑回归(logistics regression)及Python实现

    笔者为数学系的一个小白,最近系统的在复习机器学习以及一些深度学习的内容,准备开个博记录一下这个有趣又痛苦的过程~hiahiahia,主要记录机器学习的几大经典算法的理论以及Python的实现.非计算机 ...

  4. 【机器学习】逻辑回归原理介绍

    [机器学习]逻辑回归原理介绍 [机器学习]逻辑回归python实现 [机器学习]逻辑回归sklearn实现 Logistic 回归模型是目前广泛使用的学习算法之一,通常用来解决二分类问题,虽然名字中有 ...

  5. 【TensorFlow】逻辑回归原理与实现(超详细)

    逻辑回归原理与实现 学习目标 1. 神经网络基础 1.1 Logistic回归 1.2 逻辑回归损失函数 2. 梯度下降算法 3. 导数 3.1 导数 3.2 导数计算图 3.3 链式法则 3.4 逻 ...

  6. 金融领域下的数据挖掘算法应用:逻辑回归模型

    摩天,用友旗下社会化的企业数智化学习认证社区,提供数智营销.智慧医疗.数智金融.智能制造.项目管理等精品课程,数智化人才上摩天!https://mot.yonyou.com/ 你将会学到: 股票客户流 ...

  7. 收藏!!如何 Get 机器学习必备的算法技能? | 逻辑回归

    本文是吴恩达老师的机器学习课程[1]的笔记和代码复现部分(逻辑回归). 作者:黄海广[2] 备注:笔记和作业(含数据.原始作业文件).视频都在github[3]中下载. 我将陆续将课程笔记和课程代码发 ...

  8. Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS

    Spark MLlib回归算法------线性回归.逻辑回归.SVM和ALS 1.线性回归: (1)模型的建立: 回归正则化方法(Lasso,Ridge和ElasticNet)在高维和数据集变量之间多 ...

  9. 逻辑回归原理与sklearn实现

    目录 一.逻辑回归介绍 1.应用场景 2.逻辑回归原理 2.1 输入 2.2激活函数 3.损失与优化 3.1 损失(对数似然损失) 3.2 优化 二.逻辑回归API介绍 三.案例实现 四.分类评估方法 ...

最新文章

  1. 高性能NIO框架Netty入门篇
  2. python画长方形-怎么用python 画出任意占空比的一串矩形方波呢?
  3. Python编程基础:第二十九节 异常Exception
  4. sgu 207 Robbers
  5. 角色动作系统概述:战斗、3C相关
  6. LeetCode Algorithm 103. 二叉树的锯齿形层序遍历
  7. 直播 背景 技术体系 乐视云直播Demo
  8. 爬了菊姐的两万条评论,竟发现菊粉都是这样的人!
  9. 【c语言】棋盘游戏--三子棋
  10. Facebook史上最严重宕机:互联网企业是时候重新审视架构了?
  11. IE6不支持min-heigt的bug解决的办法
  12. 通过channel进行goroutine间的通信
  13. Python 分析谁才是「权利的游戏」真正的主角?
  14. 安装webpack-cli时遇到的问题
  15. VS2017_Reshaper
  16. JAVA实现字体扩大代码_[Java教程]jQuery实现设置字体大小代码实例
  17. 图片秒加水印制作生成微信小程序源码下载免服务器域名
  18. 从零接入微信公众号(Java实现 附源码)
  19. [vivado系列]Vivado软件的下载
  20. 浅谈Feature Scaling

热门文章

  1. 压力集 软件测试,性能测试之压力机
  2. Linux的rsa命令,openssl命令行进行RSA加密解密
  3. xwiki安装使用以及问题解决
  4. Google怎么赚钱(转)
  5. 计算机网络码分多址CDMA及计算例题(简单易懂)
  6. 计算机机房管理系统的设计与实现,高校机房管理系统的设计与实现
  7. python实现朴素贝叶斯垃圾邮件分类
  8. checkmarx下载地址
  9. 机器学习笔记之受限玻尔兹曼机(四)推断任务——边缘概率
  10. 互动百科变快懂百科,纳入字节抖音旗下后要爆发了?