集成学习方法之随机森林-入门
1、 什么是集成学习方法
集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测。
2、 什么是随机森林
在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。

例如, 如果你训练了5个树, 其中有4个树的结果是True, 1个数的结果是False, 那么最终投票结果就是True

3、 随机森林原理过程
学习算法根据下列算法而建造每棵树:
- 用N来表示训练用例(样本)的个数,M表示特征数目。
- 1、一次随机选出一个样本,重复N次, (有可能出现重复的样本)
- 2、随机去选出m个特征, m <<M,建立决策树
- 采取bootstrap抽样
可以按下面例子理解:
随机:随机生成的训练集和特征值
- 两个随机
- 训练集随机 - N个样本中随机有放回的抽样N个
- bootstrap 随机有放回抽样
[1, 2, 3, 4, 5]
新的树的训练集
[2, 2, 3, 1, 5]
- bootstrap 随机有放回抽样
- 特征随机 - 从M个特征中随机抽取m个特征
- M >> m
- 降维
- 训练集随机 - N个样本中随机有放回的抽样N个
3.1、 为什么采用BootStrap抽样
- 为什么要随机抽样训练集?
- 如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的
- 为什么要有放回地抽样?
- 如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是“有偏的”,都是绝对“片面的”(当然这样说可能不对),也就是说每棵树训练出来都是有很大的差异的;而随机森林最后分类取决于多棵树(弱分类器)的投票表决。
3.2 、API
-
class sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion=’gini’, max_depth=None, bootstrap=True, random_state=None, min_samples_split=2)
-
随机森林分类器
-
n_estimators:integer,optional(default = 10)森林里的树木数量120,200,300,500,800,1200
- criteria:string,可选(default =“gini”)分割特征的测量方法
- max_depth:integer或None,可选(默认=无)树的最大深度 5,8,15,25,30
- max_features="auto”,每个决策树的最大特征数量
- If “auto”, then max_features=sqrt(n_features).
- If “sqrt”, then max_features=sqrt(n_features) (same as “auto”).
- If “log2”, then max_features=log2(n_features).
- If None, then max_features=n_features.
- bootstrap:boolean,optional(default = True)是否在构建树时使用放回抽样
- min_samples_split:节点划分最少样本数
- min_samples_leaf:叶子节点的最小样本数
-
超参数:n_estimator, max_depth, min_samples_split,min_samples_leaf
3.3 代码
随机森林去进行预测
# 随机森林去进行预测
rf = RandomForestClassifier()param = {"n_estimators": [120,200,300,500,800,1200], "max_depth": [5, 8, 15, 25, 30]}# 超参数调优
gc = GridSearchCV(rf, param_grid=param, cv=2)gc.fit(x_train, y_train)print("随机森林预测的准确率为:", gc.score(x_test, y_test))
4、总结
- 在当前所有算法中,具有极好的准确率
- 能够有效地运行在大数据集上,处理具有高维特征的输入样本,而且不需要降维
- 能够评估各个特征在分类问题上的重要性
相关文章:
集成学习方法之随机森林-入门
1、 什么是集成学习方法 集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测。 2、 什么是随机森林 在机器学习中&…...
blender怎么在一个面上对半切割(不影响别的面)
1进入编辑模式 2.在面选择模式下,选中该物体需要切割成两半的面。 3.按K这个快捷键(切记,必须得用快捷键,不用的话没办法调出第一个绿色切割点),将切割点移动到需要切割的起始边,按住Shift键不放…...
vue3中使用vue3-pdf-app和使用浏览器内置的PDF插件浏览器PDF文件
文章目录 先准备一个PDF使用浏览器内置的PDF插件预览PDF在HTML中使用浏览器插件预览PDFVscode使用插件发布服务后直接通过URL地址访问PDF可使用的浏览器 在vue3项目中预览PDF文件vue3项目也是可以通过URL地址访问文件的vue3中使用浏览器内置的PDF插件预览PDF代码如下所示&#…...
fastadmin 后台添加视频
做个记录,字段自行对照解决 1.add.html <div class"form-group"><label class"control-label col-xs-12 col-sm-2">{:__(Video)}:</label><div class"col-xs-12 col-sm-8"><div class"input-group">&l…...
TFHE 的全同态模结构(FHE Module Structure)
参考文献: [CGGI20] Chillotti I, Gama N, Georgieva M, et al. TFHE: fast fully homomorphic encryption over the torus[J]. Journal of Cryptology, 2020, 33(1): 34-91.[BGGJ20] Boura C, Gama N, Georgieva M, et al. Chimera: Combining ring-lwe-based ful…...
rapidocr_paddle[gpu]:GPU端推理库来了
简介 rapidocr_paddle系列包是基于PaddlePaddle框架作为推理引擎的,支持CPU和GPU上推理。值得说明的是,这个包和PaddleOCR相比,代码基本都是一样的,只不过这个库将里面核心推理代码抽了出来,更加精简而已。 推荐GPU上…...
PKU 概率论+数理统计+建模 期中考复习总结
目录 计算条件概率计算概率(放回与不放回)生成随机数算法Linear Congruential Method判断是否是full period Uniformity (test of frequency)1.Chi-Square testmethodreminderexample 2.Kolmogorov-Sminov testmethodexample Independence (test of auto…...
Kubernetes技术与架构-网络 3
Kubernetes集群支持为Pod或者Service申请IPV4或者IPV6的地址空间。 kube-apiserver --service-cluster-ip-range<IPv4 CIDR>,<IPv6 CIDR> kube-controller-manager --cluster-cidr<IPv4 CIDR>,<IPv6 CIDR> --service-cluster-ip-range<IPv4 CI…...
pycharm转移缓存目录
原来的缓存目录为C:\Users\86176\AppData\Local\JetBrains,各种配置文件、缓存文件随着pycharm的使用堆积在这里,导致C盘逐渐爆满。 因此需要将缓存目录转移至D盘。首先需要了解缓存目录的知识。 PyCharm 和其他 JetBrains 的 IDE 通常会有两个关键的目…...
python 2组list绘制拟合曲线、计算拟合方程 R^2
import matplotlib.pyplot as plt import numpy as np # plt.rcParams[font.family] SimHei # 指定使用中文字体,例如宋体(SimHei)def Curve_Fitting(x, y, deg):parameter np.polyfit(x, y, deg) #拟合deg次多项式p np.poly1d(paramet…...
Vue单页面应用(SPA)怎么做SEO
在Vue单页面应用(SPA)中,由于内容的动态加载和路由切换,搜索引擎可能无法直接获取和索引页面的内容。不过,你可以采取一些策略来优化SEO,使你的Vue单页面应用在搜索引擎中更好地被索引和展示: 1:使用预渲染(Prerendering)或服务器端渲染(Server-Side Rendering,SS…...
简述【关系型数据库】
“关系型数据库”是博主在复习时做题遇到的知识点,用于简单扫盲 关系型数据库简称RDBMS,是依据关系模型来创建的数据库所谓“关系模型”就是“一对一、一对多、多对多”等关系模型。关系模型就是指二维表格模型,因而一个关系型数据库就是由二…...
LVS之DR模式(最常见的LVS负载方式,直接路由模式)
一、LVS-DR模式的数据流向 1、负载均衡器lvs调度器:只负责请求和转发到后端的真实服务器,但是响应结果,由后端服务器直接转发给客户端,不需要经过调度器的处理,减轻lvs调度器的负担,提高性能和稳定性 二、…...
006:vue使用lottie-web实现web动画
文章目录 1. 简介2. 优点3. 效果4. 安装使用5. lottie-web 常用方法6. Lottie-web 常用的事件 1. 简介 官方介绍:Lottie 是一个库,可以解析使用AE制作的动画(需要用bodymovie导出为json格式),支持web、ios、android、flutter和re…...
Java NIO
Java NIO 一,介绍 Java NIO(New IO)是 JDK 1.4 引入的一组新的 I/O API,用于支持非阻塞式 I/O 操作。相比传统的 Java IO API,NIO 提供了更快、更灵活的 I/O 操作方式,可以用于构建高性能网络应用程序。 …...
人机交互中的数字与文字
人机交互是指人类与计算机系统之间进行信息交流和操作的过程。在人机交互中,数字和文字被广泛应用于界面设计、输入输出、交流和信息展示等方面。 数字在人机交互中常用于表示数据、数量和参数等信息。通过数字,我们可以输入和输出各种数值,进…...
C++11新特性之十六:std::tie
在c 11标准库中,加入了std::tie,在c 14中改进,方便使用。 其与std::tuple关系密切, 主要目的是方便地使用std::tuple。 std::tie函数的作用就是从元素引用中生成一个std::tuple元组,其在头文件<tuple>中定义&…...
今天是1024节日,作为一个程序员,我想表达我对Java和詹姆斯·高斯林(James Gosling)的感激之情
今天是1024节日 我感谢Java感谢詹姆斯高斯林 今天是1024节日,作为一个程序员,我想表达我对Java和詹姆斯高斯林(James Gosling)的感激之情。Java是一门伟大的编程语言,而詹姆斯高斯林是它的创造者之一。 首先…...
众和策略:华为汽车概念活跃,圣龙股份斩获12板,华峰超纤涨10%
华为轿车概念23日盘中再度生动,到发稿,华峰超纤涨超10%,佛山照明、圣龙股份、隆基机械、银宝山新等涨停,赛力斯涨近6%。 值得注意的是,圣龙股份已接连12个交易日涨停。 昨日晚间,圣龙股份宣布前三季度成果…...
关于一篇“范式详解”博文的批注
本篇文章是对于下面这个链接中的文章的批注。这篇文章详细讲述了第一、二、三范式和BCNF范式,希望我的这篇文章能帮助您更好的理解这篇优秀的博文 详解第一范式、第二范式、第三范式、BCNF范式-CSDN博客 “范式”批注 这样理解范式的概念:一张数据表的表…...
傲梅分区助手 使用教程:免安装硬盘分区管理工具
一、工具简介 傲梅分区助手是一款功能强大的硬盘分区管理工具,支持无损数据调整分区大小、合并/拆分分区、迁移系统到 SSD 等操作。 安装包下载:https://pan.xunlei.com/s/VOpm6nKehfUHH-MDyIbMIhGkA1?pwdpm5g# 二、使用步骤 1. 解压工具包 右键点…...
Canine多租户系统实战:团队协作与基于角色的访问控制
Canine多租户系统实战:团队协作与基于角色的访问控制 【免费下载链接】canine A developer friendly PaaS for your Kubernetes 项目地址: https://gitcode.com/gh_mirrors/ca/canine Canine作为一款开发者友好的Kubernetes PaaS平台,提供了强大的…...
小白也能懂:Clawdbot整合Qwen3:32B的Web网关配置指南
小白也能懂:Clawdbot整合Qwen3:32B的Web网关配置指南 1. 这个镜像能帮你做什么 想象一下,你已经在本地成功运行了Qwen3:32B大模型,通过Ollama命令行调用也很顺畅。但每次想测试模型效果,都要打开终端输入命令,既不方…...
耳挂式耳机什么品牌舒适度好?2026开放式耳机品牌推荐
市面上很多标榜舒适的产品,实际体验却恰恰相反:耳挂设计生硬、材质劣质,戴不了半小时耳朵就又痛又胀。这种设计上的缺陷,不仅让听音乐变成负担,长期不当的压迫还可能对耳朵造成伤害。所以,舒适度好不好&…...
内容审核自动化:Qwen3Guard-Gen-WEB部署与集成实战教程
内容审核自动化:Qwen3Guard-Gen-WEB部署与集成实战教程 1. 认识Qwen3Guard-Gen-WEB Qwen3Guard-Gen-WEB是阿里开源的安全审核模型Qwen3Guard-Gen的即用型封装,它将复杂的AI审核能力转化为开箱即用的Web服务和API接口。不同于传统的二分类审核系统&…...
MogFace人脸检测工具保姆级教程:5分钟搭建本地高精度检测环境
MogFace人脸检测工具保姆级教程:5分钟搭建本地高精度检测环境 1. 为什么选择MogFace进行人脸检测? 人脸检测是计算机视觉领域的基础任务,但实际应用中常遇到各种挑战:小尺寸人脸检测困难、侧脸和遮挡导致漏检、密集人群检测不准…...
宝塔面板网站出现MySQL连接超时丢失怎么解决_合理增大max_allowed_packet和超时等待参数
MySQL连接超时丢失主因是max_allowed_packet过小或wait_timeout/interactive_timeout设置不当,需同步调大并重启MySQL验证生效。MySQL 连接超时丢失的典型表现页面报错 Lost connection to MySQL server during query 或 MySQL server has gone away,尤其…...
Java面试题宝典:基于vLLM-v0.17.1的智能题库生成与解析系统
Java面试题宝典:基于vLLM-v0.17.1的智能题库生成与解析系统 1. 智能面试助手惊艳亮相 最近试用了一款基于vLLM-v0.17.1的Java面试辅助工具,效果确实让人眼前一亮。这个系统不仅能自动生成高质量的面试题目,还能对用户答案进行智能评分和点评…...
基于CNN的Android恶意软件检测
1 背景知识 1.1 传统恶意软件检测方式 基于签名的检测 比对应用的二进制代码与本地已知恶意签名库中的特征码 速度快、误报低、漏报高 只能识别已知威胁,无法检测零日攻击 恶意软件通过混淆或者变形技术容易绕过检测基于行为的检测 动态分析应用在运行时的行为 能…...
OpenClaw资源监控:Qwen3.5-9B预警系统异常与自动处理
OpenClaw资源监控:Qwen3.5-9B预警系统异常与自动处理 1. 为什么需要智能化的资源监控 去年夏天,我的开发机因为磁盘写满导致线上服务日志无法写入,造成了整整两小时的服务中断。这件事让我意识到:传统的监控告警系统存在两个致命…...
