【原理】随机森林模型是怎么训练的

news2025/1/12 18:50:21

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/

目录

  • 一、随机森林简介
  • 二、随机森林训练原理
    • 2.1. 随机森林的训练流程
    • 2.2. 随机森林训练的核心代码

用过随机森林的朋友都知道,随机森林是集成决策的一个经典代表,它通过训练多棵决策树,进行集体决策以抵抗过拟合。
但是,随机森林究竟具体是怎么训练出来的呢?笔者扒了python-sklearn的源码细读后发现原来如此简单,下面我们就一起看一看随机森林是怎么训练出来的吧~

一、随机森林简介

随机森林是将决策树进行简单bagging的一种集成算法,它经过多次随机抽取样本训练多棵决策树,用多棵决策树集成决策。由于它拥有多棵树,且每棵树是随机的,所以称为随机森林。
随机森林
随机森林的模型表达式如下:
随机森林的模型表达式
可以看到,随机森林就是多棵决策树的集成,要了解随机森林是如何训练的,也就只需要了解随机森林的每棵决策树是如何训练的就可以了。

用过随机森林的朋友都知道随机森林是怎么回事了,没用过随机森林的朋友,从上面的表达式也大概知道随机森林是个什么模型了,这里就不作过多的解释了,下面就直接介绍随机森林是怎么训练出这么多决策树的吧~!

二、随机森林训练原理

2.1. 随机森林的训练流程

下面展示随机森林的训练流程图:
随机森林训练流程
随机森林的具体训练流程如下
1.样本抽取 : 放回式随机抽取n(样本个数)次样本,最终得到n个样本
2.训练弱树 : 用抽取的样本训练决策树,最多使用m个特征就退出树的训练
一直训练K棵树为止
简单地说,就是生成k棵树,每棵树用的样本随机抽取,最后k棵树组合在一起就是森林

2.2. 随机森林训练的核心代码

下面展示随机森林训练时的核心代码,如下
随机森林训练代码
由于随机森林就是训练决策树,所以这里直接调用决策树模型的代码,从代码中可以看到,就是先对样本进行抽样,然后再训练决策树就行了。
总的来说,随机森林的训练原理就是这么简单。


相关链接:

《老饼讲解-机器学习》:老饼讲解-机器学习教程-通俗易懂
《老饼讲解-神经网络》:老饼讲解-matlab神经网络-通俗易懂
《老饼讲解-神经网络》:老饼讲解-深度学习-通俗易懂

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

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

相关文章

未公开 GeoServer开源服务器wfs远程命令执行漏洞 已复现(CVE-2024-36401)

0x01 阅读须知 技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成…

【面试系列】UI设计师高频面试题及详细解答

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…

bootloader原理介绍

bootloader解析 bootloader的引出 不知道你有没有想过这样一个问题,当你按下电源开关的那一瞬间,第一行代码是如何在芯片上运行起来的呢?我们都知道嵌入式软件代码,是需要通过一定的方式,烧录在硬件芯片中&#xff0c…

ubuntu安装搜狗\谷歌输入法

目录 1 安装搜狗输入法 1.1 安装Fcitx输入框架 1.2 下载搜狗输入法安装包 1.3 安装搜狗输入法 1.4 打开配置 1.5 选择fcitx 1.6 重启系统 1.7 配置输入法 1.8 添加搜狗输入法 1.9 使用 2 安装谷歌输入法 2.1 下载fcitx-googlepinyin 2.2 选择fcitx 2.3 重启系统 …

hive小练习 拓展

