@@ -1493,11 +1493,9 @@ def strategy(self, _):
14931493 "To update the search strategy, use <HyperparameterSearchSettings object>.strategy = ..., "
14941494 "obtained with <DSSPredictionMLTaskSettings object>.get_hyperparameter_search_settings()" )
14951495
1496-
1497- class RandomForestSettings (PredictionAlgorithmSettings ):
1498-
1496+ class _RandomForestSettingsBase (PredictionAlgorithmSettings ):
14991497 def __init__ (self , raw_settings , hyperparameter_search_params ):
1500- super (RandomForestSettings , self ).__init__ (raw_settings , hyperparameter_search_params )
1498+ super (_RandomForestSettingsBase , self ).__init__ (raw_settings , hyperparameter_search_params )
15011499 self .n_estimators = self ._register_numerical_hyperparameter ("n_estimators" )
15021500 self .min_samples_leaf = self ._register_numerical_hyperparameter ("min_samples_leaf" )
15031501 self .max_tree_depth = self ._register_numerical_hyperparameter ("max_tree_depth" )
@@ -1507,10 +1505,19 @@ def __init__(self, raw_settings, hyperparameter_search_params):
15071505 self .selection_mode = self ._register_single_category_hyperparameter ("selection_mode" , accepted_values = ["sqrt" , "log2" , "number" , "prop" ])
15081506
15091507
1510- class LightGBMSettings (PredictionAlgorithmSettings ):
1508+ class TimeseriesRandomForestSettings (_RandomForestSettingsBase ):
1509+ pass
1510+
15111511
1512+ class RandomForestSettings (_RandomForestSettingsBase ):
15121513 def __init__ (self , raw_settings , hyperparameter_search_params ):
1513- super (LightGBMSettings , self ).__init__ (raw_settings , hyperparameter_search_params )
1514+ super (RandomForestSettings , self ).__init__ (raw_settings , hyperparameter_search_params )
1515+ self .allow_sparse_matrices = self ._register_single_value_hyperparameter ("allow_sparse_matrices" , accepted_types = [bool ])
1516+
1517+
1518+ class _LightGBMSettingsBase (PredictionAlgorithmSettings ):
1519+ def __init__ (self , raw_settings , hyperparameter_search_params ):
1520+ super (_LightGBMSettingsBase , self ).__init__ (raw_settings , hyperparameter_search_params )
15141521 self .boosting_type = self ._register_categorical_hyperparameter ("boosting_type" )
15151522 self .num_leaves = self ._register_numerical_hyperparameter ("num_leaves" )
15161523 self .learning_rate = self ._register_numerical_hyperparameter ("learning_rate" )
@@ -1521,9 +1528,6 @@ def __init__(self, raw_settings, hyperparameter_search_params):
15211528 self .colsample_bytree = self ._register_numerical_hyperparameter ("colsample_bytree" )
15221529 self .reg_alpha = self ._register_numerical_hyperparameter ("reg_alpha" )
15231530 self .reg_lambda = self ._register_numerical_hyperparameter ("reg_lambda" )
1524-
1525- self .early_stopping = self ._register_single_value_hyperparameter ("early_stopping" , accepted_types = [bool ])
1526- self .early_stopping_rounds = self ._register_single_value_hyperparameter ("early_stopping_rounds" , accepted_types = [int ])
15271531 self .random_state = self ._register_single_value_hyperparameter ("random_state" , accepted_types = [int ])
15281532 self .n_jobs = self ._register_single_value_hyperparameter ("n_jobs" , accepted_types = [int ])
15291533 self .max_depth = self ._register_single_value_hyperparameter ("max_depth" , accepted_types = [int ])
@@ -1532,6 +1536,18 @@ def __init__(self, raw_settings, hyperparameter_search_params):
15321536 self .use_bagging = self ._register_single_value_hyperparameter ("use_bagging" , accepted_types = [bool ])
15331537
15341538
1539+ class TimeseriesLightGBMSettings (_LightGBMSettingsBase ):
1540+ pass
1541+
1542+
1543+ class LightGBMSettings (_LightGBMSettingsBase ):
1544+ def __init__ (self , raw_settings , hyperparameter_search_params ):
1545+ super (LightGBMSettings , self ).__init__ (raw_settings , hyperparameter_search_params )
1546+ self .early_stopping = self ._register_single_value_hyperparameter ("early_stopping" , accepted_types = [bool ])
1547+ self .early_stopping_rounds = self ._register_single_value_hyperparameter ("early_stopping_rounds" , accepted_types = [int ])
1548+ self .allow_sparse_matrices = self ._register_single_value_hyperparameter ("allow_sparse_matrices" , accepted_types = [bool ])
1549+
1550+
15351551class TabICLSettings (PredictionAlgorithmSettings ):
15361552
15371553 def __init__ (self , raw_settings , hyperparameter_search_params ):
@@ -1551,10 +1567,10 @@ def __init__(self, raw_settings, hyperparameter_search_params):
15511567 self .outlier_threshold = self ._register_single_value_hyperparameter ("outlier_threshold" )
15521568
15531569
1554- class XGBoostSettings (PredictionAlgorithmSettings ):
1570+ class _XGBoostSettingsBase (PredictionAlgorithmSettings ):
15551571
15561572 def __init__ (self , raw_settings , hyperparameter_search_params ):
1557- super (XGBoostSettings , self ).__init__ (raw_settings , hyperparameter_search_params )
1573+ super (_XGBoostSettingsBase , self ).__init__ (raw_settings , hyperparameter_search_params )
15581574 self .max_depth = self ._register_numerical_hyperparameter ("max_depth" )
15591575 self .learning_rate = self ._register_numerical_hyperparameter ("learning_rate" )
15601576 self .gamma = self ._register_numerical_hyperparameter ("gamma" )
@@ -1575,8 +1591,6 @@ def __init__(self, raw_settings, hyperparameter_search_params):
15751591 self .missing = self ._register_single_value_hyperparameter ("missing" , accepted_types = [int , float ])
15761592 self .tree_method = self ._register_single_category_hyperparameter ("tree_method" , accepted_values = ["auto" , "exact" , "approx" , "hist" ])
15771593 self .seed = self ._register_single_value_hyperparameter ("seed" , accepted_types = [int ])
1578- self .enable_early_stopping = self ._register_single_value_hyperparameter ("enable_early_stopping" , accepted_types = [bool ])
1579- self .early_stopping_rounds = self ._register_single_value_hyperparameter ("early_stopping_rounds" , accepted_types = [int ])
15801594 self .tweedie_variance_power = self ._register_single_value_hyperparameter ("tweedie_variance_power" , accepted_types = [int , float ])
15811595
15821596 @property
@@ -1614,6 +1628,18 @@ def gpu_tree_method(self, value):
16141628 self .tree_method .set_value (value )
16151629
16161630
1631+ class TimeseriesXGBoostSettings (_XGBoostSettingsBase ):
1632+ pass
1633+
1634+
1635+ class XGBoostSettings (_XGBoostSettingsBase ):
1636+ def __init__ (self , raw_settings , hyperparameter_search_params ):
1637+ super (XGBoostSettings , self ).__init__ (raw_settings , hyperparameter_search_params )
1638+ self .enable_early_stopping = self ._register_single_value_hyperparameter ("enable_early_stopping" , accepted_types = [bool ])
1639+ self .early_stopping_rounds = self ._register_single_value_hyperparameter ("early_stopping_rounds" , accepted_types = [int ])
1640+ self .allow_sparse_matrices = self ._register_single_value_hyperparameter ("allow_sparse_matrices" , accepted_types = [bool ])
1641+
1642+
16171643class GradientBoostedTreesSettings (PredictionAlgorithmSettings ):
16181644
16191645 def __init__ (self , raw_settings , hyperparameter_search_params ):
@@ -1866,6 +1892,71 @@ def __init__(self, raw_settings, hyperparameter_search_params):
18661892 self .maxiter = self ._register_single_value_hyperparameter ("maxiter" , accepted_types = [int ])
18671893
18681894
1895+ class ArimaSettings (PredictionAlgorithmSettings ):
1896+ def __init__ (self , raw_settings , hyperparameter_search_params ):
1897+ super (ArimaSettings , self ).__init__ (raw_settings , hyperparameter_search_params )
1898+ self .p = self ._register_single_value_hyperparameter ("p" , accepted_types = [int ])
1899+ self .d = self ._register_single_value_hyperparameter ("d" , accepted_types = [int ])
1900+ self .q = self ._register_single_value_hyperparameter ("q" , accepted_types = [int ])
1901+ self .P = self ._register_single_value_hyperparameter ("P" , accepted_types = [int ])
1902+ self .D = self ._register_single_value_hyperparameter ("D" , accepted_types = [int ])
1903+ self .Q = self ._register_single_value_hyperparameter ("Q" , accepted_types = [int ])
1904+ self .s = self ._register_single_value_hyperparameter ("s" , accepted_types = [int ])
1905+ self .trend = self ._register_single_category_hyperparameter ("trend" , accepted_values = ["n" , "c" , "t" , "ct" ])
1906+ self .trend_offset = self ._register_single_value_hyperparameter ("trend_offset" , accepted_types = [int ])
1907+ self .enforce_stationarity = self ._register_single_value_hyperparameter ("enforce_stationarity" , accepted_types = [bool ])
1908+ self .enforce_invertibility = self ._register_single_value_hyperparameter ("enforce_invertibility" , accepted_types = [bool ])
1909+ self .concentrate_scale = self ._register_single_value_hyperparameter ("concentrate_scale" , accepted_types = [bool ])
1910+
1911+
1912+ class CrostonSettings (PredictionAlgorithmSettings ):
1913+ def __init__ (self , raw_settings , hyperparameter_search_params ):
1914+ super (CrostonSettings , self ).__init__ (raw_settings , hyperparameter_search_params )
1915+ self .variant = self ._register_categorical_hyperparameter ("variant" )
1916+ self .alpha_d = self ._register_numerical_hyperparameter ("alpha_d" )
1917+ self .alpha_p = self ._register_numerical_hyperparameter ("alpha_p" )
1918+
1919+
1920+ class ETSSettings (PredictionAlgorithmSettings ):
1921+
1922+ def __init__ (self , raw_settings , hyperparameter_search_params ):
1923+ super (ETSSettings , self ).__init__ (raw_settings , hyperparameter_search_params )
1924+ self .trend = self ._register_categorical_hyperparameter ("trend" )
1925+ self .damped_trend = self ._register_categorical_hyperparameter ("damped_trend" )
1926+ self .seasonal = self ._register_categorical_hyperparameter ("seasonal" )
1927+ self .error = self ._register_categorical_hyperparameter ("error" )
1928+ self .seasonal_periods = self ._register_single_value_hyperparameter ("seasonal_periods" , accepted_types = [int ])
1929+ self .include_unstable = self ._register_single_value_hyperparameter ("include_unstable" , accepted_types = [bool ])
1930+ self .seed = self ._register_single_value_hyperparameter ("seed" , accepted_types = [int ])
1931+
1932+
1933+ class NHITSSettings (PredictionAlgorithmSettings ):
1934+ def __init__ (self , raw_settings , hyperparameter_search_params ):
1935+ super (NHITSSettings , self ).__init__ (raw_settings , hyperparameter_search_params )
1936+ self .context_length = self ._register_numerical_hyperparameter ("context_length" )
1937+ self .learning_rate = self ._register_numerical_hyperparameter ("learning_rate" )
1938+ self .batch_size = self ._register_single_value_hyperparameter ("batch_size" , accepted_types = [int ])
1939+ self .max_steps = self ._register_single_value_hyperparameter ("max_steps" , accepted_types = [int ])
1940+ self .patience = self ._register_single_value_hyperparameter ("patience" , accepted_types = [int ])
1941+ self .random_state = self ._register_single_value_hyperparameter ("random_state" , accepted_types = [int ])
1942+
1943+
1944+ class TFTSettings (PredictionAlgorithmSettings ):
1945+ def __init__ (self , raw_settings , hyperparameter_search_params ):
1946+ super (TFTSettings , self ).__init__ (raw_settings , hyperparameter_search_params )
1947+ self .context_length = self ._register_numerical_hyperparameter ("context_length" )
1948+ self .hidden_size_factor = self ._register_numerical_hyperparameter ("hidden_size_factor" )
1949+ self .learning_rate = self ._register_numerical_hyperparameter ("learning_rate" )
1950+ self .n_rnn_layers = self ._register_numerical_hyperparameter ("n_rnn_layers" )
1951+ self .n_head = self ._register_numerical_hyperparameter ("n_head" )
1952+ self .batch_size = self ._register_single_value_hyperparameter ("batch_size" , accepted_types = [int ])
1953+ self .max_steps = self ._register_single_value_hyperparameter ("max_steps" , accepted_types = [int ])
1954+ self .patience = self ._register_single_value_hyperparameter ("patience" , accepted_types = [int ])
1955+ self .random_state = self ._register_single_value_hyperparameter ("random_state" , accepted_types = [int ])
1956+ self .max_hidden_size = self ._register_single_value_hyperparameter ("max_hidden_size" , accepted_types = [int ])
1957+ self .limit_hidden_size = self ._register_single_value_hyperparameter ("limit_hidden_size" , accepted_types = [bool ])
1958+
1959+
18691960class SeasonalLoessSettings (PredictionAlgorithmSettings ):
18701961
18711962 def __init__ (self , raw_settings , hyperparameter_search_params ):
@@ -2377,6 +2468,15 @@ def get_algorithm_settings(self, algorithm_name):
23772468class DSSTimeseriesForecastingMLTaskSettings (AbstractTabularPredictionMLTaskSettings ):
23782469 __doc__ = []
23792470 _algorithm_remap = {
2471+ "ARIMA" : PredictionAlgorithmMeta ("arima_timeseries" , ArimaSettings ),
2472+ "CROSTON" : PredictionAlgorithmMeta ("croston_timeseries" , CrostonSettings ),
2473+ "ETS" : PredictionAlgorithmMeta ("ets_timeseries" , ETSSettings ),
2474+ "NHITS" : PredictionAlgorithmMeta ("nhits_timeseries" , NHITSSettings ),
2475+ "TFT" : PredictionAlgorithmMeta ("tft_timeseries" , TFTSettings ),
2476+ "RANDOM_FOREST_REGRESSION" : PredictionAlgorithmMeta ("random_forest_regression" , TimeseriesRandomForestSettings ),
2477+ "XGBOOST_REGRESSION" : PredictionAlgorithmMeta ("xgboost" , TimeseriesXGBoostSettings ),
2478+ "RIDGE_REGRESSION" : PredictionAlgorithmMeta ("ridge_regression" , RidgeRegressionSettings ),
2479+ "LIGHTGBM_REGRESSION" : PredictionAlgorithmMeta ("lightgbm_regression" , TimeseriesLightGBMSettings ),
23802480 "TRIVIAL_IDENTITY_TIMESERIES" : PredictionAlgorithmMeta ("trivial_identity_timeseries" ),
23812481 "SEASONAL_NAIVE" : PredictionAlgorithmMeta ("seasonal_naive_timeseries" , SeasonalNaiveSettings ),
23822482 "AUTO_ARIMA" : PredictionAlgorithmMeta ("autoarima_timeseries" , AutoArimaSettings ),
0 commit comments