(整理自AndrewNG的课件,转载请注明。整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/

上一篇讲解了Logistic Regression的基础知识,感觉有很多知识没说清楚,自己理解的也不透彻,好在coursera上NG又从另外的角度讲了一下。这里我权当个搬运工,把他讲的搬过来,加上自己的理解整理一下。主要分成三个部分:对的再理解、Decision Boundary(决策边界)、多类问题。

1 对的再理解

这部分采用启发式的方式来讲解,循序渐进的在跟大家讲一下选择的合理性。我们知道Linear Regression不适合用来解决分类问题,从下面角度来理解:

对于Logistic Regression,

,由图显然,若x从负无穷到正无穷变化时,的变化范围也是从负无穷到正无穷,而y的取值只能是0或1 。这岂不是很奇怪,直观想象:即使不能映射到0或1,也至少将映射到,数学里还真有一个函数,那就是我们上次提到的:

那直接将特征x从映射到可以吗?显然不合理,若是那样:当x大于0时,就判断为1类,否则为0类,显然不符合实际情况,应该具体问题具体分析。所以就将进行映射,对于分类问题,通过恰当的选择特征构造,通过梯度下降法,是可以训练出分类器的。

从概率上这也是合理的,计算出的是,对于输入x,输出y=1的概率。假如对于输入x,计算出=0.7,则表示y=1的概率为70%,则判断为y=1 。

2 Decision Boundary(决策边界)

上面介绍了分类,却没对的含义,给出形象的解释:

图示如下:

假如已经训练好分类器为,我们对新输入x,判断其类别的依据是:

,由于,所以等价于判断:

所以就是我们的分类面,即Decision Boundary 。举例说明:

,对于这个分类问题有两个特征。我们假设,经过训练求解:

,则分界面为

,即

再来看一个非线性决策边界的例子:

,对于这个分类问题有4个特征,分别是。我们假设,经过训练求解:

,则分界面的方程为: ,为一个圆,图如下:

也就是说,虽然罗辑回归的假设函数为,但分类结果的直观表示却是,即Decision Boundary(决策边界)。

3 多类问题

以上我们主要介绍了用逻辑回归解决二值分类的问题,下面我们简要介绍一下多类问题。现实生活中有很多的多类问题,例如要根据掌握的信息进行天气的预测,就有阴、晴、雨、雪等情况;对邮件进行分类管理,也可分为家人、朋友、同事等管理类别。

用Logistic Regression解决多类问题的思路很简单:就是把就绝K类的问题,转化为求解K的二值分类问题。下面以一个例子来说明:

,这是一个简单的3类问题,我们把它分解成下面3个二值问题来解决:

,经过这样的处理就把问题转换成已知的二值分类问题了,用逻辑回归分别进行求解:

就可以得到表示对于输入变量x,它属于i类的概率。如果要对新来的输入进行类别的预测,分别计算,那类对应的最大,说明输入属于这个类别的概率最大,就判断为这个类别。

这里有一点需要注意:对于K类的多类问题,是要分解成K个二值问题的,而不是(K-1)个或更少。因为各个之间没有什么直接的关系(之和不为1):

,可以看到它们之间有交叉,也有都不包含的区域。

Logistic Regression(逻辑回归)(二)—深入理解的更多相关文章

  1. Coursera DeepLearning.ai Logistic Regression逻辑回归总结

    既<Machine Learning>课程后,Andrew Ng又推出了新一系列的课程<DeepLearning.ai>,注册了一下可以试听7天.之后每个月要$49,想想还是有 ...

  2. Logistic Regression逻辑回归

    参考自: http://blog.sina.com.cn/s/blog_74cf26810100ypzf.html http://blog.sina.com.cn/s/blog_64ecfc2f010 ...

  3. Logistic Regression(逻辑回归)

    分类是机器学习的一个基本问题, 基本原则就是将某个待分类的事情根据其不同特征划分为两类. Email: 垃圾邮件/正常邮件 肿瘤: 良性/恶性 蔬菜: 有机/普通 对于分类问题, 其结果 y∈{0,1 ...

  4. 机器学习简要笔记(五)——Logistic Regression(逻辑回归)

    1.Logistic回归的本质 逻辑回归是假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度上升/下降法来求解参数,从而实现数据的二分类. 1.1.逻辑回归的基本假设 ①伯努利分布:以抛硬币为例 ...

  5. Deep Learning 学习笔记(4):Logistic Regression 逻辑回归

    逻辑回归主要用于解决分类问题,在现实中有更多的运用, 正常邮件or垃圾邮件 车or行人 涨价or不涨价 用我们EE的例子就是: 高电平or低电平 同时逻辑回归也是后面神经网络到深度学习的基础. (原来 ...

  6. 【原】Coursera—Andrew Ng机器学习—Week 3 习题—Logistic Regression 逻辑回归

    课上习题 [1]线性回归 Answer: D A 特征缩放不起作用,B for all 不对,C zero error不对 [2]概率 Answer:A [3]预测图形 Answer:A 5 - x1 ...

  7. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 6_Logistic Regression 逻辑回归

    Lecture6 Logistic Regression 逻辑回归 6.1 分类问题 Classification6.2 假设表示 Hypothesis Representation6.3 决策边界 ...

  8. 机器学习之LinearRegression与Logistic Regression逻辑斯蒂回归(三)

    一 评价尺度 sklearn包含四种评价尺度 1 均方差(mean-squared-error) 2 平均绝对值误差(mean_absolute_error) 3 可释方差得分(explained_v ...

  9. 吴恩达深度学习:2.1Logistic Regression逻辑回归及其损失函数

    1.Logistic Regression是一个二元分类问题 (1)已知输入的特征向量x可能是一张图,你希望把它识别出来,这是不是猫图,你需要一个算法,可以给出预测值,更正式的y是一个概率,当输入特征 ...

随机推荐

  1. Javascript 运动基础 01

    JS运动基础  运动基础   让Div运动起来 速度——物体运动的快慢 运动中的Bug 不会停止 速度取某些值会无法停止 到达位置后再点击还会运动 重复点击速度加快   匀速运动 速度不变 <s ...

  2. python写的屏保程序

    __author__ = 'ChenYan' from random import randint from tkinter import * class Randball(): def __init ...

  3. 使用jquery获取ul的li的值赋值

    jquery:$('#dropdownMenu1').val(str);不jquery:document.getElementById('dropdownMenu1').value = str;

  4. 转:Linus:利用二级指针删除单向链表

    感谢网友full_of_bull投递此文(注:此文最初发表在这个这里,我对原文后半段修改了许多,并加入了插图) Linus大婶在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是 ...

  5. setitimer()函数使用

    setitimer()为Linux的API,并非C语言的Standard Library,setitimer()有两个功能,一是指定一段时间后,才执行某个function,二是每间格一段时间就执行某个 ...

  6. Android上成功实现了蓝牙的一些Profile

    前段时间做蓝牙方面的开发,Google的Android只实现了Handset/Handfree和A2DP/AVRCP等Profile,而其 它常用的Profile如HID/DUN/SPP/OPP/FT ...

  7. Cocos2D-X扫盲之坐标系、锚点

    一.引言 在Cocos2D-X的开发过程中,经常会碰到设置精灵位置的问题.而设置位置的过程,涉及到两个问题:第一是坐标系,包括原点的位置.X/Y坐标轴的方向灯:第二是基准点(Cocos2D-X中叫锚点 ...

  8. Python 第八篇:异常处理、Socket语法、SocketServer实现多并发、进程和线程、线程锁、GIL、Event、信号量、进程间通讯

    本节内容: 异常处理.Socket语法.SocketServer实现多并发.进程和线程.线程锁.GIL.Event.信号量.进程间通讯.生产者消费者模型.队列Queue.multiprocess实例 ...

  9. 知识点3-6:HTML辅助方法

    顾名思义,HTML辅助方法(HTML Helper)就是用来辅助产生HTML之用,在开发View的时候一定会面对许多HTML标签,处理这些HTML的工作非常繁琐,为了降低View的复杂度,可以使用HT ...

  10. Android学习笔记:进度条ProgressBar的使用以及与AsyncTask的配合使用

    ProgressBar时android用于显示进度的组件.当执行一个比较耗时的操作(如io操作.网络操作等),为了避免界面没有变化让用户体验降低,提供一个进度条可以让用户知道程序还在运行. 一.Pro ...