机器学习第九课--随机森林

2023-09-20 23:00:26

一.什么是集成模型

对于几乎所有的分类问题(图像识别除外,因为对于图像识别问题,目前深度学习是标配),集成模型很多时候是我们的首选。比如构建一个评分卡系统,业界的标配是GBDT或者XGBoost等集成模型,主要因为它的效果确实好,而且稳定。还有一点是这些模型的可解释性也很好,不像深度学习模型就像个黑盒子。

那为什么集成模型的可解释性好呢? 这个其实不难理解,因为随机森林或者提升树模型其实是基于决策树的,而且我们知道决策树模型的可解释性本来就很好。集成模型可以简单理解成决策树的集合!

二.集成模型的优势  

小时候我们应该都听过这样的一句话 - “三个臭皮匠顶个诸葛亮"。其实也从侧面反映了集成模型的思想,多个人一起决策要优于一个人单干。当然也有可能存在一些特别牛逼的人要远远胜于其他所有人的智慧之和,但毕竟是特例。至少多听取不同的建议会让自己少犯一些愚蠢的错误。 

 三.构建集成模型

 至于构建集成模型,通常有两种方法,一种叫Bagging,另外一种叫Boosting,这是两种完全不一样的方法。在这一章,我们主要来讲解第一种(随机森林是Bagging的一种方法),在之后的章节我们会讲解Boosting的方法。

 每个预测会有一个投票,比如说123说A,4说B,每个预测间相互独立!

 四.方差和稳定性

 在训练模型时,我们的目的是要训练出泛化能力强的模型,这一点我们已经在之前的章节里讲过了。为了一个模型具有较强的泛化能力,我们需要解决模型的过拟合现象。那什么样的模型容易过拟合呢?答案是“不稳定的模型!”,也就是训练出来的模型放在训练数据上表现特别好,但放在真实的线上环境时就不行了。 就好比一个学生平时成绩非常好,但一到关键时刻就不灵了,这种现象可以笼统地理解为不稳定。所以我们的目的是希望训练出一个稳定的模型。

做个总结,多个模型共同预测确实会降低方差,也就意味着提高模型的稳定性。但准确率是不是也会保证提升呢?这个其实不好说,但通常来说集成模型的准确率还是要高于其他简单模型的。但不管怎么样,只要能理解为什么共同决策会降低风险或者增加稳定性,足以帮助理解后续的内容了。

 五.随机森林的流程

多样性 

只有多样性(Diversity)才能保证随机森林的效果!这一点非常重要。就比如我们在构建团队的时候,也希望每个人有自己的特点,这样可以起到很好的互补作用,补偿取短。那接下来的问题就来了,如何构造出很多具备多样性的决策树 答案在于“随机“! 

 通过两个方面的随机操作,我们可以得出具备多样性的决策树。这也是为什么我们把它叫作“随机”森林的主要原因。第一种随机化来自于样本的采样,也就是说每一棵决策树来自于不同的训练样本,请看下面的一段视频。

除了样本的随机化,我们在构造每一棵决策树的时候也会随机化特征。回顾之前决策树模型,当我们要选择当前最好的特征作为根节点的时候,我们把所有可能的特征全部尝试了一遍然后选了其中最好的。但在随机森林里,选择特征的时候首先会做采样,比如从100个特征里选择10个,然后从10个当中选择最好的特征作为当前的根节点。 所以,每一次做分裂(split)的时候先要做特征的采样,然后一一做比较,最后选择效果最好的。这两个方面的随机化可以保证带来多样化的决策树。当然除了这两个,还可以设计更多的随机化,但主要还是以这两个为主。

 六.随机森林的预测

 构建完随机森林之后,我们即可以对新的样本做预测了! 预测过程类似于投票的过程。

更多推荐

【PostgreSQL】系列之 一 用户创建和授权(三)

🍁博主"开着拖拉机回家"带您GotoNewWorld.✨🍁🦄个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客🎐✨🍁🪁🍁希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥目录🍁博主"开着拖拉机回家"带您GotoNewWorld.✨🍁一、Postgre

掌握无人机遥感数据预处理的全链条理论与实践流程、典型农林植被性状的估算理论与实践方法、利用MATLAB进行编程实践(脚本与GUI开发)以及期刊论文插图制作等

