您的位置:首页 > 其它

集成模型的五个基础问题

2017-02-27 23:19 232 查看
参考:http://www.csdn.net/article/1970-01-01/2825965


引言

如果你曾经参加过数据科学竞赛,你一定意识到集成模型(Ensemble Modeling)举足轻重的作用。事实上,集成模型提供了最有说服力的方式之一,来建立高度精确的预测模型。Bagging和Boosting算法进一步加强了这一方法的精确性。

所以,你下次构建预测模型的时候,考虑使用这种算法吧。你肯定会赞同我的这个建议。如果你已经掌握了这种方法,那么太棒了。我很想听听你在集成模型上的经验,请把你的经验分享在下面的评论区。

对于其他人,我将会分享一些集成模型中常见的问题。如果你想评估一个人对集成模型方面的知识程度,你可以大胆地提出这些问题,来检查他/她的知识水平。另外,这些都是最简单的问题,因此你不希望他们回答错误!



哪些是常见的问题(关于集成模型)?

在分析各种数据科学论坛后,我已经确定了5个集成模型最常见的问题。这些问题与刚接触集成模型的数据科学家高度相关。以下就是这些问题:

什么是集成模型?
什么是bagging,boosting和stacking?
我们可以集成多个具有相同机器学习算法的模型吗?
我们如何确定不同模型的权重?
集成模型的好处是什么?


1、什么是集成模型?

我们先从解决一个分类问题来理解它。

场景问题:建立垃圾邮件过滤规则。



解决方案:我们可以制定各种垃圾邮件分类规则,我们来看看其中的几个:

1、垃圾邮件

邮件少于20个单词;
只有图片(宣传图片);
具有某些关键词,比如“赚大钱”和“减肥”;
许多拼写错误的单词。
2、非垃圾邮件
从经过验证域名发来的邮件;
来自家庭成员或者邮件联系人的邮件

在上面,我已经列出了一些过滤垃圾邮件的常见规则。你认为这些规则能单独预测正确的分类吗?

大部分人可能都会认为不能——事实也是这样!与使用单个规则进行预测相比,结合使用这些规则会产生鲁棒的预测效果。这就是集成模型的原则。集成模型集合使用多个“单独的”(不同的)模型,并提供出色的预测能力。

如果用现实生活中的例子说明集成模型,就比如一群人总能做出比单个人要好的决策,特别是当群成员的背景各不相同时。对于机器学习来说也是这样。基本上,集成是一种监督式学习技术,它将多个弱学习模块/模型集成起来,产生强学习模块。如果我们集成低相关性模型的话,集成模型的工作效果会更好。

集成方法常用于解决数据科学问题方面的一个非常好的例子就是随机森林算法(使用多层分类回归树模型)。在分类新对象上,比使用单个分类回归树性能要更好,每一棵树都给类进行“投票”,然后森林选择得票最高(在森林所有的树中)的作为目标分类。如果是回归问题,那么将取不同树的输出均值。

你也可以参考这篇文章《集成学习基础通俗简介》来了解更多集成模型知识。


2、什么是Bagging,Boosting和Stacking?

让我们分别来看看这三个是什么,并了解这些术语之间的区别:

Bagging(Bootstrap汇总)是一种集成方法。首先,我们创建随机训练数据集样本(训练数据集的子集)。然后我们为每个样本建立分类器。最后,这些多分类器的结果将结合起来,使用平均或多数投票。Bagging有助于降低方差。



Boosting提供了预测模块的连续学习功能。第一个预测模块从整个数据集上学习,下一个预测模块在前一个的性能基础上在训练数据集上学习。首先对原始数据集进行分类,并给每个观测给予同样的权重。如果第一个学习模块错误预测了类,那么将会赋予错误分类观测较高的权重。这个过程将反复迭代,不断添加分类学习模块,直到达到模型数量或者某个准确度。Boosting有比Bagging更好的预测精准度,但它有时也会过度拟合训练数据。



