Scikit-Learn随机森林分类

Scikit-Learn随机森林分类

    • 1、随机森林分类
      • 1.1、随机森林分类概述
      • 1.2、随机森林分类的优缺点
    • 2、Scikit-Learn随机森林分类
      • 2.1、Scikit-Learn随机森林分类API
      • 2.2、Scikit-Learn随机森林分类初体验(葡萄酒分类)
      • 2.3、Scikit-Learn随机森林分类实践(鸢尾花分类)
      • 2.4、参数调优与选择




1、随机森林分类


随机森林是一种基于集成学习(Ensemble Learning)的机器学习算法。随机森林既可用于回归也可用于分类。随机森林分类在机器学习知识结构中的位置如下:

在这里插入图片描述

1.1、随机森林分类概述


在随机森林中,集成模型中的每棵树构建时的样本都是由训练集经过随机有放回抽样自助式采样法(Bootstrap Sampling)得来的

另外,在构建树的过程中进行节点划分时,选择的划分点是基于所有特征中的随机子集的最佳划分点

随机森林的随机性主要体现在两个方面:一是决策树训练样本的随机选取,二是决策树节点划分属性特征的随机选取

这两个随机性的目的是降低森林估计器的方差。事实上,单个决策树通常表现出很高的方差,并且往往会过拟合。在森林中注入随机性产生的决策树具有一定的解耦预测误差(Decoupled Prediction Errors)。通过取这些预测的平均值或投票,可以抵消掉一些误差

随机森林属于集成学习中的Bagging(Bootstrap Aggregating)中的方法。它们之间的关系如下

在这里插入图片描述
随机森林分类通过引入随机性来构建多个决策树,再通过对这多个决策树的预测结果进行投票以产生最终的分类结果

随机森林分类算法可以应用于各种需要进行分类或预测的问题,例如,垃圾邮件识别、信用卡欺诈检测等,它也可以与其他机器学习算法进行结合,以进一步提高预测准确率

随机森林算法的构造过程如下:

  • 从原始数据集中有放回的随机选择一部分样本,构成一个子样本集,每棵决策树都在不同子样本集上进行训练,增加模型的多样性
  • 对于每棵决策树的每个节点,随机选择一部分属性,然后选择最佳划分属性,每棵决策树的每个节点都基于随机选择的部分属性,提高模型的鲁棒性
  • 在每个子样本集上构建决策树,在决策树生长的过程中,每个节点都基于随机选择的部分属性选择最佳划分属性,直到不能分裂为止
  • 建立大量决策树,形成随机森林

在随机森林中,不同决策树之间没有关联。当我们进行分类任务时,新的输入样本进入,就让森林中的每一棵决策树分别进行判断和分类,每个决策树会得到一个自己的分类结果,决策树的分类结果中哪一个分类最多,那么随机森林就会把这个结果当做最终的结果

关于集成学习、随机森林的原理与随机森林回归的介绍详见文章:传送门

1.2、随机森林分类的优缺点


优点:

  • 抗过拟合能力强:采用随机选择样本数据和特征的方式,可以有效地避免过拟合问题
  • 泛化能力强:通过对多个决策树的结果进行投票,可以获得更好的泛化性能
  • 对数据特征的选取具有指导性:在构建决策树时会对特征进行自动选择,这可以为后续的特征选择提供指导
  • 适用于大规模数据集:可以有效地处理大规模数据集,并且训练速度相对较快

缺点:

  • 需要大量的内存和计算资源:由于需要构建多个决策树,因此需要更多的内存和计算资源
  • 需要调整参数:性能很大程度上取决于参数的设置,如树的数量、每个节点的最小样本数等,这些参数的设置需要一定的经验和实验
  • 对新样本的预测性能不稳定:由于是通过投票多个决策树的结果来进行预测,因此对新样本的预测性能可能会受到影响

2、Scikit-Learn随机森林分类

2.1、Scikit-Learn随机森林分类API


sklearn.ensemble.RandomForestClassifier是Scikit-Learn随机森林分类的API:

class sklearn.ensemble.RandomForestClassifier(n_estimators=100, *, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='sqrt', max_leaf_nodes=None, min_impurity_decrease=0.0, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None, ccp_alpha=0.0, max_samples=None, monotonic_cst=None)

官方对该API的描述为:

随机森林分类是一种元估计器,它对数据集的各个子样本拟合多个决策树分类器,并使用投票来提高预测准确性和控制过度拟合。森林中的树使用最佳分割策略。如果bootstrap=True(默认),则使用max_samples参数控制子样本的大小,否则将使用整个数据集来构建每棵树

API官方文档:https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html