基于hive表小练习-CSDN博客的拓展 -- 1. 查询没有参与任意一门考试的学生姓名 LEFT JOIN操作时,数据库系统会从左表(即LEFT JOIN关键字左边的表)返回所有的行, 即使在右表(即LEFT JOIN关键字右边的表&#xff09…

Python便捷数据处理库之Baisou使用详解

概要 Baisou,中文译名为“便捷数据处理库”,是一个基于Python的库,旨在简化数据处理和分析的过程。它拥有丰富的数据类型和函数,可以帮助开发者轻松地处理数据,进行统计分析,以及实现复杂的数据转换。Baisou的设计理念是“简单、高效、易用”,让开发者能够更加专注于业…

无线领夹麦克风哪个牌子好,口碑最好的麦克风品牌良心推荐

在自媒体行业迅速发展的背景下,无线领夹麦克风已成为提升音频质量的重要工具。它能够在多种环境中保持语音的清晰度,有效增强创作效率和作品的专业性。市场上有许多无线麦克风产品,但并非所有都兼具高性能与合理价格。基于我的个人使用经验&a…

Firewalld 防火墙基础

Firewalld 防火墙基础 一、Firewalld概述firewalld 简介firewalld 和 iptables 的关系firewalld 与 iptables service 的区别 二、Firewalld 网络区域区域介绍Firewalld数据处理流程 三、Firewalld 防火墙的配置方法firewall-config 图形工具“区域”选项卡“服务”选项卡改变防…

5.3.3、二维数组案例-考试成绩统计

代码 #include <iostream> using namespace std; #include <string>int main() {//二维数组案例-考试成绩统计//1、创建二维数组int scores[3][3] {{100,100,100},{90,50,100},{60,70,80},};string names[3] { "张三","李四","王五&quo…

基于微服务智能推荐健康生活交流平台的设计与实现(SpringCloud SpringBoot)+文档

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

MATLAB—— 流程语句(1)

一、if elseif else end 语句 例子 x 88; % x表示成绩 if x>90 && x < 100 dj 1; % 等级为1级 elseif x>80 && x < 90 dj 2; % 等级为2级 elseif x>60 && x < 80 dj 3; % 等级为…

信息打点web篇---前端js打点

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要整理前端js代码的打点思路 本文只为学习安全使用&#xff0c;切勿用于非法用途。 一切未授权的渗透行为都是违法的。 前端js打点概念与目的 javascript文件属于前端语言&#xff0c;也就是说他的代码都…

AI商品图生成定制外包公司

&#x1f308; 深度剖析AI商品图生成定制外包公司 —— 触站AI&#xff0c;智能图像的魔法师 &#x1f9d9;‍♂️ &#x1f389;触站AI&#xff0c;以技术创新引领行业变革 &#x1f389;在这个AI技术飞速发展的时代&#xff0c;触站AI以其专业和专注&#xff0c;成为了深圳乃…

容嬷嬷给紫薇过生日:鬼畜搭台,AI带货

刚入7月&#xff0c;短视频平台已被AI视频续写占领。 类似于紫薇在地牢里被容嬷嬷喂西瓜、喂鸡翅、喂蛋糕。张学友在《旺角卡门》的经典镜头突然给你微笑、嘟嘴、甚至祝你生日快乐。甚至&#xff0c;还有吴京从打斗戏变成亲吻戏。 在AI续写的短视频里&#xff0c;你永远也想象…

Python小练习05

一 绘制如下图形。 #Q1 import turtle as t def draw(n):for i in range(n):t.left(30)t.fd(100)t.left(120)t.fd(100)t.left(120)t.fd(100)t.left(120)t.fd(100)t.right(90) t.penup() t.goto(-150,20) t.speed(0) t.pendown() t.pencolor("red") t.pensize(5) draw…

权限控制权限控制权限控制权限控制权限控制

1.权限的分类 视频学习&#xff1a;https://www.bilibili.com/video/BV15Q4y1K79c/?spm_id_from333.337.search-card.all.click&vd_source386b4f5aae076490e1ad9b863a467f37 1.1 后端权限 1. 后端如何知道该请求是哪个用户发过来的 可以根据 cookie、session、token&a…

5.2.3、冒泡排序

代码 #include <iostream> using namespace std;int main() {//冒泡排序升序int arr[9] { 4,2,8,0,5,7,1,3,9 };cout << "排序前&#xff1a;" << endl;for (int i 0; i < 9; i){cout << arr[i] << " ";}cout <<…

python-图像模糊处理(赛氪OJ)

[题目描述] 给定 n 行 m 列的图像各像素点的灰度值&#xff0c;要求用如下方法对其进行模糊化处理&#xff1a; 1. 四周最外侧的像素点灰度值不变。 2. 中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均&#xff08;四舍五入&#xff09;输入&#xff…

pydub、ffmpeg 音频文件声道转换、采样率更改

转换成mono单声道 from pydub import AudioSegment# 加载MP3文件 mp3_file_path r"E:\allchat\output.wav" audio_segment AudioSegment.from_mp3(mp3_file_path)# 转换为单声道 audio_segment audio_segment.set_channels(1)# 导出为单声道MP3文件 mono_mp3_fil…

LinuxRT启动Veristand项目的配置文件

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…