Boosting最常见的例子是AdaBoost和梯度提升。你也可以看看这些文章来进一步了解Boosting算法。

Getting smart with Machine Learning – AdaBoost and Gradient Boost
Learn Gradient Boosting Algorithm for better predictions (with codes in R)

Stacking工作分为两个阶段。首先,我们使用多个基础分类器来预测分类。然后,一个新的学习模块与它们的预测结果结合起来,来降低泛化误差。




3、我们可以集成多个具有相同机器学习算法的模型吗?

是的,我们可以集成多个具有相同机器学习算法的模型,但是结合多个不同算法生成的预测结果通常会得到更好的预测。这是由于彼此间的多样化或独立性的本质。比如,结合随机森林,KNN,朴素贝叶斯得到最终的预测结果集比结合三个随机森林模型得到的结果要更强。创建一个强大的集成模型的关键是模型的多样性。一个由两种非常相似技术组成的集成模型性能要比由具有多样性模型集组成的集成模型差。

案例:假如我们有三个模型(A,B和C)。A,B,C的预测准确率分别为85%,80%,55%。但是A和B高度相关,而C与A或B都不怎么相关。那么我们应该将A和B集成起来吗?不,我们不能这么做,因为这两个模型高度相关。因此,我们不能将这两者集成,因为这对降低泛化误差没有帮助。我更倾向于集成A和C或者B和C。


4、我们如何确定不同模型的权重?

集成模型的一个最常见的问题就是找到每个基础模型的最佳权重。在一般情况下,我们假定所有基础模型具有相同的权重,然后采取预测的平均值作为结果。但是,这是最好的解决方案吗?

找到各个基础学习模块的最佳权重集成有许多方法。这些方法对找到合适的权重提供了公平的依据。我在下面将它们罗列了出来:

计算基础学习模块之间的共线性表,然后基于这张表来确定用于集成的基础模型。之后,根据确定的基础模型的交叉验证得分(得分之比)来确定权重。
找到返回基础学习模块最优权重的算法。你可以参考这篇文章 Finding
Optimal Weights of Ensemble Learner using Neural Network来了解此算法。
我们同样可以使用以下方法来解决这个问题:

Forward Selection of learners
Selection with Replacement
Bagging of ensemble methods

你也同时可以看看Kaggle/数据科学竞赛胜出的解决方案,以了解解决此问题的其他方法。


5、集成模型的好处是什么?

集成模型有两大好处:

更好的预测;
更稳定的模型。

集成多个模型会比其他模型有更少的噪声。在金融领域,我们称为“多样化”,投资许多股票要比投资一个股票的变化风险要小。这也是为什么使用集成模型要比使用单独模型效果要好。使用集成模型需要注意的一个问题是避免过拟合,虽然Bagging在很大程度上对此进行了处理


后记

在这篇文章中,我们了解了5个关于集成模型常常被问及的问题。在回答这些问题时,我们讨论了“集成模型”,“集成方法”,“为什么我们要集成不同的模型”,“确定最优集成权重的方法”和“好处”。我建议你看看数据科学竞赛前5名的解决方案,看看他们的集成方式以获得更深入的理解,然后多多实践。这会帮助你理解什么方法行得通,什么方法行不通。

你认为这篇文章有用吗?你用过其他方法找到最优权重吗?或者确定合适的基础学习模块?欢迎你对此进行评论。

如果你喜欢这篇文章并且想继续数据分析学习,订阅我们的邮件,关注我们的TwitterFacebook

原文链接:5 Easy questions on Ensemble Modeling everyone should know(译者/刘翔宇 审校/赵屹华、朱正贵 责编/周建丁)

关于译者: 刘翔宇,中通软开发工程师,关注机器学习、神经网络、模式识别。

相关链接:

集成学习基础通俗入门
集成学习:机器学习兵器谱的“屠龙刀”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  决策树