mojolearn.RandomForestClassifier#
- class mojolearn.RandomForestClassifier(n_estimators=100, *, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='sqrt', max_leaf_nodes=None, min_impurity_decrease=0.0, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None, ccp_alpha=0.0, max_samples=None, monotonic_cst=None, max_leaves=-1, n_bins=128, n_streams=4, max_batch_size=4096, device='gpu', inference_engine='auto', numeric_mode=None)[source]#
Bases:
_RandomForestBaseRandom forest classifier with cuML’s defaults.
An ensemble of bootstrapped decision trees whose split thresholds are searched over at most
n_binsper-feature quantiles, as in cuML, rather than scikit-learn’s exact thresholds. Defaults follow cuML. Every scikit-learn-shaped parameter is either honoured or refused by name withNotImplementedError; none is accepted and ignored.Xis converted to float32; NaN or infinity inXraisesValueError.ymay hold numbers or strings; NaN labels are refused. The fit is reproducible fromrandom_state, andrandom_state=Nonemeans seed 0 (deterministic), unlike scikit-learn. Supports thefast,deterministicandidenticalnumeric modes throughnumeric_mode.- Parameters:
n_estimators (int, default 100) – Number of trees.
criterion ({‘gini’, ‘entropy’, ‘log_loss’}, default ‘gini’) – Split criterion; ‘log_loss’ is a second spelling of ‘entropy’.
max_depth (int or None, default None) – Maximum tree depth. None means unlimited, as in cuML and scikit-learn.
min_samples_split (int, default 2) – Minimum rows needed to split a node.
min_samples_leaf (int, default 1) – Minimum rows in a leaf.
min_weight_fraction_leaf (float, default 0.0) – Only 0.0 is accepted; any other value raises
NotImplementedError.max_features ({‘sqrt’, ‘log2’}, int, float or None, default ‘sqrt’) – Features considered per split: a name, a count in [1, n_features], a fraction in (0, 1], or None for all features.
max_leaf_nodes (None, default None) – Refused by name: scikit-learn’s best-first growth to exactly k leaves is not available here. Use
max_leavesfor cuML’s level-order leaf cap, ormojolearn.ExtraTreesClassifier, whosemax_leaf_nodesis scikit-learn’s.min_impurity_decrease (float, default 0.0) – Minimum impurity decrease required to split.
bootstrap (bool, default True) – Sample rows with replacement for each tree.
oob_score (bool, default False) – Compute the out-of-bag score during
fit; requiresbootstrap=True. Callable scorers are not supported.n_jobs (None, default None) – Only None is accepted.
random_state (int or None, default None) – Seed; None means 0.
verbose (int, default 0) – Only 0 is accepted.
warm_start (bool, default False) – Only False is accepted; there is no incremental fit.
class_weight (dict, ‘balanced’ or None, default None) – Per-class weights. ‘balanced_subsample’ is not supported.
ccp_alpha (float, default 0.0) – Only 0.0 is accepted; cost-complexity pruning is not implemented.
max_samples (float or None, default None) – Fraction of rows drawn per tree, in (0, 1]. None means all rows.
monotonic_cst (None, default None) – Only None is accepted.
max_leaves (int, default -1) – cuML’s leaf cap on a level-order grower; -1 (or None) means unlimited. This is not scikit-learn’s
max_leaf_nodes.n_bins (int, default 128) – Number of per-feature quantile bins searched for splits.
n_streams (int, default 4) – cuML’s stream count parameter.
max_batch_size (int, default 4096) – cuML’s node batch size for the tree builder.
device ({‘gpu’}, default ‘gpu’) – Only ‘gpu’ is accepted. On a CPU-only install the same setting runs the host build of the forest.
inference_engine ({‘auto’, ‘sequential’, ‘parallel_groves’}, default ‘auto’) – How
predictreduces over trees. ‘auto’ uses ‘parallel_groves’ infastmode and ‘sequential’ otherwise.numeric_mode ({‘fast’, ‘deterministic’, ‘identical’} or None, default None) – Numeric mode for this estimator; None uses the package default.
- Variables:
classes_ (list) – Class labels in sorted order (numbers by value, strings by code point).
n_classes_ (int) – Number of classes.
n_features_in_ (int) – Number of features seen in
fit.oob_score_ (float) – Out-of-bag score; present when
oob_score=True.oob_decision_function_ (Array) – Out-of-bag class probabilities,
(n_samples, n_classes)float64; present whenoob_score=True.feature_importances_ (Array) – Impurity importances, float32; present when
fitwas called withfeature_importances=True.
Examples
>>> import numpy as np, mojolearn >>> rng = np.random.default_rng(0) >>> X = rng.random((1000, 8), dtype=np.float32) >>> y = (X[:, 0] > 0.5).astype(np.int64) >>> model = mojolearn.RandomForestClassifier(n_estimators=50).fit(X, y) >>> proba = model.predict_proba(X)
- __init__(n_estimators=100, *, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='sqrt', max_leaf_nodes=None, min_impurity_decrease=0.0, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None, ccp_alpha=0.0, max_samples=None, monotonic_cst=None, max_leaves=-1, n_bins=128, n_streams=4, max_batch_size=4096, device='gpu', inference_engine='auto', numeric_mode=None)[source]#
Methods
apply(X)Return tree-relative leaf IDs, shape (rows, trees), from the native walk.
fit(X, y, *[, feature_importances])Fit the forest.
get_params([deep])load(path)Load a forest saved by
save.numeric_mode_used()The numeric mode this estimator runs in.
predict(X)Predicted class labels: the argmax of
predict_proba, first maximum winning, mapped throughclasses_.Class probabilities: the per-class vote fractions over the trees.
predict_with_leaves(X)Return ordered raw mean scores (rows, outputs) and leaf IDs (rows, trees).
save(path)Write the fitted forest to
pathas an npz file.score(X, y[, sample_weight])Mode-aware GPU accuracy or Float32 R², weighted when
sample_weightis given (scikit-learn's weighted accuracy and R² on the pinned-sum path ofmetrics.accuracy_scoreandmetrics.r2_score).set_params(**params)Set constructor parameters.
staged_predict(X)Return eager mean prefixes, shape (rows, trees, outputs), in tree order.
vendor_used()The GPU backend this estimator runs on.
- fit(X, y, *, feature_importances=False)[source]#
Fit the forest.
- Parameters:
X (array-like of shape (n_samples, n_features)) – Training data, converted to float32.
y (array-like of shape (n_samples,)) – Targets.
feature_importances (bool, default False) – Also compute
feature_importances_during this fit.
- Returns:
self