SymetryML Documentation

AutoML with SymetryML

AutoML with SymetryML is performed in two steps:

  • When creating a new SymetryML project you need to specify that you want to enable AutoML for that project.
    • SymetryML will automatically enhance the data when it is ingested
    • More info in the Create Project section.
  • Use the Auto Select functionality when building a new model

The following sections will describe both steps in more detail as well as the configuration available for each step.

Enabling AutoML for Your SymetryML Project

AutoML automates various stages of the typical machine learning pipeline. SymetryML’s AutoML functionality allows to perform:

  • Data pre-processing
    • Column Type Detection
    • Change Data Type of a column
    • One Hot Encoding
    • Target Encoding
    • Ignore Outliers
  • Feature engineering
    • Create new features interaction based on existing features. The FAST algorithm is used to decide which feature interactions to be added
    • Attribute Filtering
      • Compute Feature importance
      • Remove attribute with multi-collinearity
      • Ignore low variance features
      • Singular Value Decomposition
  • Model Building with Auto-Select
    • Automatically select type of models to build based on AutoML task - regression vs. binary classification supported.
    • Automatically select the best model from various permutations of the features. This is covered in the Auto Select section.
    • Automatically optimize model hyperparameters. This is covered in the Auto Select section.

AutoML Control Parameters

FamilyNameDescription
generalautoml_target_namestring, Column target name for the AutoML task
generalautoml_warmup_sizeinteger, default 100,000. This number is used when enabling the creation of new features based on existing feature interaction. In order to score the various possible combination of features some data is needed, this parameter controls how many tuples/rows to use to perform that calculation. Until that number of rows is processed by the project the project will appear empty. When invoking the Get Project Info endpoint the ProjectInfo params map will contain a key named automl_setup_done to inform whether or not the warmup period is done.
pre-processingautoml_attributes_to_useList of attribute names to use
Attribute Filteringautoml_ignore_outlierstrue |false, default:false
Attribute Filteringautoml_remove_collinearitytrue|false, default:false
Attribute Filteringautoml_ignore_low_variancetrue|false, default:false
Attribute Filteringautoml_threshold_variancedouble, default:0.0
Attribute Filteringautoml_use_svdtrue|false, default:false
Attribute Filteringautoml_vif_filtertrue|false, default:false
Attribute Filteringautoml_vif_filter_thresholdthis is the threshold to use when automl_vif_filter is true, double, default:5.0
Feature Engineeringautoml_use_feature_importancetrue|false, default:false
Feature Engineeringautoml_add_feature_interactiontrue|false, default:false
Feature Engineeringautoml_feature_interaction_thresholddouble, default:1, percentage of interaction pairs to keep from the FAST algorithm.
Feature Engineeringautoml_feature_interaction_max_numberinteger, maximum number of feature interactions to create. If not specified, defaults to the value of automl_feature_interaction_threshold.
Feature Engineeringautoml_fast_num_binsdouble, default:16, number of bins to use for the FAST algorithm
Feature Engineeringautoml_fast_num_threadsinteger, default:14, number of threads to use for the FAST algorithm
Feature Engineeringautoml_powerstring, comma separated string that describe which feature power to use. ex: automl_power=2:3:5:yj means add power 2, 3 and 5 as well as the Yeo-Johnson transform of the features.

Auto ML Rest API

In order to activate AutoML for a SymetryML project you need to specify additional parameters when creating the project. This is done using the Create Project rest API and adding the AutoML parameters to the MLContext of the request body.

AutoML Example

This example uses:

  • Specify to use AutoML for the project: "automl_project_is_automl":"true"
  • Specify to add feature interaction: "automl_add_feature_interaction":"true"
  • Specify a warmup period: "automl_warmup_size":"200"
  • Specify the target for the AutoML project: "automl_target_name":"MEDV"
Request:
POST url="http://charm:8080/symetry/rest/c1/projects?pid=automl-t6-reg-false&type=cpu&persist=false"

Body:
{"automl_warmup_size":"200","automl_add_feature_interaction":"true","automl_project_is_automl":"true","automl_target_name":"MEDV"}

On this page