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

一.什么是集成模型

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

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

二.集成模型的优势  

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

 三.构建集成模型

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

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

 四.方差和稳定性

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

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

 五.随机森林的流程

多样性 

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

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

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

 六.随机森林的预测

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/83602.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows/Linux(命令、安装包和源码安装)平台各个版本QT详细安装教程

前言 本文章主要介绍了Windows/Linux平台下,QT4,QT5,QT6的安装步骤。为什么要把QT版本分开介绍呢,因为这三个版本,安装步骤都不一样。Windows平台,QT4的Qt Creator,QT库和编译器是分开的&#…

Postman应用——Collection、Folder和Request

文章目录 Collection新建CollectionCollection重命名保存Request到Collection在Collection下创建Request删除Collection Folder新建FolderFolder重命名保存Request到Folder在Folder下创建Request在Folder下创建Folder删除Folder Request创建临时RequestRequest重命名删除Reques…

攻防世界-WEB-fileinclude

访问url,可以看到一些提示,绝对路径/var/www/html/index.php,也提示了flag在flag.php中。 快捷键Ctrlu,查看网页源代码 思路: 源代码中看到 include($lan.".php"); ,可知此处存在文件包含。$lan的值是从co…

QGIS怎么修改源代码?持续更新...

修改配置文件保存位置 修改目的:放着和本地安装的其他QGIS共用一份配置文件 修改文件:core/qgsuserprofilemanager.cpp 修改位置:第37行 return basePath QDir::separator() "my_profiles";修改完毕后,再次生成一下…

计算机和编程语言初见

