分享

什么是集成学习?

 Wdjljjfj 2018-03-10

这里讲一个故事。有3个股民A、B和C,他们之前对某只股票是上涨还是下跌的预测准确率假设都为60%。但是他们都不满足于过去的预测准确率,因此决定三人搭伙来炒股。他们约定每人一票,少数服从多数来决定最终预测股票上涨还是下跌。如果有两个以上都预测股票会涨,那么他们就买入股票。

这样综合了三人的预测结果,就能得到该小组整体的预测准确率:两个人都预测对的概率+三个人都预测对的概率=3*60%*60%*40%+60%*60%*60%=64.8%。我们发现最后的预测准确率果然提高了。尝到了甜头的三人决定要扩张。

但股民A发现如果他们三人的预测准确率降为40%,那么最终的预测准确率则会是=3*40%*40%*60%+40%*40%*40%=35.2%。结果竟然下降了。并画出了个体的预测准确率和整体的预测准确率的关系曲线如下图所示:

因此我们会发现如果个体的准确率只要超过50%,那么整体的准确率就会提升。

在意识到这个问题之后,三人决定如果提高招募条件,要求新人的预测准确率必须大于50%,同时为了方便决策小组的人数要为奇数。

很快他们就招到了D和E,他们的预测准确率同样都为60%,然后五人的小组预测准确率就提高到了68.26%。众人发现招募到的人越多,那么预测的准确率就会响应的提高。

因此继续招到了F和G,但是他们又发现了一个问题,那就是小组内部的成员B和新来的F之间的想法和经历十分类似,因此他们的预测每次基本上都一样。这样就相当于B有了两票的决定权,这不仅违背了他们对小组的设计,也导致小组的预测率出现了下滑。因此他们决定踢出F,再重新招人并再次提高了准入门槛,要求同老成员的差异越大越好。

这就是集成学习的例子。下面给出定义:

集成学习(Ensemble learning)是利用多个学习器来实现学习任务的一种机器学习模型。在上述的例子中,股票预测小组中的每个人就是一个学习器,学习任务就是预测股票的涨跌。而为了实现更好的泛化能力和稳定性,对于每个学习器的要求就是“好而不同”,即单个的学习器要具备一定的准确性,不能表现太差,并且要有多样性,保证学习器之间的差异。

为了实现上述的对学习器的要求,在集成学习中通常的方法可以分为两类:一类就是个体学习器之间存在着依赖关系,串行生成学习器的,如Boosting;另一种则是个体学习器之间不存在依赖关系,并行生成学习器的,如Bagging和随机森林。

Boosting的方法就是在预测股票小组中,给定某只股票的历史记录资料,A先给出自己对于这只股票的某些看法。而B则在A的基础之上重点学习A的看法在某些日子不适用的情况;C则在B的基础之上重点学习B犯错了的那些部分,以此类推。从而使得既可以尽可能多的生成学习器,同时保证学习器之间的差异。

Bagging方法则是让所有人看股票资料的不同部分,比如A看去年的、B看前年的、C看所有星期天的……这样通过让不同的学习器看不同的资料,从而学到关于这只股票的部分变化特性,从而保证了学习器之间的差异性。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多