# Configure hyperparameters for custom tasks
URL: https://docs.datarobot.com/en/docs/classic-ui/modeling/automl-preview/cml-hyperparam.html

> Define the hyperparameters for a custom task.

# Configure hyperparameters for custom tasks

> [!NOTE] Availability information
> Hyperparameters for custom tasks is off by default. Contact your DataRobot representative or administrator for information on enabling the feature.
> 
> Feature flag: Enable Custom Task Hyperparameters

Now available for preview, you can define hyperparameters for a custom task. Add and configure hyperparameters in the [model-metadata.yaml](https://docs.datarobot.com/en/docs/classic-ui/modeling/special-workflows/cml/cml-custom-tasks.html#model-metadatayaml) file.

You must specify two values for each hyperparameter: the `name` and `type`. The type can be one of `int`, `float`, `string`, `select`, or `multi`. All types support a `default` value.  Integer and float values can have a `min` and `max` value specified. Certain type parameters require a list in the `values` field to define the accepted values. String type hyperparameters can accept any arbitrary string. Multi types have values specified as multiple of the aforementioned types, e.g.`float` and `select`.

View an example set of hyperparameters below.

```
hyperparameters:
  # int: Integer value, must provide a min and max. Default is optional. Uses the min value if not provided.
  - name: seed
    type: int
    min: 0
    max: 10000
    default: 64
  # int: Integer value, must provide a min and max. Default is optional. Uses the min value if not provided.
  - name: kbins_n_bins
    type: int
    min: 2
    max: 1000
    default: 10
  # select: A discrete set of unique values, similar to an enum. Default is optional. Will use the first value if
  # not provided.
  - name: kbins_strategy
    type: select
    values:
      - uniform
      - quantile
      - kmeans
    default: quantile
  # multi: A parameter that can be of multiple types (int/float/select). Default is optional. Will use the first parameter
  # type's default value. This example uses select, the first entry, or for int/float, the min value.
  - name: missing_values_strategy
    type: multi
    values:
      float:
        min: -1000000.0
        max: 1000000.0
      select:
        values:
        - median
        - mean
        - most_frequent
    default: median
  # string: Unicode string. Default is optional. Is an empty string if not provided.
  - name: print_message
    type: string
    default: "hello world 🚀"
```

Access a custom task's hyperparameters via the `fit` method and add parameters to the `fit` function arguments, as shown below.

```
def fit(
    X: pd.DataFrame,
    y: pd.Series,
    output_dir: str,
    class_order: Optional[List[str]] = None,
    row_weights: Optional[np.ndarray] = None,
    parameters: Optional[dict] = None,
    **kwargs,
):
```

---
