1. Classification

这篇文章我们来讨论分类问题(classification problems),也就是说你想预测的变量 y 是一个离散的值。我们会使用逻辑回归算法来解决分类问题。

之前的文章中,我们讨论的垃圾邮件分类实际上就是一个分类问题。类似的例子还有很多,例如一个在线交易网站判断一次交易是否带有欺诈性(有些人可以使用偷来的信用卡,你懂的)。再如,之前判断一个肿瘤是良性的还是恶性的,也是一个分类问题。

在以上的这些例子中,我们想预测的是一个二值的变量,或者为0,或者为1;或者是一封垃圾邮件,或者不是;或者是带有欺诈性的交易,或者不是;或者是一个恶性肿瘤,或者不是。

我们可以将因变量(dependant variable)可能属于的两个类分别称为负向类(negative class)和正向类(positive class)。可以使用0来代表负向类,1来代表正向类。

现在,我们的分类问题仅仅局限在两类上:0或者1。之后我们会讨论多分类问题,也就是说,变量 y 可以取多个值,例如0,1,2,3。

那么,我们如何来解决一个分类问题呢?来看以下例子:

现在有这样一个分类任务,需要根据肿瘤大小来判断肿瘤的良性与否。训练集如上图所示,横轴代表肿瘤大小,纵轴表示肿瘤的良性与否,注意,纵轴只有两个取值,1(代表恶性肿瘤)和0(代表良性肿瘤)。

通过之前的博文,我们已经知道对于以上数据集使用线性回归来处理,实际上就是用一条直线去拟合这些数据。因此,你得到的 Hypothesis 可能如下:

那么,如果你想做出预测,一种可行的方式是如下:

从以上这个例子来看,似乎线性回归也能很好的解决分类问题。现在,我们对以上问题稍作一些改动。

将横轴向右扩展,并且增加一个训练样本,如下:

此时,我们使用线性回归,会得到一条新的直线:

此时,我们再用0.5作为阈值来预测肿瘤的良性与否,就不合适了。

2. Hypothesis Representation

3. Decision boundary

强调一下,决策边界不是训练集的属性,而是假设本身及其参数的属性。只要我们给定了参数向量θ,决策边界就确定了。我们不是用训练集来定义的决策边界,我们用训练集来拟合参数θ,以后我们将谈论如何做到这一点。但是,一旦你有参数θ它就确定了决策边界。

4. Cost function

1

现在我们来讨论如何拟合逻辑回归中模型的参数θ。

具体来说,我们需要定义optimization objective 或者 cost function 来拟合参数θ,这便是监督学习问题中的逻辑回归模型的拟合问题。

如上图所示,我们有一个训练集,里面有m个训练样本,同之前一样,我们的每个样本使用n+1维的特征向量表示(x0 = 1)。并且由于是分类问题,我们训练集中的所有y,取值不是0就是1。假设函数的参数即为θ。那么,对于这个给定的训练集,我们如何拟合参数θ(或者说是选择参数θ)?

之前,我们使用线性回归模型来拟合假说参数θ时,使用了如下的代价函数,我们稍作改变,将原先的1/2m中的原先的1/2放到了求和符号里面去了。

现在我们使用另一种方式,来书写代价函数:

现在,我们能更清楚的看到代价函数是这个Cost函数(代价项)在训练集范围上的求和,再求均值(乘以1/m)。

我们稍微简化一下这个式子,去掉这些上标会显得方便一些,所以Cost函数直接定义为:

对这个代价项(Cost函数)的理解是这样的:y我所期望的值,通过学习算法如果想要达到这个值,那么假设h(x)所需要付出的代价即为这个代价项。这个希望的预测值是h(x),而实际值则是y,干脆,全部去掉那些上标好了。

显然,在线性回归中,代价项(Cost函数)会被定义为:1/2乘以预测值h和实际值观测的结果y的差的平方。这个代价值可以很好地用在线性回归里
,但是对于逻辑回归却是不合适的。

2

如果我们可以最小化代价函数J(θ)中的代价项(Cost函数),那么我们的确可以使用该代价项。但实际上,如果我们使用该代价项,那么代价函数J(θ)会变成关于参数θ的非凸函数。Why?

对于逻辑回归来说,这里的h函数是非线性的:


可以说:

是一个很复杂的非线性函数,因此如果用h函数来构造我们在线性回归中所使用的代价项(Cost函数),接着再用该代价项来构造代价函数J(θ)。

那么J(θ)可能是一个这样的函数,有很多局部最优值:


实际上,这就是一个非凸函数。

不难发现,如果你把梯度下降法用在一个这样的函数上的话,我们并不能保证它会收敛到全局最小值。

显然,我们希望我们的代价函数J(θ)是一个凸函数,也就是一个单弓形函数,如下图所示:


如果对它使用梯度下降法,那么我们可以保证梯度下降法会收敛到该函数的全局最小值。

