sklearn 随机森林(分类器、回归器)的重要参数、属性、方法理解

sklearn——随机森林RandomForestClassifier的参数含义 n_estimators:森林中决策树的数量。默认100 criterion:分裂节点所用的标准,可选“gini”, “entropy”,默认“gini”。 max_depth:树的最大深度。如果为None,则将节点展开,直到所有叶子都是纯净的(只有一个类),或者直到所有叶子都包含少于min_samples_split个样本。默认是None。 min_samples_split:拆分内部节点所需的最少样本数:如果为int,则将min_samples_split视为最小值。如果为float,则min_samp 阅读详情
AI摘要

本文深入解析随机森林分类器与回归器的重要参数,如n_estimators、criterion、max_depth等,探讨其对模型精度与泛化能力的影响,并提供推荐设置。

随机森林分类器

引入

from sklearn.ensemble import RandomForestClassifier
# 全部参数
RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None,
                       criterion='gini', max_depth=None, max_features='auto',
                       max_leaf_nodes=None, max_samples=None,
                       min_impurity_decrease=0.0, min_impurity_split=None,
                       min_samples_leaf=1, min_samples_split=2,
                       min_weight_fraction_leaf=0.0, n_estimators=100,
                       n_jobs=None, oob_score=False, random_state=None,
                       verbose=0, warm_start=False)

重要参数

1,n_estimators

数值型参数,默认值为100,此参数指定了弱分类器的个数。设置的值越大,精确度越好,但是当 n_estimators 大于特定值之后,带来的提升效果非常有限。

推荐的参数值为:[120, 300, 500, 800, 1200]

2,criterion

字符串类型,默认值为 ‘gini’。这个参数指定划分子树的评估标准:

  1. ‘entropy’,使用基于信息熵的方法,即计算信息增益
  2. ‘gini’,使用基尼系数(Gini Impurity)

**推荐设置为 ‘gini’,**因为(1)基尼系数的计算过程相对简单,而计算信息增益需要进行对数运算。(2)使用信息增益作为划分标准时,在使用高纬度数据或者噪声很多的数据时容易过拟合。

3,max_depth

数值型,默认值None。这是与剪枝相关的参数,设置为None时,树的节点会一直分裂,直到:(1)每个叶子都是“纯”的;(2)或者叶子中包含⼩于min_sanples_split个样本。

推荐从 max_depth = 3 尝试增加,观察是否应该继续加大深度。

合适的取值可以是 [3, 5, 8, 15, 25, 30, None]

如果max_leaf_nodes参数非None,则忽略此项

4,min_samples_leaf

数值型,默认值1,指定每个叶子结点包含的最少的样本数。参数的取值除了整数之外,还可以是浮点数,此时(min_samples_leaf * n_samples)向下取整后的整数是每个节点的最小样本数。
此参数设置的过小会导致过拟合,反之就会欠拟合。调整过程:

  1. 从min_samples_leaf=5开始上下调整。
  2. 对于类别不多的分类问题,设置为1通常是合理的选择。
  3. 当叶节点包含样本数量差异很大时,建议设置为浮点数。

推荐的取值可以是:[1, 2, 5, 10]

5,min_samples_split

数值型,默认值2,指定每个内部节点(非叶子节点)包含的最少的样本数。与min_samples_leaf这个参数类似,可以是整数也可以是浮点数。

推荐的取值是:[1, 2, 5, 10, 15, 100]

7,max_features

可以为整数、浮点、字符或者None,默认值为None。此参数用于限制分枝时考虑的特征个数,超过限制个数的特征都会被舍弃。

  1. 如果是整数,则每次切分只考虑max_features个特征。
  2. 如果是浮点数,每次切分只考虑max_features*n_features个特征(max_features指定百分⽐)。
  3. 如果是字符串‘auto’,则max_features等于n_features。
  4. 如果是字符串‘sqrt’,则max_features等于sqrt(n_features)。
  5. 如果是字符串‘log2’,则max_features等于log2(n_features)。
  6. 如果是字符串None,则max_features等于n_features。

