机器学习-周志华 学习笔记4

3.4线性判别分析(Linear Discriminant Analysis,简称LDA)

LDA的思想:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。图3.3给出一个二维示意图:

欲使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小,而欲使异类样例的投影点尽可能远离,可以让类中新之间的距离尽可能大,同时考虑二者可得欲最大化的目标,即为二者比值最大。具体计算参见机器学习-周志华P61.

3.5多分类学习

一般基于一些基本策略,利用二分类学习器来解决多分类问题,考虑N个类别C1,C2,…,CN,多分类学习的基本思路是“拆解法”,即将多分类任务拆为若干个二分类任务求解。本节主要介绍拆分策略。

最经典的拆分策略有三种:“一对一”(One vs.One,简称OvO)、“一对其余”(One vs. Rest,简称OvR)和多对多(Many vs. Many,简称MvM)。

给定数据集D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{C1,C2,…,CN}。OvO将这N个类别两两配对,产生N(N-1)/2个分类任务,最终得到N(N-1)/2个分类结果,最终结果投票产生。图3.4给出一个示意图。

OvR则是每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个分类器。在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果,如图3.4所示。若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。


OvO的存储开销和测试时间开销通常比OvR更大。但在训练时,OvR的每个分类器均使用权不训练样例,而OvO的每个分类器仅用两个类的样例,因此在类别很多时,OvO的训练时间开销通常比OvR更小。至于预测性能,则取决于具体的数据分布,在多数情形下两者差不多。

       MvM是每次将若干个类作为正类,其他类做为反类。MvM的正反类构造必须有特殊的设计,不能随意选取,这里介绍最常用的MvM技术:“纠错输入码”(Error Correcting Output Codes,简称ECOC)。

ECOC是将编码的思想引入类别拆分,并尽可能在解码过程中具有容错性。工作过程主要分为两步:

       编码:对N个类别做M次划分,每次划分将一部分类别划分为正类,一部分划分为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可以训练出M个分类器。

       解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。蒋政预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终结果预测。

       类别划分通过“编码矩阵”(coding matrix)指定。编码矩阵常见的主要有二元码,三元码。前者将每个类别分别指定为正类和反类,后者在正、反类之外,还可指定“停用类”。图3.5给出了示意图。

在图3.5(a)中,若基于欧氏距离,预测结果将是C3。

之所以称为“纠错输出码”是因为在测试阶段,ECOC编码对分类器的错误有一定的容忍和修正能力。一般来说,同一个学习任务,ECOC编码越长,纠错能力越强。然而,编码越长,意味着所需训练的分类器越多,计算、存储开销都会增大;另一方面,对有限类别数,可能的组合数目是有限的,码长超过一定范围后就失去了意义。

       3.6类别不平衡问题

     类别不平衡(class-imbalance)就是指分类任务中不同类别的训练样例数目差别很大的情况。

       从线性分类器的角度讨论便于理解。在我们用 对新样本x进行分类时,事实上是在用预测出的y值与一个阈值进行比较,几率y/(1-y),则是反映了正例可能性与反例可能性之比值,阈值设置为0.5表明分类器认为真实正、反例可能性相同,即分类器决策规则为:若y/(1-y) > 1则预测为正例。

       然而当训练集中正反例数目不相同时,令m+表示正例数目,m-表示反例数目,此时

则预测为正例,实际执行时由于按照 执行,所以需要令

,这就是类别不平衡学习的一个基本策略—“再缩放”(rescaling)。

       再缩放的思想简单,但是实际操作并不简单,主要因为“训练集是真实样本总体的的无偏采样”这个假设往往并不成立,也就是说,我们未必能有效地基于训练集观测几率来推断真实几率。现在技术大体上有三种做法:“欠采样”(undersampling):即去除一些反例使得正反例数目接近再学习,第二类是“过采样”(oversampling),即增加一些正例使得正反例数目接近再学习;第三类是直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将 嵌入决策过程中,称为“阈值移动”(threshold-moving)。

       再缩放也是“代价敏感学习”(cost-sensitive learing)的基础。
从程序员的视角,看计算机系统! 本书适用于那些想要写出更快、更可靠程序的程序员。通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好的理解程序的行为为什么是这样的,以及效率低下是如何造成的。粗略来看,计算机系统包括处理器和存储器硬件、编译器、操作系统和网络互连环境。而通过程序员的视角,读者可以清晰地明白学习计算机系统的内部工作原理会对他们今后作为计算机科学研究者和工程师的工作有进一步的帮助。它还有助于为进一步学习计算机体系结构、操作系统、编译器和网络互连做好准备。 本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构,程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要是这些方面是如何影响应用和系统程序员的。例如,在讲述数据表示时,本书说明了用来表示数字的表示方法是有限的,它能够近似地表示整数和实数,但是这种表示方法是有限制的,程序员必须了解。在讲述高速缓存时,本书讨论了矩阵代码中的循环变量的顺序是如何影响程序的性能的。在讨论网络互连时,本书描述了并发服务器如何能有效地处理来自多个客户端的请求。 本书基于Intel兼容(IA32)机器,在Unix或者相关的操作系统(例如,Linux)上执行C程序。虽然书中包括了一些帮助读者将Java转化成C的提示,但是还是要求读者对C或者C++有一定的了解。 您可以通过本书的Web网站www.csapp.cs.cmu.edu获得完整的资料,包括实验和作业,授课笔记和代码示例。 本书英文版久负盛名,被众多专业人士称为“最伟大的计算机教材”之一,著名的美国卡内基梅隆大学计算机科学系一直将本书作为教材使用,程序员眼中的透彻讲述计算机系统的扛鼎之作。作者Randal E. Bryant是卡耐基梅隆大学的计算机科学系主任,ACM和IEEE双院士(Fellow),其研究成果多次获得ACM和IEEE颁发的大奖。   本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质概念,并向读者展示这些概念是如何实际地影响应用程序的正确性、性能和实用性。与其他主要针对系统构造人员的系统类书籍不同,这本书是写给程序员的,是从程序员的角度来描述的。本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白。本书的最大优点是帮助读者理解概念,让读者很清楚地在脑海中构造一个层次型的计算机系统,从最低层数据在内存中的表示(如我们一直陌生的浮点数表示),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户应用。   本书提供了大量的例子和练习及部分答案。尤其值得一提的是,对于每一个基本概念都有相应的笔头或程序试验,加深读者的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值