上一周的课程 里,Andrew Ng 为我们介绍了什么是机器学习以及监督学习中的线性回归。对于一个监督学习,我们要确定我们的 预测函数代价函数,然后利用梯度下降算法找到 代价函数 最小时,预测函数 中的参数值。这周我们会接触监督学习中一类新的问题,称为分类问题。

点击 课程视频 你就能不间断地学习 Ng 的课程,关于课程作业的 Python 代码已经放到了 Github 上,点击 课程代码 就能去 Github 查看( 无法访问 Github 的话可以点击 Coding 查看 ),代码中的错误和改进欢迎大家指出。

以下是 Ng 机器学习课程第二周的笔记。

分类问题

对于监督学习中的分类问题,通常已知一些数据并知道它们各自属于什么类别,然后希望基于这些数据来判断新数据是属于什么类别的。比如已知一些症状特征和是否患有某种疾病的数据,基于这些数据来判断新的病人是否患病。再比如根据过去的垃圾邮件数据来判断新邮件是否为垃圾邮件。

预测函数

对于 线性回归 我们的 预测函数 为:


但这个 预测函数 的输出是个没有范围的连续值,并不适合分类问题。因此在 逻辑回归 中使用了:



来作 预测函数,其中 被称为 Sigmoid 函数,它很好地将 预测函数 的输出值控制在 0、1 之间。( 下图为 Sigmoid 函数图像 )

这样就可以将 预测函数 解释为在给定 及参数 的情况下, ( 属于这个分类 )的概率:


决策边界

对于分类问题,有一个新的概念称为 决策边界。由于最终我们必须决定输入数据是否属于某个分类,我们设定了 作为阈值,预测函数 输出大于 的就属于该分类,反之不属于。而 时,对应于 。我们将 对应的曲线称为决策边界( 注意这里的 并不是指训练数据,决策边界是 的属性,下图为作业中的决策边界 )。

代价函数

再来说说 逻辑回归 中的代价函数。如果沿用 线性回归 中的代价函数,我们会得到类似下图的曲线( 下图为单个特征 所对应的 代价函数 曲线,和 Ng 画的不太一样 ):

在这样的函数上使用梯度下降算法,最终很有可能在平坡处停止。在数学上我们已知如果一个函数是凸的,那么使用梯度下降一定能找到全局最小值。凸函数 是一个很强的限制,可以形象地理解为,在函数上任取一段都是向外凸的( 如下图,详细定义见 维基百科 )。

所以我们使用新的 代价函数 使得它满足 凸函数 的性质。


梯度下降

求解 代价函数 最值的方法还是 梯度下降 算法,所以我们需要对 进行求导( 求导的计算过程能够给你一个印象,知道求导的结果是怎么来的。但是为了让大家不要淹没在计算的细节中,文章都会省略计算给出最终结果的矩阵形式 )。


有了 代价函数梯度 就能够自己实现梯度下降算法来求解问题了。不过在课程中 Ng 提到了几种 梯度下降 的优化算法,Conjugate descentBFGSL-BFGS。这些算法不需要指定学习率,而且能够更快地找到解,我们可以通过调用内置函数来完成学习( 在作业中由于没有 Octave 的 fminunc 函数,作为代替使用了 scipy 包中的 minimize 函数,算法用的是 BFGS )。

正则化

正则化 的引入是为了防止学习中的 过拟合现象。简单来说 过拟合现象 就是我们的学习算法将很多对问题并不重要的 细节特征甚至 噪声 都考虑了进来,认为它们是决策依据。就像对于作业 ex2_reg.py 中需要分类的数据,假设了 预测函数


对于含有 28 个参数的 预测函数 ,可以拟合很多类型的数据,但对于作业中的数据有些特征并不需要。我们希望 取得最小的同时,特征的系数 尽可能小。为此对 代价函数 做一些修改变成如下形式:


试中 为正则化系数,用来平衡两个目标,一个是让前半部分的 代价函数 尽量小,一个是避免参数过大导致过拟合。后半部分正则化项中的 取零,因为一般不对其进行约束。线性回归 同样可以使用正则化的方法,这里我们只给出正则化后的代价函数:


如果使用正规方程求解的话,那么最后 的解为:


正则化 是一个蛮大的主题,在这里一时半会没法讲全,自己理解的也不透彻,等有了更好的体会时再与大家分享。

So~,第二周的内容就是这些了,谢谢大家耐心阅读。

