首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

随机森林:基于决策树的集成学习算法

欢迎关注”生信修炼手册”!

集成学习并不是一个具体的模型或者算法,而是一个解决问题的框架,其基本思想是综合参考多个模型的结果,以提高性能,类似三个臭皮匠,顶个诸葛亮,图示如下

要运用集成学习,就需要一个拆分和结合的过程,首先是拆分,将总的输入数据拆分成多份数据,每个数据运用一个单独的模型,然后是结合,集合拆分后建立的各个子模型,得到最终的结果。

具体到策略上,常用的有以下两类

1. Bagging

Bagging是Boostrapping Aggregating的结合体,通过随机抽样的方式将输入数据拆分成独立的N份,针对每一份数据单独建模,示例如下

属于该策略的算法,最典型的就是RandomForset-随机森林算法。在该策略中,拆分成的数据是相互独立的,可以并行执行其建模过程,最后再进行汇总。汇总时每个子模型的权重是相等的。

2. Boosting

区别于Bagging, Boosting的数据集之间是存在依赖关系的,图示如下

属于该策略的算法,典型的有Adaboost和GBDT梯度提升树。在最后汇总时,各个子模型会拥有不同的权重。

对于随机森林而言,其核心的模型是基于CART的决策树,图示如下

具体的过程如下

1.首先基于有放回的随机抽样,抽取出N份独立的数据,因为是有放回的抽样,可以保证抽取的数据集和原始的数据集大小相同;

2.对每一份抽取的数据集构建决策树模型,因为相互独立,所以可以并行;

3.汇总多个模型的结果,对于回归问题,直接计算多个模型的算数平均数即可,对于分类问题,直接选取个数多的分类结果就好;

在scikit-learn中,使用随机森林模型的代码如下

随机森林不容易出现单棵决策树中的过拟合问题,同时由于随机性的存在,有很强的抗噪声能力。但是缺点是解释性差,随机性的存在是一个黑盒子,不像单棵决策树那样,可以直观的解释其分类结果是如何判断出来的。

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210301A0DHDI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券