逻辑回归其实是是一种广义的线性回归,虽然说是回归函数,但是它其实是处理分类问题,我们从其背景,损失函数两方面说清楚。

背景

参考周志华教授的《机器学习》和吴恩达大神的深度学习中的讲解,逻辑回归的起源是解决二分类问题,这里我们假设二分类中的类别是{0,1},我们想知道给定一个样本X,这个样本属于1类的概率是多少?也就是要求得的值,而线性回归模型产生的预测值是实值,但是要想得到概率值,输出的值必须是在区间[0,1]内,所以想到的就是将线性回归模型产生的预测值通过变换使其在区间(0,1)内。

很明显sigmoid函数的值域在区间(0,1)内,如下图:

所以我们就得到:,这个就是逻辑回归函数的原型。这里的转换函数就是sigmoid函数,至于为什么选这个函数,首先这个函数的值域是在区间(0,1)内,还有一点很重要的是,这个函数连续可导。在机器学习和深度学习中,函数的选择包括各种激活函数都满足连续可导,这是因为在反向传播的时候,我们需要对误差函数进行求导,如果不可导的话,这个过程完全做不了。

从上述可以看出,逻辑回归具有以下优点:

(1) 它是直接对分类可能性进行建模,不需要事先假设数据分布,这样就避免了假设分布不准确所带来的的问题;

(2) 它不仅预测出“类别”,而是可以得到近似概率预测,这对于许多需要利用概率辅助决策的任务很有用;

(3) 此外,逻辑回归函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可以直接用于求解最优解。

损失函数

给定m个样本,,其中,这是个二分类问题,用逻辑回归解决。所以:,其中,最终的目的是希望预测的值和真实值无限接近:。也就是说希望预测值和真实值之间的误差越小越好。

在线性回归中,我们一般使用真实值和预测值的差得平方作为我们的损失函数,然后对其进行最小化,如,但是通常在逻辑回归中,不会选择使用这个损失函数,因为当我们使用这个损失函数来学习参数w和b的时候,会发现后面的优化问题会变成非凸的,最后会得到,很多个局部最优解,也就是说我们的梯度下降法可能找不到全局最优解,这个是机器学习中令人头痛的一个问题。

所以在逻辑回归中会定义一个不同的损失函数,它起着与误差平方相似的作用,最重要的是这个损失函数使得我们的优化问题是凸优化,以下是逻辑回归中的损失函数:

所以我们的目的是最小化上面这个损失函数。

为什么这个损失函数能够起作用,举两个例子说明:

(1) 当真实值y=1的时候,,这个时候,想要足够的小,也就是说足够的大,也就是足够的大,但是因为,所以的区间是在(0,1)内,又要想足够大,所以只能无限接近1。

(2) 同理当真实值y=0的时候,这个时候最小化损失函数的时候,只会让无限接近于0。

损失函数(loss function)是在单个训练样本中定义的,它衡量了在单个训练样本上的表现,下面定义一个成本函数(cost function)来衡量在全体训练样本上的表现。

成本函数

cost function:,所以最终的优化目标是成本函数。

问题变成了,通过最小化来找到参数w和b:

很明显可以看到成本函数是个凸函数,可以找到全局最优解,这也就是选择逻辑回归函数中选择作为损失函数的重要原因之一。

接下来就是使用梯度下降法找到使得成本函数最小的w和b的值:

(1) 初始化w和b,对于逻辑回归而言,几乎是任意的初始化方法都有效,这是因为我们的最小化函数是凸函数,无论w和b的初始值如何,我们总能找到全局最优解,通常用0来初始化w和b。

(2) 将训练数据输入逻辑回归模型中,得到成本函数

(3) 这一步是梯度下降的关键,我们重复计算:知道w和b的值不再变化。其中称为学习率,用来控制每一次的迭代或者梯度下降法中的步长。求解w和b就是迭代求导的过程。

