Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Debug mode and modified fitness evaluation for for time series #1116

Merged
merged 32 commits into from
Aug 8, 2023

Conversation

nicl-nno
Copy link
Collaborator

@nicl-nno nicl-nno commented Jul 4, 2023

  • Default validation blocks logic for time series foreacasting fitness evaluation was changed:

image
image

  • FEDOT_ANALYTIC_MODE=True param is added
    Output path for debug is C:\Users\user\AppData\Local\Temp\FEDOT\ts_forecasting_debug

Closes #1009

@nicl-nno nicl-nno added the in progress task in progress label Jul 4, 2023
@aim-pep8-bot
Copy link

aim-pep8-bot commented Jul 4, 2023

Hello @nicl-nno! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

There are currently no PEP 8 issues detected in this Pull Request. Cheers! 🍻

Comment last updated at 2023-08-08 10:08:53 UTC

@codecov
Copy link

codecov bot commented Jul 5, 2023

Codecov Report

Merging #1116 (02ccd27) into master (cda892d) will decrease coverage by 2.22%.
Report is 5 commits behind head on master.
The diff coverage is 71.62%.

@@            Coverage Diff             @@
##           master    #1116      +/-   ##
==========================================
- Coverage   78.32%   76.11%   -2.22%     
==========================================
  Files         130      136       +6     
  Lines        9321     9656     +335     
==========================================
+ Hits         7301     7350      +49     
- Misses       2020     2306     +286     
Files Changed Coverage Δ
fedot/api/api_utils/api_params_repository.py 96.66% <ø> (-0.11%) ⬇️
fedot/api/fedot_cli.py 0.00% <ø> (ø)
...t/core/pipelines/pipeline_composer_requirements.py 100.00% <ø> (ø)
fedot/core/data/visualisation.py 15.49% <16.66%> (-0.39%) ⬇️
fedot/core/composer/random_composer.py 52.94% <33.33%> (-3.31%) ⬇️
fedot/core/composer/metrics.py 93.90% <50.00%> (-3.38%) ⬇️
fedot/api/api_utils/input_analyser.py 84.28% <87.50%> (ø)
.../core/optimisers/objective/data_source_splitter.py 95.77% <96.15%> (+5.97%) ⬆️
fedot/api/api_utils/params.py 89.32% <100.00%> (+0.74%) ⬆️
fedot/api/main.py 56.03% <100.00%> (-0.16%) ⬇️
... and 3 more

... and 15 files with indirect coverage changes

@kasyanovse kasyanovse self-requested a review July 24, 2023 13:57
Validation block count is calculated from split_ratio

Validation blocks are removed from Fedot but retain in metrics
@kasyanovse kasyanovse linked an issue Jul 27, 2023 that may be closed by this pull request
Copy link
Collaborator

@YamLyubov YamLyubov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Правильно ли я поняла, что идея в том, чтобы пользователь сам не устанавливал validation_blocks? Ниже расписала проблему, которую вижу с этим. Логика, конечно, не самая очевидная, но надеюсь я более-менее объяснила. Надо бы пройтись по коду и по примерам - проверить, что с этим все нормально.

@kasyanovse kasyanovse requested a review from YamLyubov August 1, 2023 14:28
@kasyanovse kasyanovse linked an issue Aug 2, 2023 that may be closed by this pull request
Copy link
Collaborator

@YamLyubov YamLyubov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Стоит еще обновить документацию для time series forecasing в этом или следующем pr. https://fedot.readthedocs.io/en/latest/basics/ts_forecasting.html

@kasyanovse kasyanovse requested a review from YamLyubov August 8, 2023 07:22
With out-of-sample approach we would predict 10 values and then use those values to forecast
another 10 values. But with in-sample approach we forecast already known parts of
time-series. And after forecasting first 10 values we would use real values from time-series
to forecast next 10 values.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Так что, вариант out-of-sample вообще выпилили? Вот кажется что нет, может тогда описание принципа оставить?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Логично. Перенес в раздел Prediction.

Comment on lines +108 to +111
self.log.info((f"Cross validation with {self.cv_folds} folds cannot be provided"
f" with forecast length {data.task.task_params.forecast_length}"
f" and full data length {data.target.shape[0]}."
f" Cross validation folds is set to {proposed_cv_folds_count}"))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Так блоков же достаточное количество, cannot be provided - опечатка или я чего-то не понимаю?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cannot be provided - это для старого количества блоков self.cv_folds.
Новое, достаточное, - proposed_cv_folds_count.

@kasyanovse kasyanovse merged commit 8f1dcd7 into master Aug 8, 2023
@kasyanovse kasyanovse deleted the ts-opt-analytics branch August 11, 2023 06:51
@aPovidlo aPovidlo restored the ts-opt-analytics branch January 27, 2024 15:27
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
in progress task in progress
Projects
None yet
5 participants