CH5 稀疏学习

重点提炼

提出稀疏学习的缘故:

虽然带有约束条件的最小二乘学习法结合交叉验证法,在实际应用中是非常有效的回归方法,但是,当参数特别多时,计算参数以及预测值需要大量时间。此时,我们要解决这个问题。

稀疏学习思路:

把大部分参数都设置为0,这样就能快速计算参数以及预测值。

L1约束的最小二乘学习法:

公式

求解得到参数theta

代码实现的流程图

通过稀疏学习进行特征选择

1.“一个特征一个特征地依次减少的向后删除法”以及“一个一个特征地依次增加的向前选择法”提出的原因:在d各特征值中做特征选择,就需要事先对2^d次维组合的优劣进行评估,计算时间是以输入维数d为基数指数级增长的。所以会提出前向选择法以及后向删除法。

2.通过稀疏学习进行特征选择的优势:比起“一个特征一个特征地依次减少的向后删除法”以及“一个一个特征地依次增加的向前选择法”,l1约束的稀疏学习做特征选择,可以在一定程度上考虑到各个特征之间的相互联系,在实际应用中,往往能得到更好的特征组合。

3.举例:

lp约束的最小二乘学习法

1.lp约束的最小二乘学习法中的约束条件:是更为普遍的条件,是p大于等于0的lp范数约束方法

2.公式:

3.最优解:当p=1时,是稀疏解存在的唯一凸形

l1+l2约束的最小二乘学习法/弹性网回归学习法

1.提出的原因:l1约束的最小二乘学习法的局限性:

① 当参数b>训练样本数n时,l1约束最小二乘学习法的非0参数个数最多为n

② 当参数b<训练样本数n时,l1约束最小二乘学习法的通用性能比l2约束的最小二乘学习法稍差

2.解决方法:利用l1+l2范数的凸结合来进行约束

P49

通过运行代码学习

初始化50个参数

当t-t0的绝对值<0.001时这个循环就结束

结果:与p42中l2约束的最小二乘学习法结合交叉验证方法得到的拟合曲线结果没有太大差别。可是在这过程中,l1约束的最小二乘学习法不用像p42中的l2约束+交叉验证要跑完所有的循环,而只需要设定一个收敛值,小于这个收敛值就可以跳出循环了。

为什么书中说参数大多是0?现在还不理解,因为代码变量追踪,t中并没有很多参数<0.001即等于0

P49

补充知识来理解书上内容

Matlab 中pinv函数

Matlab 中diag函数

《图解机器学习-杉山将著》读书笔记---CH5的更多相关文章

  1. 《图解机器学习-杉山将著》读书笔记---CH4

    CH4 带有约束条件的最小二乘法 重点提炼 提出带有约束条件的最小二乘学习法的缘故:   左图中可见:一般的最小二乘学习法有个缺点----对于包含噪声的学习过程经常会过拟合 右图:有了空间约束之后,学 ...

  2. 《图解机器学习-杉山将著》读书笔记---CH1

    CH1 什么是机器学习 重点提炼 机器学习的种类: 常分为:监督学习.无监督学习.强化学习等 监督学习是学生从老师那获得知识,老师提供对错指示 无监督学习是在没有老师的情况下,学生自习 强化学习是在没 ...

  3. 《图解机器学习-杉山将著》读书笔记---CH3

    CH3 最小二乘学习法 重点提炼 提出最小二乘学习法的缘故: 最小二乘学习法公式 对不同模型进行最小二乘法学习,得到最小二乘公式中的参数theta: 1.线性模型   代入3.1公式,对参数求偏导,偏 ...

  4. 《图解机器学习-杉山将著》读书笔记---CH2

    CH2 学习模型 重点提炼 学习模型作用: 使特定函数与数据集相近似 学习模型类型: 1.线性模型 (1)最简单的线性模型,缺点:只能表现线性的输入输出函数,不能很好地解决实际问题 (2)基于参数的线 ...

  5. 机器学习介绍(introduction)-读书笔记-

    一,什么是机器学习 第一个机器学习的定义来自于 Arthur Samuel.他定义机器学习为,在进行特定编程的情况下,给予计算机学习能力的领域.Samuel 的定义可以回溯到 50 年代,他编写了一个 ...

  6. LogisticRegression Algorithm——机器学习(西瓜书)读书笔记

    import numpy as np from sklearn.datasets import load_breast_cancer import sklearn.linear_model from ...

  7. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  8. 《C#图解教程》读书笔记之一:C#和.NET框架

    本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.在.NET之前的编程世界 C#语言是在微软公司的.NET框架上开发程序而设计的,首先作者给大家纠正了一下C# ...

  9. 《C#图解教程》读书笔记之二:存储、类型和变量

    本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.类型初窥:掀起你的盖头来 (1)C程序是一组函数和数据类型,C++程序是一组函数和类,而C#程序是一组类型声 ...

随机推荐

  1. Laravel5.5 支付宝手机网站支付的教程

    https://segmentfault.com/a/1190000015559571 这篇文章主要介绍了Laravel5.5 支付宝手机网站支付的教程,小编觉得挺不错的,现在分享给大家,也给大家做个 ...

  2. CODE FESTIVAL 2017 qual A C Palindromic Matrix(补题)

    彩笔看到题目后,除了懵逼,没有啥反应了,唯一想的就是 这是不是dp啊?看了题解才发现,原来是这样啊. 画几个矩阵看看就能看出来规律. 思路:先假设这是个M * N的矩阵 如果M和N都是偶数,则每个出现 ...

  3. Java 对象序列化机制详解

    对象序列化的目标:将对象保存到磁盘中,或允许在网络中直接传输对象. 对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久的保存在磁盘上,通过网络将这种二进制流传 ...

  4. python命令之m参数

    在命令行中使用python时,python支持在其后面添加可选参数. python命令的可选参数有很多,例如:使用可选参数h可以查询python的帮助信息: 可选参数m 下面我们来说说python命令 ...

  5. Java 9版本之后Base64Encoder和Base64Decoder无法继续使用解决办法

    在项目开发过程中,因为重装系统,安装了Java10版本,发现sun.misc.Base64Encoder和sun.misc.Base64Decoder无法使用. 原因: 查看官网发现,JDK中的/li ...

  6. JAVA JVM记录

    串行处理器: 适用情况:数据量比较小(100M左右):单处理器下并且对响应时间无要求的应用. 缺点:只能用于小型应用 并行处理器: 适用情况:“对吞吐量有高要求”,多CPU.对应用响应时间无要求的中. ...

  7. json文件生成

    // import Translate from 'translate-components' /* * 匹配所有汉字RegExp: [\u4e00-\u9fa5] [\u4E00-\u9FA5]|[ ...

  8. 苹果IOS 证书申请及导出证书文件

    在申请证书之前,前提是,你要注册一个苹果帐号,且交了个人或公司帐号99美元大概人民币600多一年费用申请开发者帐号,审核通过的开发者帐号,个人或公司或企业类型帐号. 如何申请苹果开发者帐号,这里不讲解 ...

  9. 0012 sublime快捷操作emmet语法

    Emmet的前身是Zen coding,它使用缩写,来提高html/css的编写速度. 生成标签 直接输入标签名 按tab键即可 比如 div 然后tab 键, 就可以生成 如果想要生成多个相同标签 ...

  10. nginx实现缓存功能

    Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302 ...