引言

 机器学习栏目记录我在学习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)” 清晰讲解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 ...

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

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

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

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

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

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

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

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

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

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

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

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

  8. ML 逻辑回归 Logistic Regression

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

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

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

随机推荐

  1. NO.1 You must restart adb and Eclipse多种情形分析与解决方式

    一:错误提示 The connection to adb is down, and a severe error has occured. You must restart adb and Eclip ...

  2. 【UWP通用应用开发】控件、应用栏

    控件的属性.事件与样式资源 怎样加入控件 加入控件的方式有多种,大家更喜欢以下哪一种呢? 1)使用诸如Blend for Visual Studio或Microsoft Visual Studio X ...

  3. Jodd-vtor验证框架

    VTor是一个编程式验证框架,适用于任意java对象的验证.它是一个快速.微型的.专注于验证的框架.也可以通过注解或者手动设置验证条件.验证条件也可以在profile中分组.VTor是可扩展的,用户很 ...

  4. 1.字符设备驱动------Linux中断处理体系结构

    一.中断处理体系结构的初始化 Linux内核将所有的中断统一编号,使用一个irq_desc结构数组来描述这些中断;每个数组项对应一个中断,也可能是一组中断,它们共用相同的中断号,里面记录了中断的名称. ...

  5. 【Codeforces Round #453 (Div. 2) B】Coloring a Tree

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 从根节点开始. 显然它是什么颜色.就要改成对应的颜色.(如果上面已经有某个点传了值就不用改 然后往下传值. [代码] #includ ...

  6. iOS Threading编程指南 官方文档翻译第一篇(序言)

    序言   Thread是能够使多个code paths 在同一个APP内并发运行的几种技术之一.虽然新的技术为并发运行提供了先进.高效的工具(例如operation 对象和GCD),但是OS X和iO ...

  7. 微信支付v2开发(10) 全网发布

    关键字:微信公众平台 微信支付 全网发布 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/wxpay-publish.html 在这篇微信公众平台开发教程中, ...

  8. Flask项目之手机端租房网站的实战开发(五)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/8 ...

  9. 洛谷 P1510 精卫填海

    洛谷 P1510 精卫填海 题目描述 [版权说明] 本题为改编题. [问题描述] 发鸠之山,其上多柘木.有鸟焉,其状如乌,文首,白喙,赤足,名曰精卫,其名自詨.是炎帝之少女,名曰女娃.女娃游于东海,溺 ...

  10. 洛谷 P2095 营养膳食

    洛谷 P2095 营养膳食 题目描述 Mr.L正在完成自己的增肥计划. 为了增肥,Mr.L希望吃到更多的脂肪.然而也不能只吃高脂肪食品,那样的话就会导致缺少其他营养.Mr.L通过研究发现:真正的营养膳 ...