吴恩达老师机器学习课程chapter02——分类

本文是非计算机专业新手的自学笔记,高手勿喷,欢迎指正与其他任何合理交流。

本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第六章。



二分类

流入垃圾邮件的分类,或去医院医生诊断病人身体里的肿瘤是否是恶性的,这些是常见的分类问题。

抽象成数学关系后,输出y为整数,这样的问题被称之为分类问题。

基本概念

例题如下:

可以看出,当出现偏离所有样本均值很远的样本时,很有可能导致简单的线性回归结果判断不准。且hθ(x)可以大于0或者小于1。

因此,有需要引入Sigmoid函数,又名Logistic函数。这种函数平滑、易于求导。可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。这里将Sigmoid函数记为:

\[g(z)=\frac{1}{1+e^{-z} }
\]

与线性回归结合可得:

\[h_{\theta }(x) =g(\theta ^{T}x )=\frac{1}{1+e^{-\theta ^{T}x } }
\]

这里hθ(x)可以用来表征 概率

hθ(x) ≥ 0.5,认为y=1;否则,认为y=0。

运用 非线性的多项式回归 ,可以实现 ** 非线性分类 **:

代价函数

若选择线性回归中的代价函数,那么的得到的函数很可能不是凸函数(convex function),梯度下降法只能得到局部最优,在此失效。

这里定义对数回归代价函数(logistic regression cost function):