一文读懂逻辑回归(Logistic Regression)相关推荐

  1. Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”

    Coursera公开课笔记: 斯坦福大学机器学习第六课"逻辑回归(Logistic Regression)" 斯坦福大学机器学习第六课"逻辑回归"学习笔记,本次 ...

  2. 斯坦福大学机器学习第四课“逻辑回归(Logistic Regression)”

    斯坦福大学机器学习第四课"逻辑回归(Logistic Regression)" 本次课程主要包括7部分: 1) Classification(分类) 2) Hypothesis R ...

  3. 逻辑回归(Logistic Regression)简介及C++实现

    逻辑回归(Logistic Regression):该模型用于分类而非回归,可以使用logistic sigmoid函数( 可参考:http://blog.csdn.net/fengbingchun/ ...

  4. OpenCV3.3中逻辑回归(Logistic Regression)使用举例

    OpenCV3.3中给出了逻辑回归(logistic regression)的实现,即cv::ml::LogisticRegression类,类的声明在include/opencv2/ml.hpp文件 ...

  5. OpenCV逻辑回归Logistic Regression的实例(附完整代码)

    OpenCV逻辑回归Logistic Regression的实例 OpenCV逻辑回归Logistic Regression的实例 OpenCV逻辑回归Logistic Regression的实例 # ...

  6. 逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为因变量,将用户的

    逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种.通过历史数据的表现对未来结果发生的概率进行预测.例如,我们可以将购买的概率设置为因变量,将用户的 ...

  7. 逻辑回归(logistic regression)的本质——极大似然估计

    文章目录 1 前言 2 什么是逻辑回归 3 逻辑回归的代价函数 4 利用梯度下降法求参数 5 结束语 6 参考文献 1 前言 逻辑回归是分类当中极为常用的手段,因此,掌握其内在原理是非常必要的.我会争 ...

  8. CS229学习笔记(3)逻辑回归(Logistic Regression)

    1.分类问题 你要预测的变量yyy是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法. 从二元的分类问题开始讨论. 我们 ...

  9. 机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)

    之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradien ...

最新文章

  1. 5 款最佳最牛代码比较神器
  2. 高手整理培训笔记(服务篇)
  3. 十分钟学习nginx
  4. Spring学习总结一
  5. ARM中C和汇编混合编程及示例
  6. Java中nextfloat怎么用,关于java的nextFloat()后面跟一个nextLine()
  7. mysql查询表中名字包含某个字符_查询当前数据库中所有用户表中哪些字段包含某个字符串...
  8. PYNQ实战笔记(二)————使用HLS构建加法器
  9. MySQL5.7 踩坑实录
  10. mysql导入报错1071_导入sql文件报错:1071 Specified key was too long; max key length is 767 bytes...
  11. 遇到 no plugin found for prefix 'tomcat 7' in the current project and in the plugin groups 的解决办法
  12. 超市管理系统软件测试用例图,超市管理系统用户管理模块测试用例集.doc
  13. 华为交换机eth口作用_华为网络交换机mode键作用 华为交换机这些接口的作用?...
  14. html语言超链接提示,HTML超链接
  15. 关于dcm4chee方面的问题,求各位英雄帮助,小女子感激不尽.... ...
  16. bzoj 1814 Fornula 1
  17. 员工奖金需要交税吗_员工先进表彰发放现金奖励需要交个税吗
  18. 如何在工作中提升自己
  19. LATEX公式下标短横线过长
  20. filecoin space race

热门文章

  1. android登录窗口化,教程:让你的安卓像Win一样实现程序窗口化运行
  2. 第十九篇玩转【斗鱼直播APP】系列之内容简介
  3. Linux下创建FTP用户和密码(日常操作)
  4. 微软推出的Prompt高级玩法,包括小样本和任务分解等,简直不要太详细:Azure OpenAI 的提示工程技术
  5. 2月9日龙虎榜买入及卖出数据以及涨停板具体情况
  6. 获得网络状态和实时监控网络状态改变
  7. SlickEdit 2014 V19 入门笔记
  8. 【Linux】linux中,你不得不爱的命令集(下)
  9. 一元实函数数的序偶定义
  10. 用python爬取快手评论(烂活新整)