Classification

使用线性回归来分类,会很不准确。并且,它的范围也会超出 {0, 1}。所以使用下面的逻辑回归模型。

Hypothesis representation

线性回归中 hθ(x) = θTx,而在逻辑回归中,我们想要 hθ(x) ∈ [0, 1]。对结果进行双曲化处理:

,图象如右图:,范围是 (0, 1)。

在线性回归中,hθ(x) 就表示 y 的值。在逻辑回归中,表示『基于输入的 x,y=1 的概率是多少』。用数学形式表示:

Desicion boundary

逻辑回归中, hθ(x) 是属于 (0, 1) 范围内的连续的值。但我们的分类结果只有 0 或者 1,所以就需要一个决策边界。这里,取平均值, y = 0.5。。从上方的双曲线图中可以看出,当 z > 0,y=1,即 θTx >= 0 时,hθ(x) >= 0.5。将区域分为 y=0 和 y=1 的两个区域。

决策边界是针对与 θ 的属性,所以 θ 不同,决策边界也不同。

非线性的决策边界

当 hθ(x) 是多项式的时候,

当多项式更加复杂的时候,决策边界的形状也会更加复杂。

Cost Function

当 y = 1 时,如果 hθ(x) = 0,那么 cost 接近无限大。因为你预测不是恶性肿瘤,但实际上是恶性肿瘤。同样,如果不是恶性肿瘤,你预测 y = 1 的概率越接近 1,那么误差越小。

y = 0 时的情况同理可得。

化简的 Cost Function 和 Gradient Descent

化简后(通过遍历所有情况能够证明)

J(θ) 为

Gradient Descent

Logistic Regression 与 Linear Regression 在 Gradient Descent 上的不同,就是 hθ(x) 的不同。

用矩阵计算为:

