引言

 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归、逻辑回归、Softmax回归、神经网络和SVM等等。主要学习资料来自Standford Andrew Ng老师在Coursera的教程以及UFLDL Tutorial,Stanford CS231n等在线课程和Tutorial,同一时候也參考了大量网上的相关资料(在后面列出)。
 

前言

 本文主要介绍逻辑回归的基础知识。文章小节安排例如以下:
 1)逻辑回归定义
 2)如果函数(Hypothesis function)
 3)决策边界(Decision Boundary)
 4)代价函数(Cost Function)
 5)优化方法
 

逻辑回归定义

 简单来说,
 逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习方法。用于预计某种事物的可能性。比方某用户购买某商品的可能性。某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等。
 注意。这里用的是“可能性”。而非数学上的“概率”,logisitc回归的结果并不是数学定义中的概率值,不能够直接当做概率值来用。该结果往往用于和其它特征值加权求和,而非直接相乘。

 那么逻辑回归与线性回归是什么关系呢?
 逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)

逻辑回归如果因变量 y 服从伯努利分布。而线性回归如果因变量 y 服从 高斯分布。

 因此与线性回归有非常多同样之处,去除Sigmoid映射函数的话。算法就是一个线性回归。能够说。逻辑回归是以线性回归为理论支持的,可是逻辑回归通过Sigmoid函数引入了非线性因素。因此能够轻松处理0/1分类问题。

 
 机器学习中的不论什么算法都有着数学基础,有着不同的前提如果和对应的约束。因此如果想要深入的掌握机器学习算法。必须要捡起数学课本,包含统计、概率、微积分等。
 
 

如果函数(Hypothesis function)

 逻辑回归的如果函数形式例如以下:
 
 这个函数称为Sigmoid函数,也称为逻辑函数(Logistic function)。其函数曲线例如以下:
 
 
 从上图能够看到sigmoid函数是一个s形的曲线。它的取值在[0, 1]之间,在远离0的地方函数的值会非常快接近0/1。这个性质使我们能够以概率的方式来解释。
 一个机器学习的模型。实际上是把决策函数限定在某一组条件下,这组限定条件就决定了模型的如果空间。当然。我们还希望这组限定条件简单而合理。

而逻辑回归模型所做的如果是:
 
 
 这里的 g(h) 是上边提到的 sigmoid 函数。对应的决策函数为:
 
 
 选择0.5作为阈值是一个一般的做法。实际应用时特定的情况能够选择不同阈值。如果对正例的判别准确性要求高,能够选择阈值大一些。对正例的召回要求高,则能够选择阈值小一些。

 
 

决策边界(Decision Boundary)

 决策边界,也称为决策面。是用于在N维空间。将不同类别样本分开的平面或曲面。
 首先看Andrew Ng老师课程上的两张图:
 线性决策边界:
 
 决策边界:
 
 
 非线性决策边界:
 
 决策边界:
 
 
 上面两张图非常清晰的解释了什么是决策边界,决策边界事实上就是一个方程,在逻辑回归中。决策边界由theta’X=0定义。
 要注意理解如果函数和决策边界函数的差别与联系。决策边界是如果函数的属性,由如果函数的參数决定。
 在逻辑回归中,如果函数(h=g(z))用于计算样本属于某类别的可能性;决策函数(h=1(g(z)>0.5))用于计算(给出)样本的类别。决策边界(θ^Tx=0)是一个方程。用于标识出分类函数(模型)的分类边界。
 
 

代价函数(Cost Function)

 线性回归中的代价函数:
 

 线性回归中的代价函数看上去非常好理解。但却不能用于逻辑回归。原因例如以下:
 如果我们使用这个代价值形式,J(θ)会变成參数θ的非凸函数,由于在逻辑回归中,H(θ)是一个Sigmoid函数,其曲线例如以下:
 
 
 该函数是一个非凸函数,有非常多局部最优值。

如果你把梯度下降法用在一个这种函数上,不能保证它会收敛到全局最小值。
 对应地我们希望我们的代价函数J(θ)是一个凸函数,是一个单弓形函数,例如以下:
 
 
 如果对它使用梯度下降法。我们能够保证梯度下降法会收敛到该函数的全局最小值。

 由于H(θ)是一个sigmoid函数,导致J(θ)成为一个非凸函数,因此。我们须要另外找到一个不同的代价函数,它是凸函数,使得我们能够使用非常好的算法,如梯度下降法,并且能保证找到全局最小值。

 
 因此,我们採用例如以下的形式计算样本的代价值:
 

 逻辑回归中的代价函数:
 

 
