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. ajax的状态

    readyState:ajax对象的状态值,客户端与客户的交互过程 0:未初始化 1:已经调用了open方法 2:已经接收到响应头 3:已经接受了一部分数据(存在相应正文里) 4:已经接受了全部数据 ...

  2. apply、call、bind方法调用

    ---恢复内容开始--- 首先这三个方法的作用都是用来改变this的值,而this的值一般有几种情况. 1.函数作为一个对象的一个方法来调用,此时this的值指向对象. var a={ v:0; f: ...

  3. pytorch JIT浅解析

    概要  Torch Script中的核心数据结构是ScriptModule. 它是Torch的nn.Module的类似物,代表整个模型作为子模块树. 与普通模块一样,ScriptModule中的每个单 ...

  4. H3C 帧中继子接口

  5. H3C 不同匹配顺序导致结果不同

  6. java 集合类 & 容器

    为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就要对对象进行存储,集合就是存储对象最常用的一种方式. 数组和集合类同是容器,有何不同? 数组虽然也可以存储 ...

  7. H3C IPv6地址表示方式

  8. java 类加载器的委托机制

    l 当Java虚拟机要加载一个类时,到底派出哪个类加载器去加载呢? 1.首先当前线程的类加载器去加载线程中的第一个类. 2.如果类A中引用了类B,Java虚拟机将使用加载类A的类装载器来加载类B. 3 ...

  9. JSON怎样添加注释

    今天在写一个程序的时候发现了一个问题,在json文件中添加注释之后,程序就出现bug了 于是,去搜了一下这个问题的相关解释,在这里和大家分享一下: JSON为什么不能添加注释? 这位外国友人给出的解释 ...

  10. SpringBoot 上传文件到linux服务器 异常java.io.FileNotFoundException: /tmp/tomcat.50898……解决方案

    SpringBoot 上传文件到linux服务器报错java.io.FileNotFoundException: /tmp/tomcat.50898-- 报错原因: 解决方法 java.io.IOEx ...