用法:
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_estimators:int(默认值 = 100)
森林中的树数量。 (在 cuML 0.11 中默认更改为 100)
- split_criterion:int 或字符串(默认 =
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_depth:int(默认值 = 16)
最大树深度。无限(即,直到叶子是纯的),如果
-1
。不支持无限深度。注意
此默认值与 scikit-learn 的随机森林不同,后者默认为无限深度。
- max_leaves:int(默认 = -1)
每棵树的最大叶节点。软约束。无限,如果
-1
。- max_features:int 浮点数或字符串(默认 = ‘auto’)
每个节点拆分要考虑的特征(列)数量的比率。
如果类型
int
那么max_features
是要使用的函数的绝对计数如果类型
float
则max_features
用作分数。如果
'auto'
那么max_features=1/sqrt(n_features)
。如果
'sqrt'
那么max_features=1/sqrt(n_features)
。如果
'log2'
那么max_features=log2(n_features)/n_features
。
- n_bins:int(默认值 = 128)
拆分算法使用的 bin 数量。对于较大的问题,尤其是具有 highly-skewed 输入数据的问题,增加 bin 的数量可能会提高准确性。
- n_streams:int(默认 = 4)
用于森林建设的并行流的数量。
- min_samples_leaf:int 或浮点数(默认 = 1)
每个叶节点中的最小样本数(行)。
如果键入
int
,则min_samples_leaf
表示最小数量。如果
float
,则min_samples_leaf
表示分数,而ceil(min_samples_leaf * n_rows)
是每个叶节点的最小样本数。
- min_samples_split:int 或浮点数(默认 = 2)
拆分内部节点所需的最小样本数。
如果键入
int
,则 min_samples_split 表示最小数量。如果键入
float
,则min_samples_split
表示一个分数,而ceil(min_samples_split * n_rows)
是每个拆分的最小样本数。
- min_impurity_decrease:浮点数(默认 = 0.0)
要分离的节点所需的杂质最少减少。
- max_batch_size:int(默认值 = 4096)
给定批次中可以处理的最大节点数。
- random_state:int(默认 = 无)
随机数生成器的种子。默认情况下未播种。目前不完全保证完全相同的结果。
- handle:cuml.Handle
指定 cuml.handle 保存用于此模型中计算的内部 CUDA 状态。最重要的是,这指定了将用于模型计算的 CUDA 流,因此用户可以通过在多个流中创建句柄在不同的流中同时运行不同的模型。如果为 None,则创建一个新的。
- verbose:int 或布尔值,默认=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]
相关用法
- Python cuml.ensemble.RandomForestRegressor用法及代码示例
- Python cuml.experimental.preprocessing.PolynomialFeatures用法及代码示例
- Python cuml.experimental.preprocessing.add_dummy_feature用法及代码示例
- Python cuml.experimental.preprocessing.KBinsDiscretizer用法及代码示例
- Python cuml.explainer.PermutationExplainer用法及代码示例
- Python cuml.experimental.preprocessing.StandardScaler用法及代码示例
- Python cuml.experimental.preprocessing.MinMaxScaler用法及代码示例
- Python cuml.experimental.preprocessing.minmax_scale用法及代码示例
- Python cuml.explainer.KernelExplainer用法及代码示例
- Python cuml.experimental.preprocessing.RobustScaler用法及代码示例
- Python cuml.experimental.preprocessing.Normalizer用法及代码示例
- Python cuml.experimental.preprocessing.SimpleImputer用法及代码示例
- Python cuml.experimental.preprocessing.MaxAbsScaler用法及代码示例
- Python cuml.experimental.preprocessing.Binarizer用法及代码示例
- Python cuml.metrics.pairwise_distances.pairwise_distances用法及代码示例
- Python cuml.neighbors.KNeighborsClassifier用法及代码示例
- Python cuml.svm.SVC用法及代码示例
- Python cuml.svm.SVR用法及代码示例
- Python cuml.Lasso用法及代码示例
- Python cuml.tsa.ARIMA.predict用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cuml.ensemble.RandomForestClassifier。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。