【教程】5分钟直接了解随机森林模型

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

目录

  • 一、什么是随机森林模型
    • 1.1.随机森林模型介绍
    • 1.2.为什么随机森林要用多棵决策树
  • 二、怎么训练一个随机森林模型
    • 2.1.训练一个随机森林模型

随机森林模型是机器学习中常用的模型之一,它是决策树模型的一个延伸。
本文简单快速直接地介绍什么是随机森林模型以及如何实现一个随机森林模型。

一、什么是随机森林模型

1.1.随机森林模型介绍

随机森林模型顾名思义,就是有很多棵树的模式,这里的树,指的是决策树。
它训练了许多棵决策树,然后集合在一起,作为一个集成模型进行决策。
什么是随机森林
如图所示,随机森林的模型表达式如下:
y = 1 k [ t 1 . prob ( x ) + t 2 . prob ( x ) + . . . + t k . prob ( x ) ] \text{y}= \dfrac{1}{k} \left [ \text{t}_1.\text{prob}(x)+\text{t}_2.\text{prob}(x)+...+\text{t}_k.\text{prob}(x) \right ] y=k1[t1.prob(x)+t2.prob(x)+...+tk.prob(x)]
其中,y:随机森林给出的各类别的预测概率
ti : 决策树
ti*prob(x): 第i棵树对x的预测,输出为各个类别的预测概率(行向量)
k : 森林规模数

1.2.为什么随机森林要用多棵决策树

随机森林模型采用了多棵决策树进行集成,这主要是因为决策树是一个极易过拟合的模型,因此集成多棵决策树,让它们一起进行综合评估,使得预测结果更加稳定。

二、怎么训练一个随机森林模型

2.1.训练一个随机森林模型

在python中通过sklearn如下实现一个随机森林模型,代码示例如下:

# -*- coding: utf-8 -*-
"""
sklearn的随机森林Demo
"""
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import numpy as npnp.random.seed(888)
# ==================== 加载数据 =====================================================
iris = load_iris()
X   = iris.data
y   = iris.target# ========================= 模型训练 ====================================================
clf = RandomForestClassifier(n_jobs=1,oob_score=True,max_features=2,n_estimators=100)
clf.fit(X, y)# =============================== 模型预测 ===================================================
pred_prob = clf.predict_proba(X)
pred_c    = clf.predict(X)
preds     = iris.target_names[pred_c]#=================打印结果==========================
print("\n----前5条预测结果:----") 
print(pred_prob[0:5])
print("\n----袋外准确率oob_score:----") 
print(clf.oob_score_)
print("\n----特征得分:----") 
print(clf.feature_importances_)

代码运行结果如下:

----前5条预测结果:----
[[1.   0.   0.  ][0.99 0.01 0.  ][1.   0.   0.  ][1.   0.   0.  ][1.   0.   0.  ]]----袋外准确率oob_score:----
0.9533333333333334----特征得分:----
[0.08186032 0.02758341 0.44209899 0.44845728]

其中,特征得分是指每个特征对随机森林贡献度的占比,它是决策树特征得分的拓展。


相关链接:

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

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

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

相关文章

Node.js全栈指南:静态资源服务器

上一章【认识 MIME 和 HTTP】。 我们认识和了解了 MIME 的概念和作用,也简单地学习了通过浏览器控制台查看请求和返回的用法。 通过对不同的 HTML、CSS、JS 文件进行判断,设置不同的 MIME 值,得以让我们的浏览器正正确地接收和显示不同的文…

八爪鱼现金流-031,宽带到期记一笔负债

到期了,新弄的网络,记录一下负债包。 八爪鱼现金流 八爪鱼

英英词典(汇编实验)