补充资料:极值 和 最优化问题
 所谓极值。简单地说,是指一群同类量中的最大量(或最小量).对于极值问题的研究,历来被视为一个引人入胜的课题.波利亚说过:“虽然每一个人都有他自己的 问题,我们能够注意到。这些问题大多是些极大或极小问题.我们总希望以尽可能低的代价来达到某个目标。或者以一定的努力来获得尽可能大的效果,或者在一定 的时间内做最大的功,当然,我们还希望冒最小的风险。

我相信数学上关于极大和极小的问题,之所以引起我们的兴趣,是由于它能使我们日常生活中的问题理想 化.”波利亚,《数学与猜想》,第一卷。第133页我们将看到。很多实际问题和数学问题。都可归结为形形色色的极值问题,才干得到统一地解决.
 
 

优化方法

 在逻辑回归中,依旧使用梯度下降法对代价函数进行优化。完整形式例如以下:
 
 
 注意:
 逻辑回归和线性回归问题中。梯度下降算法的形式看上去是一致的(更新參数的规则看起来基本同样),但实际上两者是全然不同的。由于如果函数是不同的,须要特别注意这一点。
 
 其向量化实现(vectorized implementation)例如以下:
 

[机器学习] Coursera ML笔记 - 逻辑回归(Logistic Regression)相关推荐

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

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

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

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

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

    http://52opencourse.com/125/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D%A6 ...

  4. 机器学习第三回——逻辑回归 (Logistic Regression)

    分类问题 属于监督学习的一种,要预测的变量

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

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

  6. 吴恩达机器学习 8.6 逻辑回归(Logistic Regression)

    6.1 分类问题 参考文档: 6 - 1 - Classification (8 min).mkv 在这个以及接下来的几个视频中,开始介绍分类问题. 在分类问题中,你要预测的变量 $y$ 是离散的值, ...

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

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

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

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

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

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

最新文章

  1. Spring Boot中使用AOP统一处理Web请求日志
  2. 程序员养发(老师付推荐)
  3. eclipse maven打包_Maven 学习
  4. P1601高精度加法
  5. pytorch神经网络解决回归问题(非常易懂)
  6. 《Effective C#》读书笔记——条目23:理解接口方法和虚方法的区别使用C#表达设计...
  7. 光标移动事件。 gridview光标移动变色
  8. yuzu 使用指南:如何在 PC 上运行 Switch 游戏
  9. 黑莓系统包服务器,黑莓os10.3.3.2163
  10. STM32LED--基于HAL库(LCD与LED冲突?一文看懂如何精准劝架)
  11. Win10删除文件需要管理员权限则怎么办?
  12. java在360运行不了_电脑360安全卫士打不开如何解决_360安全卫士无法打开的处理方法...
  13. 华为鸿蒙系统平板电脑,华为5G鸿蒙系统平板电脑正式入网,搭载八核处理器麒麟9000芯片...
  14. 利用群体遗传数据估计基因组上重组率
  15. 模态框中弹模态框的问题
  16. CSS(3) Background(背景)
  17. Java 下载excle模板问题记录
  18. linux 解压缩压缩文件(zip、rar、7z、tar)
  19. Excel如何将多列数据合并为一列
  20. android特效集锦系列之八 仿快播搜索框悬浮文字搜索

热门文章

  1. Android中通过Intent调用其他应用的方法
  2. DRDB的安装配置与使用(第二版)
  3. 网络安全netstat监听网络状态。
  4. 看了两篇园子里的文章,初步懂了点接口的涵义
  5. mui实现手机web拍照_WEB前端开发与后端开发比较
  6. arcengine坐标转换[转]
  7. Linux后台运行和关闭程序、查看后台任务
  8. 完全分布式部署Hadoop
  9. 广告行业中常说的 CPC,CPM,CPD,CPT,CPA,CPS 等词的意思是什么?
  10. selenium元素的定位以及操作 第二章