Skip to main content

Logistic Regression

SQL function: cuml_logistic_regression

Official cuML reference: Python API

Fit a query-local cuML logistic or softmax classifier 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_logistic_regression(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
penalty_l1numbernoL1 penalty.
penalty_l2numbernoL2 penalty.
max_iterintegernoMaximum QN iterations.
linesearch_max_iterintegernoMaximum line-search iterations.
lbfgs_memoryintegernoL-BFGS history length.
fit_interceptbooleannoFit an intercept.
penalty_normalizedbooleannoNormalize the penalty by row count.
grad_tolnumbernoQN gradient tolerance.
change_tolnumbernoQN objective change tolerance.

SQL value argument schemas

ArgumentRequiredLiteral shapeDefaultConstraintsDescription
change_tolnonumber0.00001minimum 0QN objective change tolerance.
fit_interceptnobooleantrueFit an intercept.
grad_tolnonumber0.0001minimum 0QN gradient tolerance.
lbfgs_memorynointeger5minimum 1; maximum 2147483647L-BFGS history length.
linesearch_max_iternointeger50minimum 1; maximum 2147483647Maximum line-search iterations.
max_iternointeger1000minimum 1; maximum 2147483647Maximum QN iterations.
penalty_l1nonumber0minimum 0L1 penalty.
penalty_l2nonumber0minimum 0L2 penalty.
penalty_normalizednobooleantrueNormalize the penalty by row count.

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.
predictionInt32noPredicted zero-based class index.

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.
  • Training labels must be non-null Int32 contiguous classes 0..C-1; predict must omit label and match the feature dimension.
  • Binary labels use logistic loss; three or more classes use softmax. Reaching max_iter is not an error.
  • The model is query-local. An empty predict relation returns an empty result without a native call.

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