推荐的取值为:[‘log2’, ‘sqrt’, None]

8,class_weight

可以是列表、字典、或者字符串’balanced’,还可以是默认值None。这个参数主要是用于样本不平衡数据集,当设置为None时,所有类别样本权重都为1。也可以利用列表或者字典手动设置各个类别样本的权重,将样本较少的类别赋予更大的权重。当设置为’balanced’时,会自动根据样本出现的频率计算权重,即 n_samples / (n_classes * np.bincount(y))
推荐的设置为:[None, ‘balanced’]

9,max_leaf_nodes

数值型参数,默认值为None,即不限制最大叶子节点数。这个参数通过限制树的最大叶子数量来防止过拟合,如果设置了一个正整数,则会在建立的最大叶节点内的树中选择最优的决策树。如果特征不多,可以设置为None,否则可以设置为小于 2 m a x _ d e p t h 2^{max\_depth } 2max_depth 的数值。

10,oob_score

bool类型参数,默认值为False,即是否采用袋外样本来评估模型的好坏。个人推荐设置为True,因为袋外分数反应了一个模型拟合后的泛化能力。

11,verbose

数值类型,默认值为0,表示不输出日志。如果为1,则每次迭代输出一次日志。如果大于1,则每间隔 verbose 此迭代输出一次日志。

重要属性

1,feature_importances_ ,给出了各个特征对模型的重要性。

2,oob_score_,训练数据使用的包外数据的得分。

重要方法

1,fit(X,y) : 训练模型。
2,predict(X) : 用模型预测,返回预测值。
3,predict_proba(X) : 返回一个数组,数组元素依次为各个样本属于各个类别的概率值。
4,score(X, y) : 返回在(X, y)上预测的准确率(accuracy)。

随机森林回归器

引入方式如下:

from sklearn.ensemble import RandomForestRegressor
# 所有参数
RandomForestRegressor(bootstrap=True, ccp_alpha=0.0, criterion='mse',
                      max_depth=None, max_features='auto', max_leaf_nodes=None,
                      max_samples=None, min_impurity_decrease=0.0,
                      min_impurity_split=None, min_samples_leaf=1,
                      min_samples_split=2, min_weight_fraction_leaf=0.0,
                      n_estimators=100, n_jobs=None, oob_score=False,
                      random_state=None, verbose=0, warm_start=False)

其中,参数criterion 是字符串类型,默认值为 ‘mse’,是衡量回归效果的指标。可选的还有‘mae’ 。

除了criterion这个参数之外,其他参数、属性、方法的含义与用法与上文提到的随机森林分类器的参数基本一致。

参考文章:

sklearn.ensemble.RandomForestClassifier

sklearn.ensemble.RandomForestRegressor

SKlearn中分类决策树的重要参数详解

sklearn的系统学习——随机森林调参(含案例及完整python代码) 对于调参,首先需要明白调参的核心问题是什么,然后理清思路,再进行调参。调参并非是一件容易的事情,很多大牛靠的是多年积累的经验和清晰的处理思路,那对于我们而言,也应对调参思路和方向有一个认识,然后就是不断地尝试。...... 阅读详情

相关推荐

随机森林分类、回归算法原理及调参实战

集成算法 ensemble 通过在数据集上构建多个模型,集成所有模型的建模结果,得到一个综合的结果,以此来获得比单个 模型更好的分类或回归表现 装袋法bagging: 构建多个相互独立的基评估器(base estimator),然后对其预测进行平均或多数表决原则来决定 集成评估器的结果。装袋法的代表模型就是随机森林 提升法boosting: 基评估器是相关的,是按顺序一一...

qq_43628993的博客 1万+

sklearn中随机森林的参数

一:sklearn中决策树的参数: 1,criterion: ”gini” or “entropy”(default=”gini”)是计算属性的gini(基尼不纯度)还是entropy(信息增益),来选择最合适的节点。 2,splitter: ”best” or “random”(default=”best”)随机选择属性还是选择不纯度最大的属性,建议用默认。 3

