Skip to main content

Random Forest Regressor

SQL function: cuml_random_forest_regressor

Official cuML reference: Python API

Fit a query-local cuML random forest regressor and score independent rows.

Quickstart

Register the relations referenced by the parenthesized SELECT clauses below. For metadata validation, the descriptor names training_vectors and predict_vectors.

SELECT id, prediction FROM cuml_random_forest_regressor(training => (SELECT id, d0, label FROM train), predict => (SELECT id, d0 FROM test)) ORDER BY row_ordinal;

Inputs

Each relation argument is a parenthesized SELECT subquery. Metadata validation resolves a registered table or view for the same role without scanning its rows. See ML Inputs for the ID, Float32 feature, null, finite-value, and runtime-dimension contract.

RoleRequiredValidation referenceDescription
trainingyestableDense Float32 features and non-null Int32 label used to fit the query-local model.
predictyestableIndependent dense Float32 rows scored with the query-local model; must omit label.

Vector element types

Element typeValid metrics
Float32Not applicable

Arguments and options

Scalar SQL arguments

ArgumentTypeRequiredDescription
n_treesintegernoNumber of trees.
max_depthintegernoMaximum tree depth; zero uses the native unlimited depth.
max_leavesintegernoMaximum leaf count; omission uses the native unlimited setting.
max_featuresnumbernoFraction of features sampled per split.
max_samplesnumbernoFraction of training rows sampled per tree.
bootstrapbooleannoSample training rows with replacement.
max_n_binsintegernoMaximum histogram bins.
min_samples_leafintegernoMinimum samples per leaf.
min_samples_splitintegernoMinimum samples to split a node.
min_impurity_decreasenumbernoMinimum split impurity reduction.
max_batch_sizeintegernoMaximum prediction batch size.
seedintegernoTraining random seed.

SQL value argument schemas

ArgumentRequiredLiteral shapeDefaultConstraintsDescription
bootstrapnobooleantrueSample training rows with replacement.
max_batch_sizenointeger4096minimum 1; maximum 2147483647Maximum prediction batch size.
max_depthnointeger16minimum 0; maximum 2147483647Maximum tree depth; zero uses the native unlimited depth.
max_featuresnonumber1greater than 0; maximum 1Fraction of features sampled per split.
max_leavesnointegerNo defaultminimum 1; maximum 2147483647Maximum leaf count; omission uses the native unlimited setting.
max_n_binsnointeger128minimum 2; maximum 2147483647Maximum histogram bins.
max_samplesnonumber1greater than 0; maximum 1Fraction of training rows sampled per tree.
min_impurity_decreasenonumber0minimum 0Minimum split impurity reduction.
min_samples_leafnointeger1minimum 1; maximum 2147483647Minimum samples per leaf.
min_samples_splitnointeger2minimum 2; maximum 2147483647Minimum samples to split a node.
n_treesnointeger100minimum 1; maximum 2147483647Number of trees.
seednointeger0minimum 0; maximum 18446744073709551615Training random seed.

Vector binding shapes

Each relation subquery projects a non-null id and either non-null Float32 feature columns in dimension order or one non-null vector list column of non-null Float32 values. For classification, training also projects non-null Int32 label; regression requires non-null finite Float32 label. The predict relation omits it.

The list-column shape excludes other feature columns. See ML Inputs for the allowed list containers and runtime checks.

Output

ColumnTypeNullableDescription
row_ordinalUInt64noEvaluated input row position, including when IDs repeat.
idsame_as_predict.idnoLogical ID from the predict relation.
predictionFloat32noPredicted regression target.

Concrete schemas are call-specific. Run gpu_validate_call against registered relations to inspect the output schema after the actual ID types and literal options are validated.

Limits

  • Validation resolves named tables or views and reads schemas only; it does not execute relation scans or GPU work.
  • Execution relation arguments require parenthesized subqueries; dry-run validation accepts registered named relations only.
  • Classifier labels must be non-null Int32 contiguous classes 0..C-1; regressor labels must be non-null finite Float32. Predict must omit label and match the training feature dimension.
  • Prediction copies the whole predict relation to host memory, synchronizes the CUDA stream, and walks the trees on the host; this is not GPU inference in the pinned native implementation.
  • Training uses one RAFT pool stream whose allocations share the query grant. The forest is query-local; an empty predict relation returns an empty result.

To dry-run validate relation metadata, column types, and options without execution, see gpu_validate_call.