Auto-select optimal model
Auto-select the optimal model for a given task (binary classifier or regression). Under the hood, SymetryML builds many different models across various permutations of the selected input attributes, and also considers various model types for the given task, then chooses the best one. The request body is an `MLContext` object.
Auto-select the optimal model for a given task (binary classifier or regression). Under the hood, SymetryML builds many different models across various permutations of the selected input attributes, and also considers various model types for the given task, then chooses the best one.
The request body is an MLContext object.
Authorization
SymetryMLAuth HMAC-SHA256 signature-based authentication: requests are signed with
your secret key and sent with the Customer-ID, Sym-date,
Authorization, Content-MD5 and sym-version headers.
See SymetryML REST API Security
for the signature algorithm and a complete example.
In: header
Path Parameters
User/Customer identifier
Project identifier
Data source name
Query Parameters
Machine learning model. Must match the request body example you're using below — the rendered "Try it" query string always shows this parameter's single example value, so adjust task manually.
Value in
- "binary_classifier"
- "multiclass_classifier"
- "regression"
- "anomaly"
Unique identifier for the model
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/c1/projects/nbra_prj_iris/autoselect/nbra_ds_sftp_iris?task=binary_classifier&modelid=iris_autoselect_model" \ -H "Content-Type: application/json" \ -d '{ "inputAttributes": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ], "targets": [ 12 ], "extraParameters": { "autoselect_grid_type": "autoselect_grid_type_normal", "selector_type": "selector_type_fw_bw", "selector_max_iterations": "5", "autoselect_thread_pool_size": "4", "sml_model_assessment_type": "auc" } }'{ "statusCode": 200, "statusString": "Job is finished", "values": {}}{ "statusCode": 202, "statusString": "SelectModel Job Created", "values": {}}{ "statusCode": 400, "statusString": "java.lang.IllegalArgumentException: Invalid Model Name: string is null", "values": {}}{ "statusCode": 500, "statusString": "", "values": {}}Learn frame data POST
Learns from a raw `DataFrame` posted inline (as opposed to `dss/{dsName}/learn`, which learns from a registered data source via an always-async job). Set `async=true` to run as a background job — the response is `202` with the job id in the `sym-job-id` header and an empty body; poll `GET /{user}/jobs/{jobId}` for completion. Without `async` (or `async=false`), learning happens synchronously and the `200` response body has empty `values` — it is not a job-status payload.
Auto-select optimal model (dataframe body) POST
Dataframe-body variant of auto-select: instead of a `{dsName}` path segment referencing an already-uploaded data source, the request body carries both the `dataframe` (raw data) and `mlcontext` (`inputAttributes`/`targets`) directly. Attribute resolution still goes through the project's own learned data, not the inline dataframe — the project must already have been `/learn`ed with the same schema; the body's `dataframe` supplies the scoring/validation data. Schedules an asynchronous job (same response shape/status strings as the `{dsName}` variant, including the shared `"SelectModel Job Created"` status string).