用法:
class cuml.ForestInference(*, handle=None, output_type=None, verbose=False)
ForestInference 為隨機森林和增強決策樹模型提供GPU-accelerated 推理(預測)。
該模塊不支持訓練模型。相反,用戶應該在另一個包中訓練模型並將其保存為 treelite-compatible 格式。 (參見https://github.com/dmlc/treelite)目前支持LightGBM XGBoost 和 SKLearn GBDT 和隨機森林模型。
用戶通常通過使用ForestInference.load加載保存的模型文件來創建ForestInference對象。也可以使用ForestInferenceload_from_sklearn從SKLearn模型創建它。生成的對象提供
predict
方法來執行推理。- 已知限製:
- 單行數據應該適合線程塊的共享內存,否則(從 5000-12288 個特征開始)FIL 可能推斷較慢
- 僅來自 sklearn.ensemble
{RandomForest,GradientBoosting,ExtraTrees}{Classifier,Regressor}
支持模型。目前不支持其他sklearn.ensemble 型號。 - 導入大型 SKLearn 模型可能會很慢,因為它是在 Python 中完成的。
- LightGBM 分類特征不受支持。
- 推理使用密集矩陣格式,這對許多問題都很有效,但對於稀疏數據集可能不是最優的。
- 僅支持分類和回歸。
- 許多其他隨機森林實現,包括 LightGBM 和 SKLearn GBDT 都使用 64 位浮點參數,但 ForestInference 的底層庫僅使用 32 位參數。由於在將此類模型加載到 ForestInference 時會發生截斷,您可能會觀察到準確性略有下降。
- 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
。有關詳細信息,請參閱輸出數據類型配置。
參數:
注意:
有關其他使用示例,請參閱示例筆記本,位於https://github.com/rapidsai/cuml/blob/branch-0.15/notebooks/forest_inference_demo.ipynb
例子:
在下麵的示例中,合成數據在推理之前被複製到主機。 ForestInference 也可以直接接受 numpy 數組,但會產生輕微的性能開銷。
# Assume that the file 'xgb.model' contains a classifier model that was # previously saved by XGBoost's save_model function. import sklearn, sklearn.datasets, numpy as np from numba import cuda from cuml import ForestInference model_path = 'xgb.model' X_test, y_test = sklearn.datasets.make_classification() X_gpu = cuda.to_device(np.ascontiguousarray(X_test.astype(np.float32))) fm = ForestInference.load(model_path, output_class=True) fil_preds_gpu = fm.predict(X_gpu) accuracy_score = sklearn.metrics.accuracy_score(y_test, np.asarray(fil_preds_gpu))
相關用法
- Python cuml.metrics.pairwise_distances.pairwise_distances用法及代碼示例
- Python cuml.neighbors.KNeighborsClassifier用法及代碼示例
- Python cuml.ensemble.RandomForestRegressor用法及代碼示例
- Python cuml.svm.SVC用法及代碼示例
- Python cuml.svm.SVR用法及代碼示例
- Python cuml.Lasso用法及代碼示例
- Python cuml.tsa.ARIMA.predict用法及代碼示例
- Python cuml.multiclass.OneVsRestClassifier用法及代碼示例
- Python cuml.preprocessing.LabelBinarizer用法及代碼示例
- Python cuml.random_projection.GaussianRandomProjection用法及代碼示例
- Python cuml.MBSGDRegressor用法及代碼示例
- Python cuml.experimental.preprocessing.PolynomialFeatures用法及代碼示例
- Python cuml.PCA用法及代碼示例
- Python cuml.feature_extraction.text.HashingVectorizer用法及代碼示例
- Python cuml.DBSCAN用法及代碼示例
- Python cuml.dask.feature_extraction.text.TfidfTransformer用法及代碼示例
- Python cuml.TruncatedSVD用法及代碼示例
- Python cuml.common.memory_utils.using_output_type用法及代碼示例
- Python cuml.preprocessing.text.stem.PorterStemmer用法及代碼示例
- Python cuml.experimental.preprocessing.add_dummy_feature用法及代碼示例
注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cuml.ForestInference。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。