Logistic回归模型

1. 模型简介:

线性回归往往并不能很好地解决分类问题,所以我们引出Logistic回归算法,算法的输出值或者说预测值一直介于0和1,虽然算法的名字有“回归”二字,但实际上Logistic回归是一种分类算法(classification y = 0 or 1)。

Logistic回归模型:

课堂记录(函数图像):

函数h(x)的输出值,我们把它看做,对于一个输入值x,y = 1的概率估计。比如说肿瘤分类的例子,我们有一个特征向量x,似的h(x)的输出为0.7,我们的假设将这样解释:这个具有特征向量x的患者,患有恶性肿瘤(y=1)的概率为0.7。

 

进一步理解假设函数:

如上推导过程由y = 0/y = 1,的结论出发,转化成为对的取值范围要求。下面引入一个简单的例子,并介绍决策边界的概念。

决策边界:

在上图例中,我们假设已经拟合出参数,满足时, ,我们将图中标为绿色的这条直线称为决策边界,这条直线上的点满足。【注:决策边界是假设函数的属性,决定于其参数,不是数据集的属性。只要给定了假设函数参数,决策边界(形状)就确定了。】

在logistic回归中,应用更复杂的假设函数,我们就可能得到具有更复杂形状的决策边界。

2. 如何拟合Logistic回归(假设函数参数):

具体来说,我要来定义用来拟合参数的代价函数,这便是监督学习问题中Logistic回归模型的拟合问题。

我们有一个训练集,里面有m个训练样本,每个训练样本用n+1维的特征向量表示,特征。由于是一个分类问题,所以具有这样的特征:所有的标签y不是0就是1。

对于这个代价函数Cost的理解是这样的,它是在输出的预测值是时,而实际标签是y的情况下,我们希望学习算法付出的代价。由于在Logistic回归中我们的假设函数是非线性的,所以我们得到的代价函数可能会是一个非凸函数,如左边的图像,很显然如果我们对这样的使用梯度下降法是无法保证得到全局最优的。因此我们需要找到一种新的Cost函数形式,使我们得到右侧的凸函数图像,以便使用我们比较好的算法如梯度下降算法。

凸优化问题:

y = 1的情况

我们对函数的左右两端(0,1)进行分析可知此代价函数合理(y = 1时,如果,将会获得巨大的代价;如果,则预测正确,代价为0)。

y = 0的情况

同理我们可对其合理性进行分析。

我们可以将代价函数优化后写成如下更加紧凑的等价形式:

课堂记录:

Conclusion:

有了代价函数,我们要寻找使其最小的一组参数 。Logistic回归整体思路如下:

3. 梯度下降过程:

尽管蓝色框中更新参数的规则看起来和线性回归的梯度下降参数更新规则基本相同,但实际上由于假设的定义发生变化,它和线性回归中的梯度下降实际上是完全不同的。同时,在实现的过程中记得要注意特征缩放带来的优化效果。

4. 高级优化:

实际上完全有可能成功使用这些算法并应用于许多不同的学习问题,而不需要真正理解这些算法的内循环在做什么。同时除非你的研究方向即数值计算,否则都不推荐自己实现这些算法去应用,因为它们比梯度下降要复杂得多。

下面以一个例子解释这些高级算法如何应用。

我们实现一个代价函数costFounction(theta),它返回两个参数,其中jVal是我们要计算的代价函数,gradient是一个n*1维向量,其值与偏导数项一一对应。运行这个costFounction函数,完成以上两部分值的计算后,我们就可以调用高级的优化函数,这个函数叫fminunc(in Octave 表示无约束最小化函数)。(首先需要设置一些options:此处设置梯度目标参数为“on”、100次迭代)@costFunction指向我们刚定义的costFunction函数的指针,如果你调用它,就会使用高级优化算法其中的一个,当然你可以把它当做是梯度下降,只不过它能自动选择学习速率(注:此处使用fminunc时)。

实现代码:

有了这些高级优化的概念,并将它们很好的应用于较大规模的机器学习问题。我们就能将Logistic回归和线性回归模型应用于解决更多的学习问题。

5. 多类别分类问题:

其实我们也可以将二元分类问题的思想用在多分类问题中,称为一对多的思想。

如上图左侧是我们解决二元分类问题的过程。一对多分类的思想如下图:

我们拟合出三个分类器,每一个分类器都针对其中一种情况进行训练,最终我们训练了逻辑回归的分类器,预测i类别y=i的概率。最后为了做出预测,我们对每个分类器输入一个x,最后取h最大的类别。