CJK的博客 1万+

【机器学习】Sklearn 常用分类器(全)

【机器学习】Sklearn 常用分类器(全) ### KNN Classifier from sklearn.neighbors import KNeighborsClassifier clf = KNeighborsClassifier() clf.fit(train_x, train_y) _____________________________________________...

白糖炒栗子 2万+

【实践】随机森林算法参数解释及调优(含Python代码)

【实践】随机森林算法参数解释及调优(含Python代码)

wzk4869的博客 3万+

Sklearn中的随机森林

Sklearn是python的机器学习算法的包,在整个机器学习过程中具有非常好的口碑。我把最近看的一些东西加上自己做实验的理解做了一份总结。 1.      随机森林介绍 随机森林是一种统计学习理论,其随机有两个方面:首先在训练的每一轮中,都是对原始样本集有放回的抽取固定数目的样本点,形成k 个互不相同的样本集。第二个点是:对于每一个决策树的建立是从总的属性中随机抽取一定量的属性作为分裂属性集

ff19910203的专栏 8994

Scikit-Learn随机森林回归

随机森林是一种由决策树构成的(并行)集成算法,属于Bagging类型,随机森林通过组合多个弱分类器,最终结果通过投票或取均值,使得整体模型的结果具有较高的精确度和泛化性能,同时也有很好的稳定性,因此广泛应用在各种业务场景中。随机森林有如此优良的表现,主要归功于随机和森林。Bagging方法是在自助采样基础上构建的,上述的采样过程我们可以重复T次,采样出T个包含m个样本的采样集,然后基于每个采样集训练出一个基学习器,然后将这些基学习器进行结合。个体学习器代表的是单个学习器,集成学习代表的是多个学习器的结合。

Java/Python大数据随笔 1637

sklearn中GBDT的一些参数、属性、方法的理解

文章目录GBDT 分类器引入重要参数losslearning_ratesubsamplen_estimatorscriterionmax_depthmin_samples_leafmin_samples_splitmax_featuresverbose重要属性重要方法GBDT 回归器 本文主要是sklearn中GBDT的一些参数、属性、方法的理解,如果需要了解基础的理论知识,可以看看之前发表的文章:梯度提升树(GBDT)相关知识。 GBDT 分类器 引入 from sklearn.ensemble impo

VariableX的博客 9746

Sklearn 机器学习 随机森林 训练随机森林分类模型

使用 Scikit-learn 实现随机森林分类模型的完整流程。

Kant2048的博客 931

机器学习sklearn-随机森林

目录 1 集成学习 2 随机森林分类器 2.1 随机森林分类器函数及其参数 2.2 构建随机森林 2.3 在交叉验证下比较随机森林和决策树 2.4 绘制n_estimators的学习曲线 3 随机森林回归器 3.1 随机森林分类器函数及其参数 3.2 用随机森林回归填补缺失值 4 机器学习调参的基本思想 4.1 相关概念 4.2 实例 1 集成学习 集成学习通过构建并结合多个学习器来完成学习任务,它本身不是一个单独的机器学习算法,而是通过在数据上构建多个模型,集成所有模型的建.

kongqing23的博客 2161

Power BI实战:从数据清洗到可视化报表的完整流程

本文详细介绍了使用Power BI进行数据分析的完整流程,从数据获取、清洗整理到建模与可视化。通过实战案例,重点讲解了连接MySQL数据库、使用Power Query进行数据清洗、利用DAX创建核心度量值以及设计交互式报表的关键步骤与技巧,帮助用户高效完成从原始数据到专业可视化报表的转化,实现数据驱动决策。

weixin_29070721的博客 398

MoveIt2项目想换掉KDL求解器?试试这个trac_ik插件(附源码编译避坑指南)

