网站首页 > 技术文章 正文
在 CART 分类回归树的基础之上,我们可以很容易的掌握随机森林算法,它们之间的区别在于,CART 决策树较容易过拟合,而随机森林可以在一定程度上解决该问题。
随机森林的主要思想是:使用随机性产生出一系列简单的决策树,并组合它们的预测结果为最终的结果,可谓三个臭皮匠赛过一个诸葛亮,下面我们就来具体了解一下。
产生随机森林的具体步骤
产生随机森林的步骤大致为三步
- 准备样本
- 产生决策树
- 循环第 1 、2 步,直到产生足够的决策树,一般为上百个
在第 1 步,它是一个可放回抽样,即所产生的样本是允许重复的,这种抽样又被称为 Bootstrap,例如我们有以下 dummy 数据
在做完 Bootstrap 之后,可能的样本数据如下
可见,样本数据中,第 3 条和第 4 条样本是一样的,都对应的是原始数据中的第 4 条。
接下来,就是要使用上面的样本数据来产生决策树了,产生决策树的方法和 CART 基本一致,唯一的不同地方在于,节点的构建不是来自于全部的候选特征,而是先从中随机的选择 n 个特征,在这 n 个特征中找出一个作为最佳节点。
举个例子,假设 n = 2,且我们随机选择了「血液循环正常」和「血管堵塞」这两个特征来产生根节点,如下:
我们将在上述两个特征中选择一个合适的特征作为根节点,假设在计算完 Gini 不纯度之后,「血液循环正常」这个特征胜出,那么我们的根节点便是「血液循环正常」,如下图所示
接下来我们还需要构建根节点下面的节点,下一个节点将会在剩下的「胸口疼痛」、「血管堵塞」和「体重」三个特征中产生,但我们依然不会计算所有这 3 个特征的 Gini 不纯度,而是从中随机选择 2 个特征,取这 2 个特征中的 Gini 不纯度较低者作为节点。
例如我们随机选到了「胸口疼痛」和「体重」这两列,如下:
假设此时「体重」的 Gini 不纯度更低,那么第 2 个节点便是「体重」,如下图:
继续下去,我们便产生了一棵决策树。
随机森林是多棵决策树,在产生完一棵决策树后,接着会循环执行上述过程:Bootstrap 出训练样本,训练决策树,直到树的数量达到设置值——通常为几百棵树。
随机森林的预测
现在我们产生了几百棵树的随机森林,当我们要预测一条数据时,该怎么做呢?我们会聚合这些树的结果,选择预测结果最多的那个分类作为最终的预测结果。
例如我们现在有一条数据:
该条数据被所有树预测的结果如下:
上述结果聚合后为:
取最多的那项为最终的预测结果,即 Yes——该病人被诊断为患有心脏病。
以上,随机森林的两个过程:Bootstrap 和 Aggregate 又被称为 Bagging。
总结
本文我们一起学习了随机森林的算法,和 CART 决策树比起来,它主要被用来解决过拟合问题,其主要的思想为 Bagging,即随机性有助于增强模型的泛化(Variance) 能力。
参考:
- Random Forests (http://1t.click/bh8X)
相关文章:
- 决策树算法之分类回归树 CART(Classification and Regression Trees)【1】(http://1t.click/bhSm)
- 决策树算法之分类回归树 CART(Classification and Regression Trees)【2】(http://1t.click/bhSn)
- 上一篇: 3分钟掌握机器学习中的决策树 机器学习和深度学习决策树
- 下一篇: 几种特征选择方法的比较,孰好孰坏?
猜你喜欢
- 2024-11-12 电力系统领域,电力系统暂态稳定判别方法
- 2024-11-12 机器学习“司马家族”——树族 机器学习实战树回归
- 2024-11-12 大白话人工智能算法-第27节决策树系列之预剪枝和后减枝(6)
- 2024-11-12 机器学习之图解 GBDT 的构造和预测过程
- 2024-11-12 机器学习算法之随机森林算法通俗易懂版本
- 2024-11-12 决策树之 GBDT 算法 - 回归部分 gbdt和决策树
- 2024-11-12 大数据:如何用决策树解决分类问题
- 2024-11-12 几种特征选择方法的比较,孰好孰坏?
- 2024-11-12 3分钟掌握机器学习中的决策树 机器学习和深度学习决策树
- 2024-11-12 一文看懂决策树分类模型理论和应用
你 发表评论:
欢迎- 11-13第一次养猫的人养什么品种比较合适?
- 11-13大学新生活不适应?送你舒心指南! 大学新生的不适应主要有哪些方面
- 11-13第一次倒班可能会让人感到有些不适应,以下是一些建议
- 11-13货物大小不同装柜算法有哪些?怎么算?区别有哪些?
- 11-13五大基本算法 五大基本算法是什么
- 11-13高级程序员必备:分治算法分享 分冶算法
- 11-13最快速的寻路算法 Jump Point Search
- 11-13手机实时人工智能之「三维动作识别」:每帧只需9ms
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)