目录专题一认识主被动无人机遥感数据专题二预处理无人机遥感数据专题三定量估算农林植被关键性状专题四期刊论文插图精细制作与Appdesigner应用开发近地面无人机植被定量遥感与生理参数反演更多推荐遥感技术作为一种空间大数据手段,能够从多时、多维、多地等角度,获取大量的农情数据。数据具有面状、实时、非接触、无伤检测等显著优

【Spring Boot】单元测试

单元测试单元测试在日常项目开发中必不可少,SpringBoot提供了完善的单元测试框架和工具用于测试开发的应用。接下来介绍SpringBoot为单元测试提供了哪些支持,以及如何在SpringBoot项目中进行单元测试。1.SpringBoot集成单元测试单元测试主要用于测试单个代码组件,以确保代码按预期方式工作。目前流

入门Echarts数据可视化:从基础到实践

目录引言数据可视化的重要性Echarts资源与拓展Echarts简介及开发准备什么是EchartsEcharts的特点与优势安装Echarts引入Echarts库第一个图表使用Echarts绘制一个简单的柱状图数据准备与图表配置数据格式要求图表标题与标签设置实践与性能优化提升图表渲染性能的技巧响应式设计与移动端适配引言

数据分析实战│价格预测挑战【文末赠书】

文本分析是指对文本信息的表示及特征项的选取,商品文本的描述能够反映特定立场、观点、价值和利益。考虑到网上海量的商品数量,对产品的定价难度很大,因此可以使用商品描述帮助商户定价。比如,服装具有较强的季节性价格趋势,受品牌影响很大,而电子产品则根据产品规格波动。因此,根据商品提供的文本信息进行合理地定价,能够有效地帮助商家

第32节——useReducer——了解

一、概念useReducer是在reactV16.8推出的钩子函数,从用法层面来说是可以代替useState。众所周知,useState常用在单个组件中进行状态管理,但是遇到状态全局管理的时候,useState显然不能满足我们的需求,这个时候大多数的做法是利用第三方的状态管理工具,像redux,Recoil或者Mobx

IPO解读丨Arm破解市场质疑的答案,仍在AI中?

时隔7年,移动设备芯片领域霸主Arm重回二级市场。IPO进程的推进,让这家全球芯片行业的基石公司,不得不面对来自市场的全方位的密集审视。而从股价来看,投资者对于Arm的态度始终处于摇摆中,从上市首日股价大涨25%,到截至发稿前的三个交易日股价累计下跌12.5%,可以看出,Arm在二级市场面临一定质疑。但不可否认Arm在

ChatGPT技术原理

Task03ChatGPT技术原理目录阶段一:有监督微调Supervisedfine-tuning(SFT)阶段二:训练回报模型(RewardModel,RM)阶段三:使用强化学习微调SFT模型ChatGPT是由GPT-3迭代来的,原有的GPT-3可能难以从文本中学会一些更高层次的表示,这就导致了GPT-3这样的语言模

指针和数组笔试题深度解析

学习之前我们将运用到sizeof和strlen函数sizeof和strlen函数认识和区别:1.strlen是一个库函数使用时需要引用#include<string.h>这个头文件,而sizeof是一个运算符号;2.strlen计算的是'\0'之前的字符个数,sizefo计算的是所占空间内存的大小,单位是字节;3.st

【系统架构】什么是集群?为什么要使用集群架构?

什么是集群?为什么要使用集群架构?1.什么是集群?2.为什么要使用集群?2.1高性能2.2价格有效性2.3可伸缩性2.4高可用性2.5透明性2.6可管理性2.7可编程性3.集群的常见分类3.1负载均衡集群3.2高可用性集群3.3高性能计算集群3.4网格计算集群4.常用的集群软硬件介绍及选型4.1企业中常见的集群软硬件产

JSON注解和异常处理的使用

一、JSON数据返回1.1.前言JSON是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。JSON的常用场景包括:前后端分离的项目中,后端向前端传送数据时。Ajax异步访问数据。RPC远程调用。除了JSON,还有其他的数据传输格式,如XML等。但是由于XML格式的特点,它在Web开发中使用较少。1.

热文推荐