当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cuml.ensemble.RandomForestClassifier用法及代码示例


用法:

class cuml.ensemble.RandomForestClassifier(*, split_criterion=0, handle=None, verbose=False, output_type=None, **kwargs)

实现一个随机森林分类器模型,该模型适合一个集成中的多个决策树分类器。

注意

请注意,树节点拆分的底层算法与scikit-learn 中使用的算法不同。默认情况下,cuML 随机森林使用基于分位数的算法来确定拆分,而不是精确计数。您可以使用n_bins 参数调整分位数的大小。

注意

您可以导出 cuML 随机森林模型并在没有 NVIDIA GPU 的机器上使用它们运行预测。看https://docs.rapids.ai/api/cuml/nightly/pickling_cuml_models.html更多细节。

参数

n_estimatorsint(默认值 = 100)

森林中的树数量。 (在 cuML 0.11 中默认更改为 100)

split_criterionint 或字符串(默认 = 0 ('gini'))

用于分割节点的标准。

  • 0'gini' 用于基尼杂质

  • 1'entropy' 用于信息增益(熵)

  • 2'mse' 表示均方误差

  • 4'poisson' 用于泊松半偏差

  • 5'gamma' 用于伽马半偏差

  • 6'inverse_gaussian' 用于逆高斯偏差

只有0/'gini'1/'entropy'对分类有效

bootstrap布尔值(默认 = True)

控制引导。

  • 如果 True ,则森林中的每棵树都建立在带替换的自举样本之上。

  • 如果 False ,则使用整个数据集来构建每棵树。

max_samples浮点数(默认 = 1.0)

拟合每棵树时使用的数据集行的比率。

max_depthint(默认值 = 16)

最大树深度。无限(即,直到叶子是纯的),如果 -1 。不支持无限深度。

注意

此默认值与 scikit-learn 的随机森林不同,后者默认为无限深度。

max_leavesint(默认 = -1)

每棵树的最大叶节点。软约束。无限,如果 -1

max_featuresint 浮点数或字符串(默认 = ‘auto’)

每个节点拆分要考虑的特征(列)数量的比率。

  • 如果类型 int 那么 max_features 是要使用的函数的绝对计数

  • 如果类型 floatmax_features 用作分数。

  • 如果 'auto' 那么 max_features=1/sqrt(n_features)

  • 如果 'sqrt' 那么 max_features=1/sqrt(n_features)

  • 如果 'log2' 那么 max_features=log2(n_features)/n_features

n_binsint(默认值 = 128)

拆分算法使用的 bin 数量。对于较大的问题,尤其是具有 highly-skewed 输入数据的问题,增加 bin 的数量可能会提高准确性。

n_streamsint(默认 = 4)

用于森林建设的并行流的数量。

min_samples_leafint 或浮点数(默认 = 1)

每个叶节点中的最小样本数(行)。

  • 如果键入 int ,则 min_samples_leaf 表示最小数量。

  • 如果 float ,则 min_samples_leaf 表示分数,而 ceil(min_samples_leaf * n_rows) 是每个叶节点的最小样本数。

min_samples_splitint 或浮点数(默认 = 2)

拆分内部节点所需的最小样本数。

  • 如果键入 int ,则 min_samples_split 表示最小数量。

  • 如果键入 float ,则 min_samples_split 表示一个分数,而 ceil(min_samples_split * n_rows) 是每个拆分的最小样本数。

min_impurity_decrease浮点数(默认 = 0.0)

要分离的节点所需的杂质最少减少。

max_batch_sizeint(默认值 = 4096)

给定批次中可以处理的最大节点数。

random_stateint(默认 = 无)

随机数生成器的种子。默认情况下未播种。目前不完全保证完全相同的结果。

handlecuml.Handle

指定 cuml.handle 保存用于此模型中计算的内部 CUDA 状态。最重要的是,这指定了将用于模型计算的 CUDA 流,因此用户可以通过在多个流中创建句柄在不同的流中同时运行不同的模型。如果为 None,则创建一个新的。

verboseint 或布尔值,默认=False

设置日志记录级别。它必须是 cuml.common.logger.level_* 之一。有关详细信息,请参阅详细级别。

output_type{‘input’, ‘cudf’, ‘cupy’, ‘numpy’, ‘numba’},默认=无

用于控制估计器的结果和属性的输出类型的变量。如果为 None,它将继承在模块级别设置的输出类型 cuml.global_settings.output_type 。有关详细信息,请参阅输出数据类型配置。

注意

已知限制

这是 cuML 随机森林代码的早期版本。它包含一些已知的限制:

  • 仅 32 位 (float32) 数据类型支持基于 GPU 的推理。替代方法是对 64 位 (float64) 数据类型使用基于 CPU 的推理,或者在 GPU 推理期间进行默认的自动数据类型转换。

  • 在针对多类分类问题训练模型时,使用深度树或max_features=1.0 可提供更好的性能。

有关其他文档,请参阅 scikitlearn’s RandomForestClassifier

例子

import numpy as np
from cuml.ensemble import RandomForestClassifier as cuRFC

X = np.random.normal(size=(10,4)).astype(np.float32)
y = np.asarray([0,1]*5, dtype=np.int32)

cuml_model = cuRFC(max_features=1.0,
                   n_bins=8,
                   n_estimators=40)
cuml_model.fit(X,y)
cuml_predict = cuml_model.predict(X)

print("Predicted labels : ", cuml_predict)

输出:

Predicted labels :  [0 1 0 1 0 1 0 1 0 1]

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cuml.ensemble.RandomForestClassifier。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。