因此我们在逻辑回归中使用这个代价项(Cost函数)的问题在于非线性的sigmoid函数的出现导致J(θ)成为一个非凸函数。

3

我们需要做的是,另外找一个本身是凸函数的代价项(Cost函数),可以让我们使用类似于梯度下降的算法来找到一个全局最小值。以下就是一个我们将要在逻辑回归中使用的代价项(Cost函数):

5. Simplified cost function and gradient descent

注意,此时θ是变量。我们的目标就是找出使J(θ)最小的θ值。

机器学习之逻辑回归(Logistic Regression)的更多相关文章

  1. 机器学习 (三) 逻辑回归 Logistic Regression

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...

  2. 机器学习总结之逻辑回归Logistic Regression

    机器学习总结之逻辑回归Logistic Regression 逻辑回归logistic regression,虽然名字是回归,但是实际上它是处理分类问题的算法.简单的说回归问题和分类问题如下: 回归问 ...

  3. 机器学习入门11 - 逻辑回归 (Logistic Regression)

    原文链接:https://developers.google.com/machine-learning/crash-course/logistic-regression/ 逻辑回归会生成一个介于 0 ...

  4. Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)” 清晰讲解logistic-good!!!!!!

    原文: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 ...

  5. 机器学习(四)--------逻辑回归(Logistic Regression)

    逻辑回归(Logistic Regression) 线性回归用来预测,逻辑回归用来分类. 线性回归是拟合函数,逻辑回归是预测函数 逻辑回归就是分类. 分类问题用线性方程是不行的   线性方程拟合的是连 ...

  6. 机器学习方法(五):逻辑回归Logistic Regression,Softmax Regression

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 前面介绍过线性回归的基本知识, ...

  7. 逻辑回归(Logistic Regression)详解,公式推导及代码实现

    逻辑回归(Logistic Regression) 什么是逻辑回归: 逻辑回归(Logistic Regression)是一种基于概率的模式识别算法,虽然名字中带"回归",但实际上 ...

  8. ML 逻辑回归 Logistic Regression

    逻辑回归 Logistic Regression 1 分类 Classification 首先我们来看看使用线性回归来解决分类会出现的问题.下图中,我们加入了一个训练集,产生的新的假设函数使得我们进行 ...

  9. 【机器学习】Octave 实现逻辑回归 Logistic Regression

    ex2data1.txt ex2data2.txt 本次算法的背景是,假如你是一个大学的管理者,你需要根据学生之前的成绩(两门科目)来预测该学生是否能进入该大学. 根据题意,我们不难分辨出这是一种二分 ...

  10. [笔记]机器学习(Machine Learning) - 02.逻辑回归(Logistic Regression)

    逻辑回归算法是分类算法,虽然这个算法的名字中出现了"回归",但逻辑回归算法实际上是一种分类算法,我们将它作为分类算法使用.. 分类问题:对于每个样本,判断它属于N个类中的那个类或哪 ...

随机推荐

  1. Android之Activity的几种跳转方式

     1.显示调用方法 Intent intent=new Intent(this,OtherActivity.class);  //方法1 Intent intent2=new Intent(); in ...

  2. Repair the database using DBCC CHECKDB

    So now if you want to place AdventureWorks2008R2 sample database in a single-user mode, then write t ...

  3. GNU make 总结 (二)

    规则描述了在何种情况下使用什么命令来创建或者更新一个目标.如果在makefile中第一个规则有多个目标的话,那么多个目标中的第一个将会作为make的“终极目标”. 3.1 规则语法 TARGETS : ...

  4. [转]ldconfig几个需要注意的地方

    [转]ldconfig几个需要注意的地方 http://www.cnblogs.com/arci/archive/2011/03/19/1988952.html 1. 往/lib和/usr/lib里面 ...

  5. web安全之token

    Token,就是令牌,最大的特点就是随机性,不可预测.一般黑客或软件无法猜测出来. 那么,Token有什么作用?又是什么原理呢? Token一般用在两个地方: 1)防止表单重复提交. 2)anti c ...

  6. 【转载】FPGA静态时序分析——IO口时序

    转自:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1  概述 在高速系统中FPGA时序约束不止包括内部时钟约束 ...

  7. AUTH过程

    INITIALIZE UPDATE: 在安全通道的显式发起期间,INITIALIZEUPDATE命令用于在卡和主机之间传送卡和会话数据.这个命令开始一个安全通道会话的发起. CPURESET() // ...

  8. Bootstrap入门二:响应式页面布局

    Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列.它包含了易于使用的预定义类,还有强大的mixin 用于生成更具 ...

  9. 【Reorder List】cpp

    题目: Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do ...

  10. SQL-AdventureWorks样例数据库

    1. 下载样例数据库文件 输入网址:http://www.codeplex.com/ , 搜索:microsoft sql server product samples 下载对应数据库的Adventu ...