中文官方文档:https://scikit-learn.org.cn/view/633.html

API参数及说明如下:

参数 说明
n_estimators 森林中的树木(决策树)数量,默认为100。一般来说,n_estimators越小越容易过拟合,越大模型效果越好,但达到一定程度时,再增大n_estimators所提升的性能非常小,并且需要注意,n_estimators越大模型的计算量越大
criterion 用于衡量节点(分支)划分质量的指标,默认为squared_error(均方误差),父节点和叶子节点之间的均方误差将被用来作为特征选择的标准,这种方法通过使用叶子节点的均值来最小化L2损失。其他取值还有friedman_mse(费尔德曼均方误差),这种指标使用弗里德曼针对潜在分枝中的问题改进后的均方误差;absolute_error(平均绝对误差),这种指标使用叶节点的中位数来最小化L1损失
max_depth 决策树的最大深度,默认为None,表示将节点展开,直到所有叶子都是纯净的,或者直到所有叶子都包含少于min_samples_split个样本,即没有限制
min_samples_split 拆分内部节点所需的最少样本数,默认为2,表示每个节点至少需要2个样本才能进行划分
min_samples_leaf 在叶节点处需要的最小样本数,默认为1,表示每个叶子节点至少需要1个样本才能停止划分,较小的值会导致过拟合
min_weight_fraction_leaf 在所有叶节点处(所有输入样本)的权重总和中的最小加权分数,默认为0.0。如果未提供sample_weight,则样本的权重相等
max_features 寻找最佳划分时要考虑的特征数量,默认为None或1.0,使用全部特征。其他取值还有sqrt(sqrt(n_features));log2(lo

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

undefined symbol: _ZN3c104impl8GPUTrace13gpu mmcv

这里写自定义目录标题 ImportError: //python3.8/site-packages/mmcv/_ext.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZN3c104impl8GPUTrace13gpuTraceStateEERROR conda.cli.main_run:execute(49): 这样的问题往往都是版本不匹配导致的 pytorch的版本,m…

为Android组件化项目搭建Maven私服

概览 文章目录 概览前言搭建 maven 私服服务器环境jdk安装配置nexus安装配置管理创建存储点、仓库 项目中使用 maven 私服上传 module 到仓库自动发布 module手动上传单个aar包 引用仓库中的 modulebuild.gradle引入远程module FAQ开发阶段有些module用远程依赖,有些…

构建大型语言模型(LLM)产品的实战指南

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

#13前端后花园周刊-10个现代 Node.js 运行时新特性、Nextjs15、Astro4.9、CSS压缩

⚡️行业动态 JavaScript 的创建者 Brendan Eich 在 Twitter/X 上出现,反驳了 JS 是“最邋遢的”的说法,称其只有 50% 。 📆发布 Next.js 15 RC 流行的 React 元框架已经准备好迎接一个主要的新版本,它有一个 RC,让…

YOLOv9改进策略 | 添加注意力篇 | 利用YOLOv10提出的PSA注意力机制助力YOLOv9有效涨点(附代码 + 详细修改教程)

一、本文介绍 本文给大家带来的改进机制是YOLOv10提出的PSA注意力机制,自注意力在各种视觉任务中得到了广泛应用,因为它具有显著的全局建模能力。然而,自注意力机制表现出较高的计算复杂度和内存占用。为了解决这个问题,鉴于注意…

群体优化算法---蝙蝠优化算法分类Iris数据集

介绍 蝙蝠算法(Bat Algorithm, BA)是一种基于蝙蝠回声定位行为的优化算法。要将蝙蝠算法应用于分类问题,可以通过将蝙蝠算法用于优化分类器的参数,图像分割等 本文示例 我们使用一个经典的分类数据集,如Iris数据集&…

基于深度学习的CT影像肺癌检测识别

温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 肺癌是全球范围内导致癌症死亡的主要原因之一,早期检测和诊断对于提高患者生存率至关重要。随着深度学习技术的迅猛发展,基于CT影像的肺癌检测识别成为了研究热点。本文介绍…

Spire.PDF for .NET【文档操作】演示:在 C# 中向 PDF 文件添加图层

Spire.PDF 完美支持将多页 PDF 拆分为单页。但是,更常见的情况是,您可能希望提取选定的页面范围并保存为新的 PDF 文档。在本文中,您将学习如何通过 Spire.PDF 在 C#、VB.NET 中根据页面范围拆分 PDF 文件。 Spire.PDF for .NET 是一款独立 …

wireshark 二次开发

一、 Windows 准备 1、源代码下载 Git:https://github.com/wireshark/wireshark 2、 准备Visual C 要编译wireshark,开发电脑上应该安装了Visual Studio并包括了Visual C,请至少安装Visual Studio 2010以减少不必要的麻烦。 visual studio …

英码科技推出鸿蒙边缘计算盒子:提升国产化水平,增强AI应用效能,保障数据安全

当前,随着国产化替代趋势的加强,鸿蒙系统Harmony OS也日趋成熟和完善,各行各业都在积极拥抱鸿蒙;那么,边缘计算要加快实现全面国产化,基于鸿蒙系统开发AI应用势在必行。 关于鸿蒙系统及其优势 鸿蒙系统是华…

友顺科技(UTC)分立器件与集成IC产品选型和应用

友顺科技股份有限公司成立于1990年,是全球领先的集成电路与功率半导体厂商 ,集团总部位于台北,生产基地位于福州、厦门。 友顺科技具有完整模拟组件产品线,其中类比IC涵盖各种稳压器、PWM控制IC, 放大器、比较器、逻辑IC、Voltage Translato…

Pulsar 社区周报 | No.2024-05-30 | BIGO 百页小册《Apache Pulsar 调优指南》

“ 各位热爱 Pulsar 的小伙伴们,Pulsar 社区周报更新啦!这里将记录 Pulsar 社区每周的重要更新,每周发布。 ” BIGO 百页小册《Apache Pulsar 调优指南》 Hi,Apache Pulsar 社区的小伙伴们,社区 2024 上半年度的有奖问…

VB.net实战(VSTO):Excel插件设计Ribbon界面

1. 新建Ribbon 1.1 开发环境 Visual Studio 2022 1.2 解决方案资源管理器中右击My Project 1.3 添加》新建项 1.4 office/SharePoint》功能区(可视化设计器),双击 2.调出工具箱 Visual Studio 2022》视图》工具箱 3.设计界面 3.1 添加功能区选项卡 3.2拖动Group…

OZON的选品工具,OZON选品工具推荐

在电商领域,选品一直是决定卖家成功与否的关键因素之一。随着OZON平台的崛起,越来越多的卖家开始关注并寻求有效的选品工具,以帮助他们在这个竞争激烈的市场中脱颖而出。本文将详细介绍OZON的选品工具,并推荐几款实用的辅助工具&a…

【嵌入式DIY实例】-OLED显示网络时钟和天气数据

OLED显示网络时钟和天气数据 文章目录 OLED显示网络时钟和天气数据1、硬件准备与接线2、代码实现在前面的的文章中,我们制作了一个互联网气象站,其中天气数据(温度、湿度、压力、风速和风度)被串行发送到笔记本电脑并显示在SSD1306 OLED屏幕(12864像素)上。 在该项目中,…

麦肯锡:ChatGPT等生成式AI应用激增,大中华区增长最快

全球顶级咨询公司麦肯锡(McKinsey & Company)在官网发布了《he state of AI in early 2024:Gen AI adoption spikes and starts to generate value》,一份关于生成式AI应用的调查报告。 麦肯锡对多个国家/地区的1,363位管理者进行了调查…

6个PPT素材模板网站,免费!

免费PPT素材模板下载,就上这6个网站,建议收藏! 1、菜鸟图库 ppt模板免费下载|ppt背景图片 - 菜鸟图库 菜鸟图库是一个设计、办公、媒体等素材非常齐全的网站,站内有几百万的素材,其中PPT模板就有几十万个,…

vulnhub靶机Hack_Me_Please

下载地址:https://download.vulnhub.com/hackmeplease/Hack_Me_Please.rar 主机发现 目标192.168.21.160 端口扫描 nmap --min-rate 10000 -p- 192.168.21.160 服务扫描 nmap -sV -sT -O -p80,3306,33060 192.168.21.160 漏洞扫描 nmap --scriptvuln -p80,3306,…

论文Compiler Technologies in Deep Learning Co-Design: A Survey分享

目录 标题摘要引言背景深度学习软件和硬件的发展不同时期的协同设计深度学习协同设计系统神经网络架构设计和优化协同设计技术 用于协同设计的深度学习系统中的编译技术深度学习编译器TVM 生态系统和MLIR生态系统IR转换和优化代码生成运行时和执行模式 Buddy-Compiler: 一个针对…

(软工) 功能性和非功能性需求是什么?

文章目录 前言🌟功能性需求⭐⭐⭐系统应该做什么?或者应该提供什么功能?⭐⭐⭐🫰举例 🌟非功能性需求⭐⭐⭐系统应该在哪些条件下能执行这些功能,且执行的很好。⭐⭐⭐❤️‍🔥质量属性(Quality…