Time series forecasting Timeout and Seed issues #1256
Replies: 4 comments 17 replies
-
Hi @leonardo95. Thanks again for reaching out. To reproduce the results in your case, you might want to try using the from fedot.core.utils import set_random_seed
RANDOM_SEED = 0
if __name__ == '__main__':
set_random_seed(RANDOM_SEED)
# ... your code Could you elaborate more regarding the timeout issue, or perhaps provide some logs proving that the timeout is ignored by composition methods? Also I think your code snippet is facing the same problem as earlier in the discussion #1254. |
Beta Was this translation helpful? Give feedback.
-
Hi @leonardo95. You can also try to limit the fit time for individual pipelines during AutoML using the max_pipeline_fit_time parameter of the Fedot class. Otherwise, the large training time of intermediate candidate solutions can lead to exceeding the common timeout. |
Beta Was this translation helpful? Give feedback.
-
Hi, @leonardo95. I have not run your code but I see what might cause a problem. You want to forecast 720 points that means in terms of multi-target regression that you will fit 720 different models (for example pipeline lagged->rfr will produce 720 random forest regressor instances) And unfortunately it's unreal to fit it in 0.5 or 1 minute. Hope it helps |
Beta Was this translation helpful? Give feedback.
-
Hi, @leonardo95! The changes improving reproducibility in FEDOT (#1278, #1351) have been implemented and merged into the Let us know if you encounter any further issues! |
Beta Was this translation helpful? Give feedback.
-
Hi,
I have some questions regarding the timeout and seed features about the Fedot.
Although I set the timeout, sometimes the FEDOT surpasses that timeout. How can i prevent this? Furthermore, I'm trying to replicate some experiments by defining seeds, but the output is always different even with the same seed.
Here is my code and data:
target_column = "frequency"
task = Task(TaskTypesEnum.ts_forecasting, TsForecastingParams(forecast_length=720))
dataset_path = "data.csv"
train_input = InputData.from_csv_time_series(file_path=dataset_path, task=task, target_column=target_column, delimiter=";")
train_data, test_data = train_test_data_setup(train_input)
model = Fedot(problem='ts_forecasting', task_params= task.task_params, timeout=1, cv_folds= 2, seed = 0)
pipeline = model.fit(train_data)
out_sample_forecast = model.forecast(test_data)
print("First out:", out_sample_forecast)
print('Metrics for out-sample forecast:',
model.get_metrics(metric_names=['rmse', 'mae', 'mape']))
data.csv
model.plot_prediction()
Beta Was this translation helpful? Give feedback.
All reactions