\[\operatorname{Cost}\left({h_{\theta}(x)}, y\right)=\left\{\begin{array}{ll}
-\log \left(h_{\theta}(x)\right) & \text { if } y=1 \\
-\log \left(1-h_{\theta}(x)\right) & \text { if } y=0
\end{array}\right.
\]

由图可见:

y=1时,若 hθ(x) → 0,惩罚很大;y=0时,若 hθ(x) → 1,惩罚很大。

将所有样本的Cost叠加取均值,可得:

\[\begin{aligned}
J(\theta) &=\frac{1}{m} \sum_{i=1}^{m} \operatorname{Cost}\left(h_{\theta}\left(x^{(i)}\right), y^{(i)}\right) \\
&=-\frac{1}{m}\left[\sum_{i=1}^{m} y^{(i)} \log h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right]
\end{aligned}
\]

故问题转化为可以用梯度下降法 解决的优化问题如下:

其中的梯度:


多分类

对于有n个类别的多分类,可以视为n个二分类问题:

首先,训练n个训练器 $ h_{\theta}^{(i)}(x) $;

接着将新的输入x代入这n个分类器当中,选择概率最大的一个,即 $ \max {i} h^{(i)}(x)$。

吴恩达老师机器学习课程chapter02——分类的更多相关文章

  1. 机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 http://www.ai-start.com/

    机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 GNU Octave    开源  MatLab http://www.ai-start.com/ https://zhuanlan.zhihu ...

  2. 吴恩达《机器学习》课程笔记——第六章:Matlab/Octave教程

    上一篇  ※※※※※※※※  [回到目录]  ※※※※※※※※  下一篇 这一章的内容比较简单,主要是MATLAB的一些基础教程,如果之前没有学过matlab建议直接找一本相关书籍,边做边学,matl ...

  3. 吴恩达《机器学习》课程总结(5)_logistic回归

    Q1分类问题 回归问题的输出可能是很大的数,而在分类问题中,比如二分类,希望输出的值是0或1,如何将回归输出的值转换成分类的输出0,1成为关键.注意logistics回归又称 逻辑回归,但他是分类问题 ...

  4. 深度学习 吴恩达深度学习课程2第三周 tensorflow实践 参数初始化的影响

    博主 撸的  该节 代码 地址 :https://github.com/LemonTree1994/machine-learning/blob/master/%E5%90%B4%E6%81%A9%E8 ...

  5. 吴恩达《机器学习》课程笔记——第七章:Logistic回归

    上一篇  ※※※※※※※※  [回到目录]  ※※※※※※※※  下一篇 7.1 分类问题 本节内容:什么是分类 之前的章节介绍的都是回归问题,接下来是分类问题.所谓的分类问题是指输出变量为有限个离散 ...

  6. 吴恩达《机器学习》课程总结(18)_照片OCR

    18.1问题描述和流程图 (1)图像文字识别是从给定的一张图片中识别文字. (2)流程包括: 1.文字侦测 2.字符切分(现在不需要切分了) 3.字符分类 18.2滑动窗口 在行人检测中,滑动窗口是首 ...

  7. 跟我学算法-吴恩达老师(超参数调试, batch归一化, softmax使用,tensorflow框架举例)

    1. 在我们学习中,调试超参数是非常重要的. 超参数的调试可以是a学习率,(β1和β2,ε)在Adam梯度下降中使用, layers层数, hidden units 隐藏层的数目, learning_ ...

  8. 跟我学算法-吴恩达老师的logsitic回归

    logistics回归是一种二分类问题,采用的激活函数是sigmoid函数,使得输出值转换为(0,1)之间的概率 A = sigmoid(np.dot(w.T, X) + b ) 表示预测函数 dz ...

  9. 吴恩达《机器学习》编程作业——machine-learning-ex1:线性回归

    ❄❄❄❄❄❄❄❄[回到目录]❄❄❄❄❄❄❄❄ 本次编程作业中,需要完成的代码有如下几部分: [⋆] warmUpExercise.m - Simple example function in Octa ...

  10. 跟我学算法-吴恩达老师(mini-batchsize,指数加权平均,Momentum 梯度下降法,RMS prop, Adam 优化算法, Learning rate decay)

    1.mini-batch size 表示每次都只筛选一部分作为训练的样本,进行训练,遍历一次样本的次数为(样本数/单次样本数目) 当mini-batch size 的数量通常介于1,m 之间    当 ...

随机推荐

  1. 8. fitBounds(用了这个你就不用在设置zoom, minZoom, maxZoom, center)

    1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta charset="U ...

  2. JDBC:实现Java与数据库的连接

    先了解重要的编程思想:ORM(object relational mapping) 即将数据库与JAVA的类一一映射(对应) 一个数据表对应一个Java类 表中的一条记录对应Java类的一个对象 表中 ...

  3. 最全面 think php 实现微信公众号回复编号进行投票,自定义菜单功能

    前期准备工作 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messag ...

  4. [UnityShader]说厌了的遮挡显示

    首先是效果 这个其实有相当多的地方在说了,我就不嚼舌根了 大概原理:一个Shader两个Pass,第一个Pass不管深度,都渲染,但是不写入深度,第二个Pass几乎没有改动,因为后执行,会覆盖掉第一个 ...

  5. Eureka出现Connect to localhost:8761 timed out问题

    原先使用application.properties spring.application.name=hello-serviceeureka.client.service-url.defauleZon ...

  6. XCZU19EG板卡设计资料:610-基于6U VPX 的FPGA XCZU19EG存储阵列

    基于6U VPX 的FPGA XCZU19EG存储阵列 一.板卡概述         高性能存储板基于标准6U VPX架构,是基于Xilinx UltraScale+ 系列FPGA XCZU19EG架 ...

  7. iOS 防止charles抓包

    方案一:检查手机Wifi是否设置了代理     public func fetchHttpProxy() -> Bool {        guard let proxy = CFNetwork ...

  8. vue真实项目结构

    我明白你的需求.如果你想看一个真实企业项目使用的复杂目录结构,你可以参考以下几个例子: 根据1的介绍,一个vue项目的目录结构可以细分为以下几个部分: |- src | |- api 存放所有请求接口 ...

  9. 浅谈hive

    hive支持sql标准的数据仓库,可以将sql语句转化成mr程序执行.基础分析一般用hive来做,比较复杂的用mr来做数据仓库和数据库的区别    数据仓库:历史数据,面向分析,保证数据的完整性可以允 ...

  10. "人生重开模拟器",10分钟轻松搭建!

    人生重开模拟器是最近爆火的一款非常好玩的模拟游戏,会带你走入一个有趣的世界,开启全新的人生旅程,即"人生重开". 然而实际上,这款游戏短短在3天内上线,在百度贴吧.朋友圈.QQ群. ...