本文详细介绍了如何在MoveIt2项目中用trac_ik插件替代KDL求解器,提升机械臂运动学求解的效率和成功率。内容涵盖环境准备、源码编译避坑、项目集成及性能调优,特别适合需要高精度控制的协作机械臂应用场景。通过实测数据对比,trac_ik在求解时间和奇异点处理上显著优于传统KDL求解器。

weixin_30730053的博客 696

sklearn实战:从零构建随机森林分类器与回归器

本文详细介绍了如何使用sklearn构建随机森林分类器与回归器,从决策树基础到集成学习原理,涵盖数据预处理、模型训练、参数调优及性能评估全流程。通过鸢尾花和波士顿房价数据集实战演示,帮助读者掌握随机森林在分类与回归任务中的应用技巧,并提供了特征重要性分析、超参数优化等高级技巧。

weixin_29176179的博客 213

立创EDA开源足轮机器人:基于STM32F407与ESP32的LQR自平衡与FOC驱动设计全解析

本文详细解析了基于立创EDA平台的开源足轮机器人项目。该项目采用STM32F407作为主控,ESP32负责无线通信,并应用LQR自平衡算法与FOC驱动技术,实现了机器人的稳定站立、移动转向及复杂地形适应能力。文章深入剖析了其硬件架构、软件设计及调试经验,为机器人运动控制学习提供了宝贵参考。

weixin_42608299的博客 232

基于sklearn的机器学习 — 决策树与随机森林

基于树的学习算法是一种广泛而流行的非参数、有监督的分类和回归方法。基于树的学习算法的基础是决策树(decision tree),它将一系列决策规则串联起来,看起来像一棵倒立的树,第一条决策规则位于树顶,称之为随后的决策规则分布在树下。在决策树中,每条决策规则都出现在一个上,并通过该规则创建分支,通向新的节点。末端没有决策规则的分支称为。机器学习模型的复杂性、知识表示的直观性各不相同,因此很难完全理解它们的工作原理。

2001

《深入浅出强化学习原理入门》学习笔记(三)机器人找金币应用实例

《深入浅出强化学习原理入门》学习笔记(三)MDP应用实例

lxs3213196的博客 3187

从零搭建A股量化交易系统:开源框架选型与实战部署指南

本文详细介绍了从零搭建A股量化交易系统的完整流程,重点分析了开源框架VNPY和QMT的选型与实战部署。内容涵盖系统架构设计、策略开发、性能优化及实盘过渡方案,为开发者提供了一套完整的A股实盘量化交易解决方案,助力高效构建稳定可靠的量化交易系统。

sugar的博客 1271

使用sklearn库学习线性回归(一)

1,概述 1.1,判别式方法 产生式模型需要计算输入输出的联合概率 需要知道(or 假定)样本的概率分布 定义似然密度的隐式参数 为没给类别搜索最大化样本似然的参数 也称为基于似然的分类(Likelihood-based Classification) 判别式模型直接构造(假定)判别式 。 判别式的显式参数(特征变量的权重)。 判别式方法 基于似然的方法关注类区域中的概率密度 基于判别式的方法只关注类区域之间的边界。 1.2,线性回归介绍 回归是一种应

理科男同学 1万+

YOLOv13涨点改进 | 全网独家创新、HyperACE改进、注意力改进篇 | CVPR 2025| 引入LRSA局部区域自注意力模块,能提升其在细节捕捉、小目标检测和长距离依赖建模方面的能力

本文提出将LRSA(局部区域自注意力)模块集成到YOLOv13中,通过局部特征交互增强细节捕捉能力、小物体检测精度和长距离依赖建模。LRSA模块采用重叠图像块处理策略,在保持计算效率的同时提升复杂背景下的检测性能。文章详细介绍了模块结构、原理优势,并提供了三种改进方案:1)在主干网络添加LRSA层;2)将关键模块替换为DSC3k2_LRSA;3)采用HyperACE_LRSA结构。配套提供了完整的PyTorch实现代码和YAML配置文件,展示了该模块如何通过局部注意力机制平衡检测精度与推理速度。

Ai缝合怪、助力小伙伴高效发论文 345

