千家信息网

sklearn随机森林的参数有哪些

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍"sklearn随机森林的参数有哪些",在日常操作中,相信很多人在sklearn随机森林的参数有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"skl
千家信息网最后更新 2025年12月01日sklearn随机森林的参数有哪些

这篇文章主要介绍"sklearn随机森林的参数有哪些",在日常操作中,相信很多人在sklearn随机森林的参数有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"sklearn随机森林的参数有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

随机森林


随机森林是一个元估计器,它适合数据集的各个子样本上的多个决策树分类器,并使用平均值来提高预测精度和控制过度拟合。子样本大小始终与原始输入样本大小相同,但如果bootstrap = True(默认值),则会使用替换来绘制样本。
先看这个类的参数:

class sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=1, random_state=None, verbose=0, warm_start=False, class_weight=None)

代码举例:

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=1000, n_features=4,
n_informative=2, n_redundant=0,
random_state=0, shuffle=False)
clf = RandomForestClassifier(max_depth=2, random_state=0)
clf.fit(X, y)
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
max_depth=2, max_features='auto', max_leaf_nodes=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=10, n_jobs=1,
oob_score=False, random_state=0, verbose=0, warm_start=False)
print(clf.feature_importances_)
[ 0.17287856 0.80608704 0.01884792 0.00218648]
print(clf.predict([[0, 0, 0, 0]]))
[1]

具体参数意义如下:
参数:

  • n_estimators :森林里(决策)树的数目
    integer, optional (default=10) 整数,可选择(默认值为10)

  • criterion : string, optional (default="gini") 字符串,可选择(默认值为"gini")。
    衡量分裂质量的性能(函数)。受支持的标准是基尼不纯度的"gini",和信息增益的"entropy"(熵)。
    注意:这个参数是特定树的。

  • max_features : int, float, string or None, optional (default="auto") 整数,浮点数,字符串或者无值,可选的(默认值为"auto")
    寻找最佳分割时需要考虑的特征数目:
    &如果是int,就要考虑每一次分割处的max_feature特征
    &如果是float,那么max_features就是一个百分比,那么(max_feature*n_features)特征整数值是在每个分割处考虑的。
    &如果是auto,那么max_features=sqrt(n_features),即n_features的平方根值。
    &如果是log2,那么max_features=log2(n_features)
    &如果是None,那么max_features=n_features
    注意:寻找分割点不会停止,直到找到最少一个有效的节点划分区,即使它需要有效检查超过max_features的特征。

  • max_depth : integer or None, optional (default=None) 整数或者无值,可选的(默认为None)
    (决策)树的最大深度。如果值为None,那么会扩展节点,直到所有的叶子是纯净的,或者直到所有叶子包含少于min_sample_split的样本。

  • min_samples_split : int, float, optional (default=2) 整数,浮点数,可选的(默认值为2)
    分割内部节点所需要的最小样本数量:
    ~如果为int,那么考虑min_samples_split作为最小的数字。
    ~如果为float,那么min_samples_split是一个百分比,并且把ceil(min_samples_split*n_samples)是每一个分割最小的样本数量。
    在版本0.18中更改:为百分比添加浮点值。

  • min_samples_leaf : int, float, optional (default=1) 整数,浮点数,可选的(默认值为1)
    需要在叶子结点上的最小样本数量:
    ~如果为int,那么考虑min_samples_leaf作为最小的数字。
    ~如果为float,那么min_samples_leaf为一个百分比,并且ceil(min_samples_leaf*n_samples)是每一个节点的最小样本数量。
    在版本0.18中更改:为百分比添加浮点值。

  • min_weight_fraction_leaf : float, optional (default=0.) 浮点数,可选的(默认值是0.0)
    一个叶子节点所需要的权重总和(所有的输入样本)的最小加权分数。当sample_weight没有提供时,样本具有相同的权重

  • max_leaf_nodes : int or None, optional (default=None) 整数或者无值,可选的(默认值为None)
    以最优的方法使用max_leaf_nodes来生长树。最好的节点被定义为不纯度上的相对减少。如果为None,那么不限制叶子节点的数量。

  • min_impurity_split : float, 浮点数
    树早期生长的阈值。如果一个节点的不纯度超过阈值那么这个节点将会分裂,否则它还是一片叶子。

  • min_impurity_decrease : float, optional (default=0.) 浮点数,可选的(默认值为0)

  • bootstrap : boolean, optional (default=True) 布尔值,可选的(默认值为True)建立决策树时,是否使用有放回抽样。

  • oob_score : bool (default=False) bool,(默认值为False)是否使用袋外样本来估计泛化精度。

  • n_jobs : integer, optional (default=1) 整数,可选的(默认值为1)用于拟合和预测的并行运行的工作(作业)数量。如果值为-1,那么工作数量被设置为核的数量。

  • random_state : int, RandomState instance or None, optional (default=None) 整数,RandomState实例,或者为None,可选(默认值为None)RandomStateIf int,random_state是随机数生成器使用的种子; 如果是RandomState实例,random_state就是随机数生成器; 如果为None,则随机数生成器是np.random使用的RandomState实例。

  • verbose : int, optional (default=0) 整数,可选的(默认值为0)控制决策树建立过程的冗余度。

  • warm_start : bool, optional (default=False) 布尔值,可选的(默认值为False)当被设置为True时,重新使用之前呼叫的解决方案,用来给全体拟合和添加更多的估计器,反之,仅仅只是为了拟合一个全新的森林。

  • class_weight : dict, list of dicts, "balanced", 字典,字典序列,"balanced"

