當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python cuml.ensemble.RandomForestRegressor用法及代碼示例


用法:

class cuml.ensemble.RandomForestRegressor(*, split_criterion=2, accuracy_metric='r2', 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 或字符串(默認 = 2 ('mse'))

用於分割節點的標準。

  • 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.0

  • 如果 '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)

分裂節點所需的最小雜質減少

accuracy_metric字符串(默認 = ‘r2’)

決定用於評估模型性能的指標。在 0.16 版本中,默認評分指標從均方誤差更改為 r-squared。

  • 對於r-squared:'r2'

  • 對於絕對誤差的中位數:'median_ae'

  • 絕對誤差的平均值:'mean_ae'

  • 對於均方誤差”:'mse'

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 推理期間進行默認的自動數據類型轉換。

有關其他文檔,請參閱 scikitlearn’s RandomForestRegressor

例子

import numpy as np
from cuml.ensemble import RandomForestRegressor as curfr
X = np.asarray([[0,10],[0,20],[0,30],[0,40]], dtype=np.float32)
y = np.asarray([0.0,1.0,2.0,3.0], dtype=np.float32)
cuml_model = curfr(max_features=1.0, n_bins=128,
                    min_samples_leaf=1,
                    min_samples_split=2,
                    n_estimators=40, accuracy_metric='r2')
cuml_model.fit(X,y)
cuml_score = cuml_model.score(X,y)
print("MSE score of cuml : ", cuml_score)

輸出:

MSE score of cuml :  0.1123437201231765

相關用法


注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cuml.ensemble.RandomForestRegressor。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。