功能要求: 1.单词及其英文解释的录入、修改和删除 (1 ) 录入新单词,把它插入到相应的位置(按词典顺序),其后跟英文解释、同义词、反义词;(此功能要求在文件中完成,其它功能可以将单词放在数据段中&#xf…

数据库原理之数据库基本概念

目录 前言 基本概念 数据库完整性 前言 今天我们来看看数据库的基本概念,帮助大家对数据库有一点点最基本的了解 基本概念 4个基本概念 数据data:描述事物的符号,数据库中存储的基本对象。 数据库Database:长期存储在计算机…

山东大学多核并行2024年回忆版

2024.6.13回忆版 矩阵向量乘不可整除代码 集合通信与点对点通信的区别 块划分、循环划分、循环块划分(14个向量,4个进程) 按行访问还是按列访问快 SISD系统问题 循环依赖问题 问题:为什么不能对这个循环并行化&#xff0…

Python逻辑控制语句 之 综合案例

需求: 1. 提示⽤户输⼊登录系统的⽤户名和密码 2. 校验⽤户名和密码是否正确(正确的⽤户名:admin、密码:123456) 3. 如果⽤户名和密码都正确,打印“登录成功!”,并结束程序 4. 如果⽤户名或密码错误,打印“⽤户名或密码错误!”…

Django 对模型创建的两表插入数据

1,添加模型 Test/app8/models.py from django.db import modelsclass User(models.Model):username models.CharField(max_length50, uniqueTrue)email models.EmailField(uniqueTrue)password models.CharField(max_length128) # 使用哈希存储密码first_name …

代码随想录算法训练营第一天 [300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组]

代码随想录算法训练营第一天 [300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组] **一、300.最长递增子序列 ** 链接: 代码随想录. 思路:dp[i] 以nums[i]为结尾的递增子序列最大长度,下标为i的数,需要和下标为0开始一直到下标为…

DM 的断点续传测试

作者: 大鱼海棠 原文来源: https://tidb.net/blog/4540ae34 一、概述 DM有all、full、incremental三种数据迁移同步方式(task-mode),在all同步模式下,因一些特殊情况,需要变更上游MySQL的数…

LDO产品的基础知识解析

低压降稳压器 (LDO)是一种用于调节较高电压输入产生的输出电压的简单方法。在大多数情况下,低压降稳压器都易于设计和使用。然而,如今的现代应用都包括各种各样的模拟和数字系统,而有些系统和工作条件将决定哪种LDO最适合相关电路&#xff0c…

邓普顿的五大投资原则

在《逆向投资 邓普顿的长赢投资法》的推荐序《“逆向投资大神”邓普顿五大投资原则》中,刘建位总结了邓普顿的五大投资原则,分别是“以逆向投资为中心”“以价值投资为选股根本”“以分散投资为组合稳定器”“以全球投资来扩大机会池”“以极度悲观点投资…

rust单元测试顺序执行

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 存在的问题 有时候,不同单元测试之间可能会竞争相同的资源,比如读写相同的文件。在这种情况下,如果…

springboot的特点是什么?

Spring Boot是一个基于Spring框架的开源项目,它旨在简化Spring应用的初始搭建和开发过程。以下是Spring Boot的一些主要特点: 快速开发: Spring Boot提供了许多默认配置,使得开发者可以更快地开始开发应用程序,而无需…

秋招突击——6/28、6.29——复习{数位DP——度的数量}——新作{}

文章目录 引言复习数位DP——度的数量个人实现参考实现 总结 引言 头一次产生了那么强烈的动摇,对于未来没有任何的感觉的,不知道将会往哪里走,不知道怎么办。可能还是因为实习吧,再加上最近复习也没有什么进展,并不知…

Vmware Windows虚拟机卡死了

每次遇到这个问题我都想骂娘!!!! 这一次是怎么解决的呢? 解决:我给虚拟机连上网就好了! 重启,开关机,一点用都没有。

前端 JS 经典:箭头函数的意义

箭头函数是为了消除函数的二义性。 1. 二义性 函数的二义性指函数有不同的两种用法,就造成了二义性,函数的两种用法:1. 指令序列。2. 构造器 1.1 指令序列 就是调用函数,相当于将函数内部的代码再从头执行一次。 1.2 构造器 …

【Linux 工具 】 tcpdump详细使用说明

目录 1. 安装 tcpdump 2. 使用 tcpdump 命令 3. 监听所有网络接口 4. 监听指定网络接口 5. 保存数据包到文件 6. 读取保存的数据包文件 7. 过滤数据包 过滤源 IP 地址: 过滤目标 IP 地址: 过滤源和目标 IP 地址: 过滤指定端口: 过滤指定协议: 8. 显示数据包详…

爬虫实战:使用PHP爬取携程旅游信息

随着旅游业的不断发展,旅游信息变得非常丰富。为了方便大家获取更全面、准确的旅游信息,我们可以使用爬虫来抓取旅游网站上的数据,并进行分析和处理。本文将介绍如何使用php爬取携程旅游信息。 爬虫基础知识 爬虫是一种自动化程序&#xff…

Android SurfaceFlinger——OpenGL ES基础介绍(十二)

前面的文章我们介绍了 HWC,知道他在 Android 系统中用于硬件加速屏幕合成的一个组件。负责将多个 Surface(包括那些可能通过 OpenGL ES 渲染的内容)合成到一起,并输出到屏幕。HWC 利用底层硬件(如 GPU)来执行合成操作,减少 CPU 的负担,提高效率和电池寿命。 一、概述 …