《Python机器学习——预测分析核心算法》——1.3 什么是集成方法

1.3 什么是集成方法

本书涵盖的另一类算法就是集成方法(ensemble methods)。集成方法的基本思想是构建多个不同的预测模型,然后将其输出做某种组合作为最终的输出,如取平均值或采用多数人的意见(投票)。单个预测模型叫作基学习器(base learners)。计算学习理论(computation learning theory)的研究结果证明只要基学习器比随机猜测稍微好些(如果独立预测模型的数目足够多),那么集成方法就可以达到相当好的效果。

研究人员注意到某些机器学习算法输出结果不稳定,这一问题导致了集成方法的提出。例如,在现有数据集基础上增加新的数据会导致最终的预测模型或性能突变。二元决策树和传统的神经网络就有这种不稳定性。这种不稳定性会导致预测模型性能的高方差,取多个模型的平均值可以看作是一种减少方差的方法。技巧在于如何产生大量的独立预测模型,特别是当它们都采用同样的基学习器时。第6章将深入讨论这是如何做到的。方法很巧妙,理解其运作的基本原理也相对容易。下面是其概述。

集成方法为了实现最广泛的应用通常将二元决策树作为它的基学习器。二元决策树通常如图1-3所示。图1-3中的二元决策树以一个实数x作为最初的输入,然后通过一系列二元(二值)决策来决定针对x的最终输出应该是何值。第1次决策是判断x是否小于5。如果回答“no”,则二元决策树输出值4,在由决策的方框下面标为“No”的分支引出的圆圈内。每个可能的x值通过决策树都会产生输出y。图1-4将输出y画为针对决策树的输入x的函数。

由此产生的问题是:这些比较值是如何产生的(如例子中的x<5?),输出的值是如何确定的(图1-3决策树底部圆圈中的值)。这些值都来自于基于输入数据的二元决策树的训练。训练算法不难理解,在第6章会详细叙述。需要注意的很重要的一点是给定输入数据,训练所得的二元决策树的这些值都是确定的。一种获得不同模型的方法是先对训练数据随机取样,然后基于这些随机数据子集进行训练。这种技术叫作投票[bagging,来自于自举集成算法(bootstrap aggregating)的简化说法]。此方法可以产生大量的具有稍许差异的二元决策树。这些决策树的输出经过平均或投票产生最终的结果。第6章将描述此项技术的细节和其他更有力的工具。

时间: 2024-09-20 19:38:42

《Python机器学习——预测分析核心算法》——1.3 什么是集成方法的相关文章

《Python机器学习——预测分析核心算法》——导读

前言 Python机器学习--预测分析核心算法 从数据中提取有助于决策的信息正在改变着现代商业的组织,同时也对软件开发人员产生了直接的影响.一方面是对新的软件开发技能的需求,市场分析师预计到2018年对具有高级统计和机器学习技术的人才需求缺口将达140000-190000人.这对具有上述技能的人员来说意味着丰厚的薪水和可供选择的多种有趣的项目.另一方面对开发人员的影响就是逐步出现了统计和机器学习相关的核心工具,这减轻了开发人员的负担.当他们尝试新的算法时,不需要重复发明"轮子".在所有

《Python机器学习——预测分析核心算法》——第1章 关于预测的两类核心算法

第1章 关于预测的两类核心算法 Python机器学习--预测分析核心算法 本书集中于机器学习领域,只关注那些最有效和获得广泛使用的算法.不会提供关于机器学习技术领域的全面综述.这种全面性的综述往往会提供太多的算法,但是这些算法并没有在从业者中获得积极的应用. 本书涉及的机器学习问题通常是指"函数逼近(function approximation)"问题.函数逼近问题是有监督学习(supervised learning)问题的一个子集.线性回归和逻辑回归是解决此类函数逼近问题最常见的算法

《Python机器学习——预测分析核心算法》——第2章 通过理解数据来了解问题

第2章 通过理解数据来了解问题 Python机器学习--预测分析核心算法新数据集(问题)就像一个包装好的礼物,它充满了承诺和希望.一旦你能解决它,你就收获了喜悦.但是直到你打开它,它都一直保持着神秘.本章就是告诉你怎么"打开"新的数据集,看清楚里面都有什么,知道如何处置这些数据,并且开始思考如何利用这些数据构建相应的模型. 本章有两个目的:一是熟悉这些数据集,这些数据集被用来作为解决各种类型问题的例子,主要是利用第4章和第6章介绍的算法:另一个目的就是展示Python中分析数据的工具包