属性:

  • estimators_ : list of DecisionTreeClassifier 决策树分类器的序列,拟合的子估计器的集合。

  • classes_ : array of shape = [n_classes] or a list of such arrays 数组维度=[n_classes]的数组或者一个这样数组的序列。类别标签(单一输出问题),或者类别标签的数组序列(多输出问题)。

  • n_classes_ : int or list 整数或者序列,类别的数量(单输出问题),或者一个序列,包含每一个输出的类别数量(多输出问题)

  • n_features_ : int 整数,执行拟合时的特征数量

  • n_outputs_ : int 整数,执行拟合时的输出数量。

  • feature_importances_ : array of shape = [n_features] 维度等于n_features的数组,特征的重要性(值越高,特征越重要)

  • oob_score_ : float 浮点数,使用袋外估计获得的训练数据集的得分。

  • oob_decision_function_ : array of shape = [n_samples, n_classes] 维度=[n_samples,n_classes]的数组,在训练集上用袋外估计计算的决策函数。如果n_estimators很小的话,那么在有放回抽样中,一个数据点也不会被忽略是可能的。在这种情况下,oob_decision_function_ 可能包括NaN。

注意点:

参数的默认值控制决策树的大小(例如,max_depth,,min_samples_leaf等等),导致完全的生长和在某些数据集上可能非常大的未修剪的树。为了降低内容消耗,决策树的复杂度和大小应该通过设置这些参数值来控制。

这些特征总是在每个分割中随机排列。 因此,即使使用相同的训练数据,max_features = n_features和bootstrap = False,如果在搜索最佳分割期间所列举的若干分割的准则的改进是相同的,那么找到的最佳分割点可能会不同。为了在拟合过程中获得一个确定的行为,random_state将不得不被修正。

方法:

apply(X) Apply trees in the forest to X, return leaf indices.
decision_path(X) Return the decision path in the forest
fit(X, y[, sample_weight]) Build a forest of trees from the training set (X, y).
get_params([deep]) Get parameters for this estimator.
predict(X) Predict class for X.
predict_log_proba(X) Predict class log-probabilities for X.
predict_proba(X) Predict class probabilities for X.
score(X, y[, sample_weight]) Returns the mean accuracy on the given test data and labels.
set_params(**params) Set the parameters of this estimator.

到此,关于"sklearn随机森林的参数有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

数量 整数 样本 参数 决策 森林 特征 节点 最小 点数 叶子 序列 数组 输出 数据 百分 百分比 问题 相同 大小 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市千途网络技术有限公司 海康威视磁盘阵列服务器说明书 华为 hcna网络技术 戴尔服务器自检一般多久 软件开发进项税加计扣除多少 钦州游戏软件开发 数据库的要领结构设计应在 cidf网络安全奖学金 hp服务器阵列卡启动顺序 网络技术专利哪个公司强 数据库金额格式转换 长沙象 软件开发公司 如皋正规网络技术诚信经营 数据库怎么设置允许空字符串 网络安全 罗春 程序与服务器数据同步方案 成安企业网络推广需要服务器吗 点歌机服务器连接失败没有注册 网络安全发展必须贯彻 房产数据库系统标准规程 大型程序的数据库查询语句 弱电系统软件开发书籍 硬盘服务器 数据库技术与应用设计报告 江西一诺网络技术有限公司 安卓软件开发定制 24盘位的磁盘阵列服务器原理 信息处理技术员中数据库 得力考勤管理系统服务器地址 成都软件开发费用是多少
0