吴恩达机器学习:逻辑回归相关推荐

  1. [转载] 吴恩达机器学习逻辑回归练习题:逻辑回归及规则化(python实现)

    参考链接: 了解逻辑回归 Python实现 练习题背景:网易云课堂->吴恩达机器学习课程->逻辑回归练习题 对于练习题的详细内容,和课程中推荐的octave编程实现,请见:吴恩达机器学习逻 ...

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

    7.1  分类问题 如果要预测的变量 是离散值,此时我们应用 logistics regression. 在分类问题中,我们对某一事物进行分类,有二分类和多分类问题.此节先讨论二分类问题,即只有两个分 ...

  3. 吴恩达机器学习 逻辑回归 作业3(手写数字分类) Python实现 代码详细解释

    整个项目的github:https://github.com/RobinLuoNanjing/MachineLearning_Ng_Python 里面可以下载进行代码实现的数据集 题目介绍: In t ...

  4. 吴恩达机器学习 逻辑回归 作业2(芯片预测) Python实现 代码详细解释

    整个项目的github:https://github.com/RobinLuoNanjing/MachineLearning_Ng_Python 里面可以下载进行代码实现的数据集 题目介绍: In t ...

  5. 吴恩达机器学习logistic回归作业(python实现)

    1. Logistic regression 在这部分的练习中,你将建立一个逻辑回归模型来预测一个学生是否能进入大学.假设你是一所大学的行政管理人员,你想根据两门考试的结果,来决定每个申请人是否被录取 ...

  6. 逻辑回归python sigmoid(z)_python实现吴恩达机器学习练习2(逻辑回归)-data1

    python实现吴恩达机器学习练习2(逻辑回归)-data1 这篇是第一个数据集:这部分练习中,你将建立一个预测学生是否被大学录取的逻辑回归模型. 假如一所大学会每个报名学生进行两项入学考试,根据两项 ...

  7. 吴恩达机器学习学习笔记第七章:逻辑回归

    分类Classification分为正类和负类 (规定谁是正谁是负无所谓) 吴恩达老师举例几个例子:判断邮箱是否是垃圾邮箱 一个在线交易是否是诈骗 一个肿瘤是良性的还是恶性 如果我们用之前学习的lin ...

  8. 吴恩达机器学习ex2:逻辑回归

    吴恩达机器学习练习二:逻辑回归 1. 逻辑回归(logistic regression) 构建一个可以基于两次测试评分来评估录取可能性的分类模型. 知识点回顾: 1.1 数据可视化 #coding=u ...

  9. 吴恩达ex3_吴恩达机器学习 EX3 作业 第一部分多分类逻辑回归 手写数字

    1 多分类逻辑回归 逻辑回归主要用于分类,也可用于one-vs-all分类.如本练习中的数字分类,输入一个训练样本,输出结果可能为0-9共10个数字中的一个数字.一对多分类训练过程使用"一对 ...

  10. 吴恩达机器学习之逻辑回归:逻辑回归的假说表示、判定边界、代价函数、简化的成本函数和梯度下降、高级悠哈、多类别分类之一对多(详细笔记,建议收藏,已有专栏)

    吴恩达机器学习栏目清单 专栏直达:https://blog.csdn.net/qq_35456045/category_9762715.html 文章目录 6.逻辑回归(Logistic Regres ...

最新文章

  1. 删除Mac 系统中多出得MobileBackups 文件夹
  2. 编译出错libicui18n.so.58: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8‘
  3. CentOS7修改主机名称
  4. UNITY Destroy()和DestroyImadiate()的区别
  5. 甲骨文指控 Google Android 复制其代码
  6. c/c++ struct的大小以及sizeof用法
  7. nedc和epa续航里程什么意思_NEDC、WLTP和EPA续航里程标准谁最真实?看比亚迪工程师怎么说...
  8. 论重写和里式替换原则(LSP)
  9. 怎么设置ep4ce6e22b8n引脚_技术货:教你怎么检查电路原理图
  10. Android 动画 Animator 家族
  11. base64解码_一份简明的 Base64 原理解析
  12. 小云(云层-陈霁)的发展史
  13. java定时执行bat_如何自动执行多个批处理命令
  14. 如何分析加上SE壳的.net程序
  15. 基于VHDL语言分频器电路程序设计
  16. java 二进制转图片_Java如何把二进制数据转换成图片???
  17. 公众号网课答案查询系统
  18. lpx寒假作业案例4
  19. Spring源码系列(五)——@Aspect源码解析
  20. 免费下载QFP器件手工焊接指南

热门文章

  1. 类和接口的使用-类和成员可访问性最小化
  2. my questions of C#
  3. RedisConf2018记录--Day 1 sessions
  4. POI (Apache POI)
  5. 拯救不靠谱:他是怎样将技术外包做到纠纷率3%?
  6. GY编辑平台产品总结
  7. KSQL中Update多表级联更新的语法
  8. [置顶] 火车票余票接口API使用方法
  9. 设计模式 (一) 初次体验
  10. pku773_Happy 2006