机器学习笔记(三)Logistic回归模型的更多相关文章

  1. 吴恩达机器学习笔记 —— 7 Logistic回归

    http://www.cnblogs.com/xing901022/p/9332529.html 本章主要讲解了逻辑回归相关的问题,比如什么是分类?逻辑回归如何定义损失函数?逻辑回归如何求最优解?如何 ...

  2. 机器学习笔记(四)Logistic回归模型实现

     一.Logistic回归实现 (一)特征值较少的情况 1. 实验数据 吴恩达<机器学习>第二课时作业提供数据1.判断一个学生能否被一个大学录取,给出的数据集为学生两门课的成绩和是否被录取 ...

  3. 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归

    机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...

  4. 机器学习实战读书笔记(五)Logistic回归

    Logistic回归的一般过程 1.收集数据:采用任意方法收集 2.准备数据:由于需要进行距离计算,因此要求数据类型为数值型.另外,结构化数据格式则最佳 3.分析数据:采用任意方法对数据进行分析 4. ...

  5. 机器学习(4)之Logistic回归

    机器学习(4)之Logistic回归 1. 算法推导 与之前学过的梯度下降等不同,Logistic回归是一类分类问题,而前者是回归问题.回归问题中,尝试预测的变量y是连续的变量,而在分类问题中,y是一 ...

  6. 机器学习之线性回归---logistic回归---softmax回归

    在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题 ...

  7. 如何在R语言中使用Logistic回归模型

    在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...

  8. SPSS数据分析—多分类Logistic回归模型

    前面我们说过二分类Logistic回归模型,但分类变量并不只是二分类一种,还有多分类,本次我们介绍当因变量为多分类时的Logistic回归模型. 多分类Logistic回归模型又分为有序多分类Logi ...

  9. logistic回归模型

    一.模型简介 线性回归默认因变量为连续变量,而实际分析中,有时候会遇到因变量为分类变量的情况,例如阴性阳性.性别.血型等.此时如果还使用前面介绍的线性回归模型进行拟合的话,会出现问题,以二分类变量为例 ...

随机推荐

  1. vim编辑器-多行加注释与去注释

    在使用vim编辑器时,有时候需要对多行代码进行加注释或去注释,下面将介绍两种方法. 方法一:块选择模式 1. 插入注释 (1)首先按键盘上的ESC进入命令行模式 (2)再按Ctrl+V进入VISUAL ...

  2. C++_day8_ 多重继承、钻石继承和虚继承

    1.继承的复习 1.1 类型转换 编译器认为访问范围缩小是安全的. 1.2 子类的构造与析构 子类中对基类构造函数初始化只能写在初始化表里,不能写在函数体中. 阻断继承. 1.3 子类的拷贝构造与拷贝 ...

  3. Java分布式锁看这篇就够了

    ### 什么是锁? 在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量. 而同步的本质是通过锁来实现的 ...

  4. Asp.net core 学习笔记 Razor Page

    更新 2019-04-27 最近做了更多的 research 发现微软视乎有意发展 razor page. razor page 的定位是 mvvm, 现在还有个叫 blazor 的东西, 类似用 c ...

  5. Caffe on Mac OS X 10.11

    在Mac环境安装Caffe环境(CPU_ONLY) http://blog.csdn.net/xidiancoder/article/details/52081519   有问题 http://blo ...

  6. WARING

    每一道题都先手玩样例! 认真读一下每一档数据,仔细计算每一档可以拿的分数! 读完题目后,把所有能想到的思路写在纸上. 最优化题目考虑dp和贪心两种方法 字符串题目前缀考虑trie树,后缀考虑fail树 ...

  7. Activiti之流程通过、驳回、会签、转办、中止、挂起等核心操作封装(Activiti5.9)

    http://blog.csdn.net/rosten/article/details/38300267 package com.famousPro.process.service.impl; imp ...

  8. 缺少的文件是 ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props。

    报错信息: 严重性 代码 说明 项目级别 文件 行 禁止显示状态 工具错误 这台计算机上缺少此项目引用的 NuGet 程序包.使用“NuGet 程序包还原”可下载这些程序包.有关更多信息,请参见 ht ...

  9. 【Redfin SDE intern】跪经

    萌新的面试第一弹 Redfin是我求职生涯中的第一家,第一个电面,第一个onsite.除了结果不好,其他过程都很好... 春节当天风风火火去西雅图面试,之前分配的五个面试官其中有两个中国人,然而全部被 ...

  10. 20175212童皓桢 《Java程序设计》第一周学习

    学号 20175212-2 <Java程序设计>第1周学习总结 教材学习内容总结 1.安装了virtualbox 并配置了推荐的Ubuntu虚拟机 2.在Linux下通过shell,安装了 ...