Source code for evalml.problem_types.problem_types

"""Enum defining the supported types of machine learning problems."""
from enum import Enum

from evalml.utils import classproperty


[docs]class ProblemTypes(Enum): """Enum defining the supported types of machine learning problems.""" BINARY = "binary" """Binary classification problem.""" MULTICLASS = "multiclass" """Multiclass classification problem.""" REGRESSION = "regression" """Regression problem.""" TIME_SERIES_REGRESSION = "time series regression" """Time series regression problem.""" TIME_SERIES_BINARY = "time series binary" """Time series binary classification problem.""" TIME_SERIES_MULTICLASS = "time series multiclass" """Time series multiclass classification problem.""" MULTISERIES_TIME_SERIES_REGRESSION = "multiseries time series regression" """Multiseries time series regression problem.""" def __str__(self): """String representation of the ProblemTypes enum.""" problem_type_dict = { ProblemTypes.BINARY.name: "binary", ProblemTypes.MULTICLASS.name: "multiclass", ProblemTypes.REGRESSION.name: "regression", ProblemTypes.TIME_SERIES_REGRESSION.name: "time series regression", ProblemTypes.TIME_SERIES_BINARY.name: "time series binary", ProblemTypes.TIME_SERIES_MULTICLASS.name: "time series multiclass", ProblemTypes.MULTISERIES_TIME_SERIES_REGRESSION.name: "multiseries time series regression", } return problem_type_dict[self.name] @classproperty def _all_values(cls): return {pt.value.upper(): pt for pt in cls.all_problem_types} @classproperty def all_problem_types(cls): """Get a list of all defined problem types. Returns: list(ProblemTypes): List of all defined problem types. """ return list(cls)