学习程序设计的目的是什么呢? 不一定要做出一个软件或系统出来,更重要的是理解计算机是如何工作的以及它的长处和短处。 计算机本身是无意识的,因此我们要求它为我们做事时:应该将步骤细化、“直”化(规律化&#xf…

day51: QTday4,绘制事件、QT连接TCP网络通信

一、绘制时钟 widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #include <QRectF> #include <QTimer> #include <QTime> #include <QTimerEvent> #include <QLabe…

Spring Authorization Server入门 (十八) Vue项目使用PKCE模式对接认证服务

Vue单页面项目使用授权码模式对接流程说明 以下流程摘抄自官网 在本例中为授权代码流程。 授权码流程的步骤如下&#xff1a; 客户端通过重定向到授权端点来发起 OAuth2 请求。 对于公共客户端&#xff0c;此步骤包括生成code_verifier 并计算code_challenge&#xff0c;然后…

mysql数据库备份(mysqldump)

mysqldump命令备份数据 mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sqlmysqldump常用操作示例 1. 备份全部数据库的数据和结构 mysqldump -uroot -p123456 -A > /data/mysqlbackup/mydb.sql2. 备份全部数据库的结构&#xff08;加 -d 参数&#xff09; …

【音视频】ffplay解析-音视频同步

音视频同步 主要解析&#xff1a;以音频为基准&#xff0c;让视频合成音频 思路 视频慢了则丢掉部分视频帧&#xff08;视觉->画⾯跳帧&#xff09; 视频快了则继续渲染上⼀帧 具体实现 一个国际标准&#xff1a;音频帧-视频帧时间戳的差值在-100ms~25ms内流畅 1.差值音频…

菜鸟教程《Python 3 教程》笔记(20):面向对象

菜鸟教程《Python 3 教程》笔记&#xff08;20&#xff09; 20 面向对象20.1 面向对象技术简介20.2 创建类20.2.1 类定义20.2.2 实例化20.2.3 初始化20.2.4 类变量、实例变量20.2.5 类方法、实例方法、静态方法 20.3 访问可见性20.3.1 property装饰器 20.4 动态性20.4.1 __slot…

wpf资源Resources探究性学习(一)

测试环境&#xff1a; vistual studio 2017 .net framework 3.5 window 10 新建WPF应用(.net framework)&#xff0c;项目名称为&#xff1a;WpfDemo&#xff0c;如下图&#xff1a; 新建完项目后&#xff0c;默认带有一个名为MainWindow.xaml的代码 一 简单使用字符串资源…

js常用的数组处理方法

some 方法 用于检查数组中是否至少有一个元素满足指定条件。如果有满足条件的元素&#xff0c;返回值为 true&#xff0c;否则返回 false。 const numbers [1, 2, 3, 4, 5];const hasEvenNumber numbers.some((number) > number % 2 0); console.log(hasEvenNumber); /…

1_图神经网络GNN基础知识学习

文章目录 安装PyTorch Geometric安装工具包 在KarateClub数据集上使用图卷积网络 (GCN) 进行节点分类两个画图函数Graph Neural Networks数据集&#xff1a;Zacharys karate club network.PyTorch Geometric数据集介绍 edge_index使用networkx可视化展示 Graph Neural Networks…

H3C 6520X版本U盘升级

1.软件下载链接&#xff1a; 核心交换机-以太网交换机-工业交换机-新华三集团-H3C 账号&#xff1a;yx800 密码&#xff1a;01230123 2.将升级包放进U盘 3.登录交换机&#xff0c;给交换机插上U盘 >copy usba0:/S6520X-CMW710-R6628P40.ipe S6520X-CMW710-R6628P40.ip…

(并查集) 1971. 寻找图中是否存在路径 ——【Leetcode每日一题】

❓ 1971. 寻找图中是否存在路径 难度&#xff1a;简单 有一个具有 n 个顶点的 双向 图&#xff0c;其中每个顶点标记从 0 到 n - 1&#xff08;包含 0 和 n - 1&#xff09;。图中的边用一个二维整数数组 edges 表示&#xff0c;其中 edges[i] [ui, vi] 表示顶点 ui 和顶点 …

Flash的学习

Flash的学习 1 概述 2 特性 STM32 的内部FLASH 包含主存储器、系统存储器以及选项字节区域。 2.1 主存储器 主存储器分为256 页&#xff0c;每页大小为2KB&#xff0c;共512KB。这个分页的概念&#xff0c;实质就是FLASH 存储器 的扇区&#xff0c;与其它FLASH 一样&…

UWB定位模块

UWB定位模组是华星智控自研的小尺寸高集成度模组&#xff0c;模组长宽厚为30.1513.955.62毫米&#xff0c;天线采用IPEX接口分体式设计&#xff0c;方便集成于您的产品中&#xff0c;产品采用本安设计&#xff0c;可以用于煤矿等井下场景&#xff0c;通信距离>100米&#xf…

统计十进制数的二进制表示中1的个数 ← 清华 邓俊辉

【题目描述】 统计十进制数的二进制表示中1的个数。【算法分析】 虽然曾在 https://blog.csdn.net/hnjzsyjyj/article/details/110148954 发过一篇关于“统计十进制数的二进制表示中1的个数”的博客&#xff0c;但本文实现了一种新的思路。此思路来源于清华大学邓俊辉版《数据结…

什么是API接口?API接口的类型,如何调用API接口?

当今互联网技术的发展越来越快&#xff0c;越来越多的网站和应用程序需要获取外部数据来提供更好的服务和用户体验&#xff0c;这就需要使用API接口。本文将会对API接口的概念、类型以及如何调用API接口进行简要介绍。 一、什么是API接口&#xff1f; API&#xff08;Applica…

不可忽视的PG表膨胀优化

我是一个目录 案例1. 什么是表膨胀&#xff1f;2. 表膨胀危害是什么&#xff1f;3. 表膨胀是怎么产生的&#xff1f;4. 如何优化膨胀表&#xff1f; 案例 先来看一例公有云服务登录web页面端卡住案例&#xff1a; 故障现象&#xff1a;WEB端登录非常缓慢&#xff0c;需要耗时5…