grad = (X' * (h - y)) / m;

 这里是求和,所以最终是 1*1,所以转置成这样的形式 [1 * n] * [n * 1]。

Advanced Optimization

使用更高级的算法,不需要手动选择 learning rate;通常比 gradient descent 更快;缺点是更复杂。

可以使用库直接调用这些算法,不需要深入理解它们。

% 我们传入了 GradObj,最大循环次数为 100 次
octave:1> options = optimset('GradObj', 'on', 'MaxIter', '100')
options = scalar structure containing the fields: GradObj = on
MaxIter = 100 octave:2> initialTheta = zeros(2,1 )
initialTheta = 0
0

jVal 表示 j(θ) 的计算方法

gradient 表示对应 θ 的计算方法(求导)

Multiclass Classfication

大于 2 个类别,如邮件分类:工作、朋友、家庭。

使用 one-vs-rest 方法。

假设有 3 类,我们将测试数据分为 C32 类别,把一类看作 positive,其他类看做 negative。这样我们就能得到三个 h(θ)

在预测时,由于有三个 h(θ) 函数,所以有三个结果。一般是取概率最大的作为最终预测结果。

习题

从图中可以可以看出,应该是一个圆把蓝色的圈住,所以应该有两个 x2

1. 如何判断是否 convex,gradient 什么情况下(能/否) converge

    • 判断 convex 要由数学证明完成,我们是选择别人证明好的 cost function,这里不做证明。
    • 确保 learning rate α 被设置合适。

2. 增加多项式 features 可以增加对训练数据的匹配。更匹配的意思是:使曲线与数据更贴近。

对。

3. 能否被直线分割为两段有什么区别?对 converge 有影响吗?

不知道。应该没有

non-linear decision boundaries

4. linear regression 与 logistic regeress 的区别?两者会相同吗?在什么情况下会相同?

Gradient Descent 的公式是一样的,但是 hθ(x) 不一样

为什么  hθ(x) 要不一样呢?

想要 0 <  hθ(x) < 1,所以定义了 Logistic function (sigmoid function)。

还是有错误。

有错误

第二个选项:应该对的。J(θ) 表示的是误差。

第三个选项:没有理解清楚。算错误的

第四个选项:

没有提到 local minimum,但我认为有这个原因。

如何用 vector 表示 J(θ)

3. 

从课件中查到公式为 ,所以 3、4 是对的。

1 是错误的。

θTx - y(i) 为 n * 1 的 vector。乘以 x 第 i 行。应该是乘以 x 第 i 行第 j 个,其中 j 是不变的。所以是错误。

第一个,对的

第二个,意思是:允许你对于每个 y 来自固定的、离散的几组值。对的。

第三个,对。范围就是 >= 0 不会变

第四个,对

存在错误。

Machine Learning - week 3的更多相关文章

  1. 【Machine Learning】KNN算法虹膜图片识别

    K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  2. 【Machine Learning】Python开发工具:Anaconda+Sublime

    Python开发工具:Anaconda+Sublime 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现 ...

  3. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  4. 【Machine Learning】决策树案例:基于python的商品购买能力预测系统

    决策树在商品购买能力预测案例中的算法实现 作者:白宁超 2016年12月24日22:05:42 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本 ...

  5. 【机器学习Machine Learning】资料大全

    昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...

  6. [Machine Learning] Active Learning

    1. 写在前面 在机器学习(Machine learning)领域,监督学习(Supervised learning).非监督学习(Unsupervised learning)以及半监督学习(Semi ...

  7. [Machine Learning & Algorithm]CAML机器学习系列2:深入浅出ML之Entropy-Based家族

    声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文. 写在前面 记得在<Pattern Recognition And Machine ...

  8. machine learning基础与实践系列

    由于研究工作的需要,最近在看机器学习的一些基本的算法.选用的书是周志华的西瓜书--(<机器学习>周志华著)和<机器学习实战>,视频的话在看Coursera上Andrew Ng的 ...

  9. matlab基础教程——根据Andrew Ng的machine learning整理

    matlab基础教程--根据Andrew Ng的machine learning整理 基本运算 算数运算 逻辑运算 格式化输出 小数位全局修改 向量和矩阵运算 矩阵操作 申明一个矩阵或向量 快速建立一 ...

  10. Machine Learning

    Recently, I am studying Maching Learning which is our course. My English is not good but this course ...

随机推荐

  1. .Net版InfluxDB客户端使用时的一些坑

    1.如果应用程序是WebAPi,则需要使用同步版的InfluDB客户端 2.如果应用程序是Winform或Console程序或Windows服务,则使用同步或异步版客户端都可以,建议用异步版 3.如果 ...

  2. 切换用户,显示用户名, 调用Windows系统命令

    CONN 用户名/密码 CONN sys/密码 AS SYSDBA | SYSOPER SHOW USER SELECT * FROM 用户名.表名; 调用Windows系统命令: HOST Wind ...

  3. Linux简介,虚拟机安装,网络设置,桌面和vim安装

    Linux简介: linux代表系统内核.Linux系统指基于Linux内核的操作系统,由内核和程序结合组成.比较流行的发行版本由RedHat Linux.Fedora.Centos.Debian.U ...

  4. Python2/3的中、英文字符编码与解码输出: UnicodeDecodeError: 'ascii' codec can't decode/encode

    摘要:Python中文虐我千百遍,我待Python如初恋.本文主要介绍在Python2/3交互模式下,通过对中文.英文的处理输出,理解Python的字符编码与解码问题(以点破面). 前言:字符串的编码 ...

  5. 高性能管线式HTTP请求(实践·原理·实现)

      该篇实际是介绍pipe管线的原理,下面主要通过其高性能的测试实践,解析背后数据流量及原理.最后附带一个简单的实现     实践 先直接看对比测试方法 对于单一客户端对服务器进行http请求,一般我 ...

  6. 用node搭建简单的静态资源管理器

    我们都知道,老牌的3p服务器都是自带静态资源管理器的.但是node不同,它没有web容器,它的路由地址和真实地址可以没有联系,所有node的优点,是可以把路由做得相当漂亮. 但静态资源管理器也是必不可 ...

  7. chmod 命令详解

    chmod 作用:修改目录或文件权限(= 赋值不管存在与否, + 增加权限)符号链接的权限无法变更, 如果用户对符号链接修改权限, 其改变会作用在被链接的原始文件. 参数: -R: 递归修改处理 -v ...

  8. Delete 命令详解

    cp:复制文件 /cp -r:复制目录  /bin/cp -f: 复制文件并覆盖已有文件(写命令的绝对路径/bin/)  /cp /ect/passwd .:将其他文件复制到当前目录  /-n :不要 ...

  9. 正则验证,match()与test()函数的区别?

    test是RegExp的方法,参数是字符串,返回值是boolean类型.match是String的方法,参数是正则表达式,返回值是数组. 案例: //判断日期类型是否为YYYY-MM-DD格式的类型 ...

  10. PHP 判断Header 送出前, 是否有值被送出去: headers_sent()

    1 为避免header()函数是,出现 <b>Warning</b>:  Cannot modify header information - headers already ...