from enum import Enum
[docs]class Pipeline(Enum):
DATA_CLEANING_POST_IMPUTATION = 'data_cleaning_post_imputation'
TIME_SERIES_AUTO_FEATURES = 'time_series_auto_features'
FEATURE_EMBEDDING = 'feature_embedding'
FEATURE_SELECTION = 'feature_selection'
DATA_CLEANING_PRE_IMPUTATION = 'data_cleaning_pre_imputation'
IMPUTATION = 'imputation'
TEXT_PREPROCESSING = 'text_preprocessing'
FEATURE_ENGINEERING = 'feature_engineering'
FEATURE_STACKING = 'feature_stacking'
ESTIMATOR = 'estimator'
BALANCING = 'balancing'
AUTO_SAMPLE_GENERATION = 'auto_sample_generation'
[docs] @staticmethod
def ALL_CLASSIFICATION():
return [Pipeline.DATA_CLEANING_PRE_IMPUTATION, Pipeline.TEXT_PREPROCESSING, Pipeline.IMPUTATION,
Pipeline.DATA_CLEANING_POST_IMPUTATION, Pipeline.AUTO_SAMPLE_GENERATION, Pipeline.BALANCING,
Pipeline.FEATURE_ENGINEERING, Pipeline.FEATURE_STACKING, Pipeline.FEATURE_EMBEDDING,
Pipeline.FEATURE_SELECTION, Pipeline.ESTIMATOR]
[docs] @staticmethod
def ALL_CLASSIFICATION_TIMESERIES():
return [Pipeline.DATA_CLEANING_PRE_IMPUTATION, Pipeline.TEXT_PREPROCESSING, Pipeline.IMPUTATION,
Pipeline.DATA_CLEANING_POST_IMPUTATION, Pipeline.BALANCING, Pipeline.FEATURE_ENGINEERING,
Pipeline.FEATURE_STACKING, Pipeline.FEATURE_EMBEDDING, Pipeline.FEATURE_SELECTION, Pipeline.ESTIMATOR]
[docs] @staticmethod
def ALL_MULTIVARIATE_TIMESERIES():
return [Pipeline.DATA_CLEANING_PRE_IMPUTATION, Pipeline.TEXT_PREPROCESSING, Pipeline.IMPUTATION,
Pipeline.DATA_CLEANING_POST_IMPUTATION, Pipeline.TIME_SERIES_AUTO_FEATURES,
Pipeline.FEATURE_ENGINEERING, Pipeline.FEATURE_STACKING, Pipeline.FEATURE_EMBEDDING,
Pipeline.FEATURE_SELECTION, Pipeline.ESTIMATOR]
[docs] @staticmethod
def ALL_ANOMALY():
return [Pipeline.DATA_CLEANING_PRE_IMPUTATION, Pipeline.TEXT_PREPROCESSING, Pipeline.IMPUTATION,
Pipeline.DATA_CLEANING_POST_IMPUTATION, Pipeline.AUTO_SAMPLE_GENERATION, Pipeline.BALANCING,
Pipeline.FEATURE_ENGINEERING, Pipeline.FEATURE_STACKING, Pipeline.FEATURE_EMBEDDING,
Pipeline.FEATURE_SELECTION, Pipeline.ESTIMATOR]
[docs] @staticmethod
def ALL_REGRESSION():
return [Pipeline.DATA_CLEANING_PRE_IMPUTATION, Pipeline.TEXT_PREPROCESSING, Pipeline.IMPUTATION,
Pipeline.DATA_CLEANING_POST_IMPUTATION, Pipeline.AUTO_SAMPLE_GENERATION, Pipeline.FEATURE_ENGINEERING,
Pipeline.FEATURE_STACKING, Pipeline.FEATURE_EMBEDDING, Pipeline.FEATURE_SELECTION, Pipeline.ESTIMATOR]
[docs] @staticmethod
def ALL_REGRESSION_TIMESERIES():
return [Pipeline.DATA_CLEANING_PRE_IMPUTATION, Pipeline.TEXT_PREPROCESSING, Pipeline.IMPUTATION,
Pipeline.DATA_CLEANING_POST_IMPUTATION, Pipeline.TIME_SERIES_AUTO_FEATURES,
Pipeline.FEATURE_ENGINEERING, Pipeline.FEATURE_STACKING, Pipeline.FEATURE_EMBEDDING,
Pipeline.FEATURE_SELECTION, Pipeline.ESTIMATOR]
[docs]class Estimator(Enum):
LIGHT_GRADIENT_BOOSTING = 'light_gradient_boosting'
LIBSVM_SVR = 'libsvm_svr'
ADABOOST = 'adaboost'
XGRADIENT_BOOSTING = 'xgradient_boosting'
RANSAC = 'ransac'
LARS = 'lars'
LIBLINEAR_SVR = 'liblinear_svr'
K_NEAREST_NEIGHBORS = 'k_nearest_neighbors'
RANDOM_FOREST = 'random_forest'
BERNOULLI_NB = 'bernoulli_nb'
LOGREG = 'logreg'
CAT_BOOST = 'cat_boost'
ANOMALY_HIST = 'anomaly_hist'
BAYESIAN_RIDGE = 'bayesian_ridge'
GRADIENT_BOOSTING = 'gradient_boosting'
GAUSSIAN_PROCESS = 'gaussian_process'
LIBLINEAR_SVC = 'liblinear_svc'
MULTINOMIAL_NB = 'multinomial_nb'
DECISION_TREE = 'decision_tree'
EXPONENTIAL_SMOOTHING = 'exponential_smoothing'
BART = 'bart'
ANOMALY_GMM = 'anomaly_gmm'
NN_KERAS_SEQUENTIAL = 'nn_keras_sequential'
LDA = 'lda'
PROJ_LOGIT = 'proj_logit'
ELASTIC_NET = 'elastic_net'
ARIMA = 'arima'
SGD = 'sgd'
QDA = 'qda'
LIBSVM_SVC = 'libsvm_svc'
EXTRA_TREES = 'extra_trees'
COMPLEMENT_NB = 'complement_nb'
RIDGE_REGRESSION = 'ridge_regression'
GAUSSIAN_NB = 'gaussian_nb'
RIDGE_CLASSIFICATION = 'ridge_classification'
AVERAGE_ESTIMATOR = 'average_estimator'
ANOMALY_ISOF = 'anomaly_isof'
PASSIVE_AGGRESSIVE = 'passive_aggressive'
[docs] @staticmethod
def ALL_CLASSIFICATION():
return [Estimator.RANDOM_FOREST, Estimator.XGRADIENT_BOOSTING, Estimator.ADABOOST, Estimator.EXTRA_TREES,
Estimator.K_NEAREST_NEIGHBORS, Estimator.PASSIVE_AGGRESSIVE, Estimator.PROJ_LOGIT,
Estimator.BERNOULLI_NB, Estimator.NN_KERAS_SEQUENTIAL, Estimator.ANOMALY_GMM, Estimator.ANOMALY_ISOF,
Estimator.ANOMALY_HIST, Estimator.DECISION_TREE, Estimator.GAUSSIAN_NB, Estimator.GRADIENT_BOOSTING,
Estimator.SGD, Estimator.QDA, Estimator.MULTINOMIAL_NB, Estimator.LOGREG, Estimator.LIBSVM_SVC,
Estimator.LDA, Estimator.LIBLINEAR_SVC, Estimator.RIDGE_CLASSIFICATION,
Estimator.LIGHT_GRADIENT_BOOSTING, Estimator.CAT_BOOST, Estimator.COMPLEMENT_NB]
[docs] @staticmethod
def ALL_CLASSIFICATION_TIMESERIES():
return [Estimator.RANDOM_FOREST, Estimator.XGRADIENT_BOOSTING, Estimator.ADABOOST, Estimator.EXTRA_TREES,
Estimator.K_NEAREST_NEIGHBORS, Estimator.PASSIVE_AGGRESSIVE, Estimator.PROJ_LOGIT,
Estimator.BERNOULLI_NB, Estimator.NN_KERAS_SEQUENTIAL, Estimator.ANOMALY_GMM, Estimator.ANOMALY_ISOF,
Estimator.ANOMALY_HIST, Estimator.DECISION_TREE, Estimator.GAUSSIAN_NB, Estimator.GRADIENT_BOOSTING,
Estimator.SGD, Estimator.QDA, Estimator.MULTINOMIAL_NB, Estimator.LOGREG, Estimator.LIBSVM_SVC,
Estimator.LDA, Estimator.LIBLINEAR_SVC, Estimator.RIDGE_CLASSIFICATION,
Estimator.LIGHT_GRADIENT_BOOSTING, Estimator.CAT_BOOST, Estimator.COMPLEMENT_NB]
[docs] @staticmethod
def ALL_MULTIVARIATE_TIMESERIES():
return [Estimator.RANDOM_FOREST, Estimator.RIDGE_REGRESSION, Estimator.XGRADIENT_BOOSTING, Estimator.ADABOOST,
Estimator.EXTRA_TREES, Estimator.GAUSSIAN_PROCESS, Estimator.K_NEAREST_NEIGHBORS,
Estimator.NN_KERAS_SEQUENTIAL, Estimator.DECISION_TREE, Estimator.GRADIENT_BOOSTING,
Estimator.LIBLINEAR_SVR, Estimator.LIBSVM_SVR, Estimator.SGD, Estimator.LARS, Estimator.ELASTIC_NET,
Estimator.LIGHT_GRADIENT_BOOSTING, Estimator.CAT_BOOST, Estimator.RANSAC, Estimator.BAYESIAN_RIDGE]
[docs] @staticmethod
def ALL_ANOMALY():
return [Estimator.RANDOM_FOREST, Estimator.XGRADIENT_BOOSTING, Estimator.ADABOOST, Estimator.EXTRA_TREES,
Estimator.K_NEAREST_NEIGHBORS, Estimator.PASSIVE_AGGRESSIVE, Estimator.PROJ_LOGIT,
Estimator.BERNOULLI_NB, Estimator.NN_KERAS_SEQUENTIAL, Estimator.ANOMALY_GMM, Estimator.ANOMALY_ISOF,
Estimator.ANOMALY_HIST, Estimator.DECISION_TREE, Estimator.GAUSSIAN_NB, Estimator.GRADIENT_BOOSTING,
Estimator.SGD, Estimator.QDA, Estimator.MULTINOMIAL_NB, Estimator.LOGREG, Estimator.LIBSVM_SVC,
Estimator.LDA, Estimator.LIBLINEAR_SVC, Estimator.RIDGE_CLASSIFICATION,
Estimator.LIGHT_GRADIENT_BOOSTING, Estimator.CAT_BOOST, Estimator.COMPLEMENT_NB]
[docs] @staticmethod
def ALL_REGRESSION():
return [Estimator.RANDOM_FOREST, Estimator.RIDGE_REGRESSION, Estimator.XGRADIENT_BOOSTING, Estimator.ADABOOST,
Estimator.EXTRA_TREES, Estimator.GAUSSIAN_PROCESS, Estimator.K_NEAREST_NEIGHBORS,
Estimator.NN_KERAS_SEQUENTIAL, Estimator.DECISION_TREE, Estimator.GRADIENT_BOOSTING,
Estimator.LIBLINEAR_SVR, Estimator.LIBSVM_SVR, Estimator.SGD, Estimator.LARS, Estimator.ELASTIC_NET,
Estimator.LIGHT_GRADIENT_BOOSTING, Estimator.CAT_BOOST, Estimator.RANSAC, Estimator.BAYESIAN_RIDGE,
Estimator.BART]
[docs] @staticmethod
def ALL_REGRESSION_TIMESERIES():
return [Estimator.RANDOM_FOREST, Estimator.RIDGE_REGRESSION, Estimator.XGRADIENT_BOOSTING, Estimator.ADABOOST,
Estimator.EXTRA_TREES, Estimator.GAUSSIAN_PROCESS, Estimator.K_NEAREST_NEIGHBORS,
Estimator.NN_KERAS_SEQUENTIAL, Estimator.DECISION_TREE, Estimator.GRADIENT_BOOSTING,
Estimator.LIBLINEAR_SVR, Estimator.LIBSVM_SVR, Estimator.SGD, Estimator.LARS, Estimator.ELASTIC_NET,
Estimator.LIGHT_GRADIENT_BOOSTING, Estimator.CAT_BOOST, Estimator.RANSAC, Estimator.BAYESIAN_RIDGE,
Estimator.AVERAGE_ESTIMATOR, Estimator.ARIMA, Estimator.EXPONENTIAL_SMOOTHING, Estimator.BART]
[docs]class TargetMetric(Enum):
F2 = 'f2'
ACCURACY = 'accuracy'
MAE = 'mae'
NORMALIZED_MAE = 'normalized_mae'
MEDIAN_AE = 'median_ae'
MAPE = 'mape'
RMSLE = 'rmsle'
COST_METRIC = 'cost_metric'
MSE = 'mse'
RMSE = 'rmse'
NORMALIZED_MSE = 'normalized_mse'
MAE_DISCRETE = 'mae_discrete'
RMSPE = 'rmspe'
NORMALIZED_RMSE = 'normalized_rmse'
RECALL_MACRO = 'recall_macro'
NORMALIZED_GINI = 'normalized_gini'
SIGNED_SUM = 'signed_sum'
F1 = 'f1'
LOG_LOSS = 'log_loss'
AUC = 'auc'
R2 = 'r2'
R1 = 'r1'
JACCARD = 'jaccard'
NORMALIZED_MUTUAL_INFO = 'normalized_mutual_info'
[docs] @staticmethod
def ALL_CLASSIFICATION():
return [TargetMetric.F1, TargetMetric.F2, TargetMetric.NORMALIZED_GINI, TargetMetric.AUC, TargetMetric.LOG_LOSS,
TargetMetric.ACCURACY, TargetMetric.RECALL_MACRO, TargetMetric.JACCARD,
TargetMetric.NORMALIZED_MUTUAL_INFO, TargetMetric.COST_METRIC]
[docs] @staticmethod
def ALL_CLASSIFICATION_TIMESERIES():
return [TargetMetric.F1, TargetMetric.F2, TargetMetric.NORMALIZED_GINI, TargetMetric.AUC, TargetMetric.LOG_LOSS,
TargetMetric.ACCURACY, TargetMetric.RECALL_MACRO, TargetMetric.JACCARD,
TargetMetric.NORMALIZED_MUTUAL_INFO, TargetMetric.COST_METRIC]
[docs] @staticmethod
def ALL_MULTIVARIATE_TIMESERIES():
return [TargetMetric.RMSE, TargetMetric.R1, TargetMetric.NORMALIZED_MSE, TargetMetric.NORMALIZED_RMSE,
TargetMetric.MEDIAN_AE, TargetMetric.R2, TargetMetric.MAE, TargetMetric.MAE_DISCRETE,
TargetMetric.NORMALIZED_MAE, TargetMetric.MSE, TargetMetric.RMSPE, TargetMetric.RMSLE,
TargetMetric.SIGNED_SUM, TargetMetric.MAPE]
[docs] @staticmethod
def ALL_ANOMALY():
return [TargetMetric.F1, TargetMetric.F2, TargetMetric.NORMALIZED_GINI, TargetMetric.AUC, TargetMetric.LOG_LOSS,
TargetMetric.ACCURACY, TargetMetric.RECALL_MACRO, TargetMetric.JACCARD,
TargetMetric.NORMALIZED_MUTUAL_INFO, TargetMetric.COST_METRIC]
[docs] @staticmethod
def ALL_REGRESSION():
return [TargetMetric.RMSE, TargetMetric.R1, TargetMetric.NORMALIZED_MSE, TargetMetric.NORMALIZED_RMSE,
TargetMetric.MEDIAN_AE, TargetMetric.R2, TargetMetric.MAE, TargetMetric.MAE_DISCRETE,
TargetMetric.NORMALIZED_MAE, TargetMetric.MSE, TargetMetric.RMSPE, TargetMetric.RMSLE,
TargetMetric.SIGNED_SUM, TargetMetric.MAPE]
[docs] @staticmethod
def ALL_REGRESSION_TIMESERIES():
return [TargetMetric.RMSE, TargetMetric.R1, TargetMetric.NORMALIZED_MSE, TargetMetric.NORMALIZED_RMSE,
TargetMetric.MEDIAN_AE, TargetMetric.R2, TargetMetric.MAE, TargetMetric.MAE_DISCRETE,
TargetMetric.NORMALIZED_MAE, TargetMetric.MSE, TargetMetric.RMSPE, TargetMetric.RMSLE,
TargetMetric.SIGNED_SUM, TargetMetric.MAPE]
[docs]class SplittingStrategy(Enum):
STRATIFIED = 'stratified'
SHUFFLED = 'shuffled'
TIME_ORDER = 'time_order'
[docs] @staticmethod
def ALL_CLASSIFICATION():
return [SplittingStrategy.STRATIFIED, SplittingStrategy.SHUFFLED, SplittingStrategy.TIME_ORDER]
[docs] @staticmethod
def ALL_CLASSIFICATION_TIMESERIES():
return [SplittingStrategy.TIME_ORDER]
[docs] @staticmethod
def ALL_MULTIVARIATE_TIMESERIES():
return [SplittingStrategy.TIME_ORDER]
[docs] @staticmethod
def ALL_ANOMALY():
return [SplittingStrategy.STRATIFIED, SplittingStrategy.SHUFFLED, SplittingStrategy.TIME_ORDER]
[docs] @staticmethod
def ALL_REGRESSION():
return [SplittingStrategy.TIME_ORDER, SplittingStrategy.SHUFFLED]
[docs] @staticmethod
def ALL_REGRESSION_TIMESERIES():
return [SplittingStrategy.TIME_ORDER]
[docs]class ValidationStrategy(Enum):
HOLDOUT = 'holdout'
CROSS_VALIDATION = 'cv'
[docs]class CVStrategy(Enum):
AVERAGE_MODELS = 'average_models'
LAST_MODEL = 'last_model'
[docs]class InterpretabilityLevel(Enum):
EXPLAINABLE = 2
PRECISE = 0
[docs]class ProblemType(Enum):
CLASSIFICATION = 'classification'
REGRESSION = 'regression'
ANOMALY_DETECTION = 'anomaly_detection'
TIMESERIES_CLASSIFICATION = 'classification_timeseries'
TIMESERIES_REGRESSION = 'regression_timeseries'
TIMESERIES_ANOMALY_DETECTION = 'anomaly_timeseries'
[docs]class FeatureType(Enum):
CATEGORICAL = 'categorical'
NUMERICAL = 'numerical'
TEXT = 'text'
DATETIME = 'datetime'