aimclub / FEDOT

Automated modeling and machine learning framework FEDOT
https://fedot.readthedocs.io
BSD 3-Clause "New" or "Revised" License
635 stars 86 forks source link

The model can not handle short time series data #390

Open zzhang2816 opened 3 years ago

zzhang2816 commented 3 years ago

I follow the instruction in this notebook[https://github.com/ITMO-NSS-team/fedot_electro_ts_case/blob/main/case/traffic_example/simple_automl.ipynb] and replace the dataset with my 12 steps CSV files and get this AttributeError: List became empty after incorrect individuals removing.

zzhang2816 commented 3 years ago

Besides this problem, with the apple m1 chip, there will be an "illegal hardware instruction" error.

J3FALL commented 3 years ago

Hi, @zzhang2816! Thanks for the feedback!

I follow the instruction in this notebook[https://github.com/ITMO-NSS-team/fedot_electro_ts_case/blob/main/case/traffic_example/simple_automl.ipynb] and replace the dataset with my 12 steps CSV files and get this AttributeError: List became empty after incorrect individuals removing.

Could you please provide some details about this issue? At least logs or screenshort will be helpful. Also you can provide original csv file so we can reproduce it (if it is possible). Or additional description of your data.

I will try to reproduce this but some info is needed:

Also if you have run it with fedot == 0.3.0 version, maybe 0.3.1 would fix this.

J3FALL commented 3 years ago

Besides this problem, with the apple m1 chip, there will be an "illegal hardware instruction" error.

That's interesting. Could you provide all logs with this error + some details about your environment? Unfortunately, I haven't a MacBook but some of my colleagues probably can reproduce this.

Probably this could be moved to a separate issue.

Sash0check commented 3 years ago

illegal hardware instruction

I had the same problem (with "illegal hardware instruction"), i fixed it with setting conda environment (python 3.8) an downgrading tensorflow to 2.4.1

zzhang2816 commented 3 years ago

Thank you! Sorry for the later reply. I am not working in the field of time-series data now. The version I used is fedot == 0.3.0, I haven't tried the latest one.

The code I used to forecast. forecast_length = 10 task = Task(TaskTypesEnum.ts_forecasting, TsForecastingParams(forecast_length=forecast_length)) file_path="automl_data" input_data = InputData.from_csv_time_series(task, file_path+"/try.csv", target_column='amount') train_data, test_data = train_test_data_setup(input_data) model = Fedot(problem='ts_forecasting', task_params=task.task_params) chain = model.fit(features=train_data)

The dataset is a faked one. made_on | amount 2021/9/1 | 0.73213577 2021/10/1 | 0.26714114 2021/11/1 | 0.63738793 2021/12/1 | 0.3030249 2022/1/1 | 0.30547461 2022/2/1 | 0.71007168 2022/3/1 | 0.19879187 2022/4/1 | 0.21211337 2022/5/1 | 0.72664726 2022/6/1 | 0.42958665 2022/7/1 | 0.32935114 2022/8/1 | 0.00117 2022/9/1 | 0.77697296 2022/10/1 | 0.78697296

Error message: Traceback (most recent call last): File "a.py", line 29, in chain = model.fit(features=train_data) File "/public/anaconda3/envs/fedot/lib/python3.8/site-packages/fedot/api/main.py", line 204, in fit return self._obtain_model(is_composing_required) File "/public/anaconda3/envs/fedot/lib/python3.8/site-packages/fedot/api/main.py", line 154, in _obtain_model self.current_model, self.best_models = compose_fedot_model(**execution_params) File "/public/anaconda3/envs/fedot/lib/python3.8/site-packages/fedot/api/api_utils.py", line 190, in compose_fedot_model chain_gp_composed = gp_composer.compose_chain(data=train_data) File "/public/anaconda3/envs/fedot/lib/python3.8/site-packages/fedot/core/composer/gp_composer/gp_composer.py", line 130, in compose_chain best_chain = self.optimiser.optimise(metric_function_for_nodes, File "/public/anaconda3/envs/fedot/lib/python3.8/site-packages/fedot/core/composer/optimisers/gp_comp/param_free_gp_optimiser.py", line 75, in optimise self._evaluate_individuals(self.population, objective_function, timer=t) File "/public/anaconda3/envs/fedot/lib/python3.8/site-packages/fedot/core/composer/optimisers/gp_comp/gp_optimiser.py", line 376, in _evaluate_individuals evaluate_individuals(individuals_set=individuals_set, objective_function=objective_function, timer=timer, File "/public/anaconda3/envs/fedot/lib/python3.8/site-packages/fedot/core/composer/optimisers/gp_comp/gp_operators.py", line 130, in evaluate_individuals raise AttributeError('List became empty after incorrect individuals removing.' AttributeError: List became empty after incorrect individuals removing.It can occur because of too short model fitting time constraint