SKLEARN-3-随机森林

随机森林目录1.基本步骤1.1 参数n_estimators1.2 建立森林1.3 n_estimators的学习曲线2. 标签和特征 1.基本步骤 #基本建模流程 #1.实例化 #2.训练集带入实例化后的模型去进行训练,使用的接口是fit #3.使用其它接口将测试集导入我们训练好的模型,去获取我们希望获取的结果(score,Y_test) 1.1 参数n_estimators 这是森林中树木的数量,即基基评估器的数量。这个参数对随机森林模型的精确性影响是单调的,n_estimators 越大,模型

weixin_45988242的博客 2619

5、癌症数据预处理技术与深度学习在癌症预测中的应用

本文详细介绍了癌症数据预处理技术和深度学习在癌症预测中的应用。针对CT扫描图像、X射线图像、超声图像、基因表达数据和文本数据等不同类型的癌症数据,分别阐述了去噪、插值、配准、归一化等预处理技术的具体方法。同时,分析了深度学习在乳腺癌、白血病和宫颈癌预测中的作用,结合相关影响因素探讨了模型的应用潜力。此外,还总结了深度学习在癌症预测中面临的挑战及未来发展方向,为癌症的早期诊断与精准预测提供了理论支持和技术参考。

alice7model的博客 123

《YOLO11魔术师专栏》专栏介绍 & 专栏目录

【原创自研模块】【多组合点优化】【注意力机制】【主干篇】【neck优化】【卷积魔改】 【block&多尺度融合结合】【损失&IOU优化】【上下采样优化】【小目标性能提升】【前沿论文分享】【训练实战篇】

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1万+

sklearn-随机森林

建森林 from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_wine from sklearn.model_selection import train_test_split wine=load_wine() #print(wine.data.shape,wine.target) #实例化 X

kingsure001的博客 317

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

随机森林-参数解说

sklearn–随机深林 1.集成算法概述 集成学习(ensemble learning)是时下非常流行的机器学习算法,它本身不是一个单独的机器学习算法,而是通过在数据上构建多个模型,集成所有模型的建模结果。基本上所有的机器学习领域都可以看到集成学习的身影,在现实中集成学习也有相当大的作用,它可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可以预测疾病的风险和病患者的易感性。在现在的各种...

weixin_43979090的博客 7280

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SKlearn学习笔记——逻辑回归

SKlearn学习笔记——逻辑回归1. 概述1.1 名为“回归”的分类器1.2 为什么需要逻辑回归1.3 sklearn中的逻辑回归2. linear_model.LogisticRegression2.1 二元逻辑回归的损失函数2.2 正则化:重要参数penalty & C2.3 梯度下降:重要参数max_iter2.4 二元回归与多元回归:重要参数solver2.5 逻辑回归中的特征选择2.6 样本不平衡与参数class_weight2.5 逻辑回归中的特征选择 前言: scikit-learn

Stephen 5093

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

随机森林API的理解(sklearn.ensemble.RandomForest)

sklearn.ensemble.RandomForestClassifier classsklearn.ensemble.RandomForestClassifier(n_estimators ='warn',criterion ='gini',max_depth = None,min_samples_split = 2,min_samples_leaf = 1,min_weight_f...

weixin_41690708的博客 1507

使用sklearn实现随机森林分类和回归

性感官方,在线文档 form sklearn.ensemble import RandomForestClassifier as rfc 参数 RFC需要调参可以分为两部分,一部分是bagging参数,另外一部分是决策树的参数。 n_estimators 基学习器的数量。 criterion ‘gini’ or ‘entropy’ max_depth 单树的最大深度 min_samples_split 小于该值就不分叉了 min_samples_leaf 不太懂 max_features ‘auto’,‘

weixin_44414593的博客 945
上一篇: sklearn 决策树(分类树、回归树)的 重要参数、属性、方法理解
下一篇: sklearn中GBDT的一些参数、属性、方法的理解
VariableX
博客等级 码龄7年 142粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值