《Python机器学习——预测分析核心算法》——1.6 各章内容及其依赖关系

1.6 各章内容及其依赖关系 依赖于读者的背景和是否有时间来了解基本原理,读者可以采用不同的方式来阅读本书.图1-7为本书各章之间的依赖关系. 第2章仔细审视各种数据集.这些数据集用于本书中的问题实例,用以说明算法的使用,以及各种算法之间基于性能和其他特征的比较.面对一个新的机器学习问题的起点就是深入专研数据集,深入理解数据集,了解它们的问题和特质.第2章的部分内容就是展示Python中可以用于数据集探索的一些工具集.可以浏览第2章中的部分例子,不需要阅读全部例子就可以了解整个流程,当在后续章节

《Python机器学习——预测分析核心算法》——2.2 分类问题:用声纳发现未爆炸的水雷

2.2 分类问题:用声纳发现未爆炸的水雷 此小节将介绍在分类问题上首先需要做的工作.首先是简单的测量:数据的规模.数据类型.缺失的数据等.接着是数据的统计特性.属性之间的关系.属性与标签之间的关系.本节的数据集来自UC Irvine 数据仓库(见参考文献1).数据来源于实验:测试声纳是否可以用于检测在港口军事行动后遗留下来的未爆炸的水雷.声纳信号又叫作啁啾信号(chirped signal),即信号在一个脉冲期间频率会增加或降低.此数据集的测量值代表声纳接收器在不同地点接收到的返回信号,其中在大

《Python机器学习——预测分析核心算法》——1.1 为什么这两类算法如此有用

1.1 为什么这两类算法如此有用 有几个因素造就了惩罚线性回归和集成方法成为有用的算法集.简单地说,面对实践中遇到的绝大多数预测分析(函数逼近)问题,这两类算法都具有最优或接近最优的性能.这些问题包含:大数据集.小数据集.宽数据集(wide data sets)[1].高瘦数据集(tall skinny data sets)[2].复杂问题.简单问题,等等.Rich Caruana及其同事的两篇论文为上述论断提供了证据. 1."An Empirical Comparison of Supervi

《Python机器学习——预测分析核心算法》——2.4 基于因素变量的实数值预测:鲍鱼的年龄

2.4 基于因素变量的实数值预测:鲍鱼的年龄 探测未爆炸的水雷数据集的工具同样可以用于回归问题.在给定物理测量值的情况下,预测鲍鱼的年龄就是此类问题的一个实例.鲍鱼的属性中包括因素属性,下面将说明属性中含有因素属性后与上例有什么不同. 鲍鱼数据集的问题是根据某些测量值预测鲍鱼年龄.当然可以对鲍鱼进行切片,然后数年轮获得鲍鱼年龄的精确值,就像通过数树的年轮得到树的年龄一样.但是问题是这种方法代价比较大,耗时(需要在显微镜下数年轮).因此更方便经济的方法是做些简单的测量,如鲍鱼的长度.宽度.重量等指

《Python机器学习——预测分析核心算法》——1.4 算法的选择

1.4 算法的选择 这2类算法的概要比较如表1-4所示.惩罚线性回归的优势在于训练速度非常快.大规模数据集的训练时间可以是小时.天,甚至是几周.要获得一个可以部署的解决方案往往需要进行多次训练.过长的训练时间会影响大数据问题的解决进度及其部署.训练所需时间当然越短越好,因此惩罚线性回归因其训练所需时间短而获得广泛使用就是显而易见的了.依赖于问题,此类算法相比集成方法可能会有一些性能上的劣势.第3章将更深入地分析哪类问题适用于惩罚回归,哪类问题适用于集成方法.即使在某些情况下,惩罚线性回归的性能不

《Python机器学习——预测分析核心算法》——2.6 多类别分类问题:它属于哪种玻璃

2.6 多类别分类问题:它属于哪种玻璃 多类别分类问题与二元分类问题类似,不同之处在于它有几个离散的输出,而不是只有两个.回顾探测未爆炸的水雷的问题,它的输出只有两种可能性:声纳探测的物体是岩石或者水雷.而红酒口感评分问题根据其化学成分会产生几个可能的输出(其口感评分值是从3分到8分).但是对于红酒口感评分问题,口感评分值存在有序的关系.打5分的红酒要好于打3分的,但是要劣于打8分的.对于多类别分类问题,输出结果是不存在这种有序关系的. 此节将根据玻璃的化学成分来判断玻璃的类型,目标是确定玻璃的