第 6 章 集成方法
集成方法来源于下述观察:如果模型之间近似相互独立,则多个模型联合的性能要优于单个模型的。如果一个分类器以 55% 的概率可以给出正确的结果,这样的分类器只能说是中等水平,但是如果拥有 100 个这样的分类器,则大多数分类器的结果都正确的概率可以上升到 82%。(在谷歌搜索“累积二项式概率分布”可以看到详细的信息,你也可以尝试其他的概率值看看会得到什么样的结果。)
一种获取近似相互独立的多个模型的方法就是使用不同的机器学习算法。例如,可以利用支持向量机(SVM)、线性回归、k 最近邻、二元决策树等等。但是这种方法很难产生大量的模型,而且这个过程冗长乏味,因为不同的模型有不同参数,需要分别调参,而且每个模型对输入数据的要求也不同。因此每个模型需要分别编码。这就远远不能适应于需要成百上千个模型的场景(下面会遇到)。
因此,集成方法的关键是开发出一种可以生成大量近似独立的模型的方法,然后把它们集成起来。在本章将学到最流行的方法是如何做的,并了解最流行的集成方法的工作原理。本章概述算法的基本架构,用 Python 展示算法的有效性,以加深对算法原理的理解。
集成方法是由两层算法组成的层次架构。底层的算法叫作基学习器(base learner)。基学习器是单个机器学习算法,这些算法后续会被集成到一个集成方法中。
本章主要使用二元决策树作为基学习器。上层算法通过对这些基学习器做巧妙的处理,使其模型近似相对独立。那么同一算法如何产生不同的模型?目前广泛使用的上层算法主要有:投票(bagging)、提升(boosting)和随机森林(random forests)。严格地讲,随机森林实际上是上层算法和修改后的二元决策树的组合,在“随机森林”小节可以看到详细的内容。
有很多算法都可以用作基学习器,如二元决策树、支持向量机等,但从实用角度二元决策树的应用最为广泛。它们广泛应用于开源和商业的软件包中,这些软件包都可以应用到项目中。集成方法包含成千上万的二元决策树,集成方法的很多特性都源自二元决策树。
所以本章以二元决策树开始介绍。
本章内容



本书评论