Closed Lopa10ko closed 6 months ago
Hello @Lopa10ko! 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! :beers:
All modified and coverable lines are covered by tests :white_check_mark:
Comparison is base (
9d9469f
) 79.27% compared to head (90f45cf
) 79.16%. Report is 4 commits behind head on master.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Проверка проводилась только для синтетических данных и, как я понял, в этих данных были только численные признаки, так?
Пайплайны строились из одной ноды, в которой находилась проверяемая операция?
Проверка проводилась только для синтетических данных и, как я понял, в этих данных были только численные признаки, так?
Данные только синтетические и только численные.
Пайплайны строились из одной ноды, в которой находилась проверяемая операция?
Да. Для временных рядов еще добавлялся lagged
.
Проверка проводилась только для синтетических данных и, как я понял, в этих данных были только численные признаки, так?
Данные только синтетические и только численные.
Кмк, этого не достаточно. Например, с категориальными для RF потребуется преобразовать их в OHE и это увеличит время. А, например, для CatBoost этого не нужно делать, и по идеи он выполнится быстрее, но однако он в финальную выборку в классификацию даже не попал.
Пайплайны строились из одной ноды, в которой находилась проверяемая операция?
Да. Для временных рядов еще добавлялся
lagged
.
А есть ли смысл проверять тогда операции 'resample' и 'one_hot_encoding'? Кажется, они даже не срабатывают и сейчас показывают время пустого прохода через код. Первый возможно потому что класса сбалансированы, а для второго требуется категориальные признаки, чтобы он их начал преобразовывать.
Также я бы разграничил все три задачи на три категории и сравнивал независимо. То есть, для задач TS не брал за эталон RF.
Например, с категориальными для RF потребуется преобразовать их в OHE и это увеличит время
Тест необходим для того, чтобы принципиально медленные алгоритмы не попали в fast-train
. Вопрос скорости работы лесов с OHE
- это проблема этапа предобработки.
для CatBoost этого не нужно делать, и по идеи он выполнится быстрее
Согласен. Вообще, раз уж заходит про это речь, я бы убрал RF
из fast-train
и заменил его на CB
. По тестам CB
быстрее, плюс отлично работает на произвольных данных. Что скажешь?
А есть ли смысл проверять тогда операции 'resample' и 'one_hot_encoding'? Кажется, они даже не срабатывают и сейчас показывают время пустого прохода через код. Первый возможно потому что класса сбалансированы, а для второго требуется категориальные признаки, чтобы он их начал преобразовывать.
В таком случае смысла нет. Пропустим их.
Также я бы разграничил все три задачи на три категории и сравнивал независимо. То есть, для задач TS не брал за эталон RF.
Зачем разграничивать задачи?
А почему не стоит брать за эталон RF
для временных рядов? Задачи с временными рядами в 99,9% случаев сводятся к задаче регрессии.
Тест необходим для того, чтобы принципиально медленные алгоритмы не попали в
fast-train
. Вопрос скорости работы лесов сOHE
- это проблема этапа предобработки.
Тут скорее тесты будут релевантные к датасетам, которые полностью будут состоять из численных признаков. С категориальными возможна другая картина.
Согласен. Вообще, раз уж заходит про это речь, я бы убрал
RF
изfast-train
и заменил его наCB
. По тестамCB
быстрее, плюс отлично работает на произвольных данных. Что скажешь?
CatBoost не попал в таблицу "Операции, которые могут быть с пресетом fast_train
". Возможно есть смысл заменить, но не уверен.
В таком случае смысла нет. Пропустим их.
Хорошо.
Зачем разграничивать задачи?
Сравнение в общей таблицы сейчас общее же и кажется не учитывает разбиение по задачам, или я не прав? Можно также попробовать разграничить графики и использовать заместо matplotlib
, например, plotly
или seaborn
для лучшей визуализации.
А почему не стоит брать за эталон
RF
для временных рядов? Задачи с временными рядами в 99,9% случаев сводятся к задаче регрессии.
А все понял, неправильно прочитал, вы для них сравниваетесь с RFR
.
Тут скорее тесты будут релевантные к датасетам, которые полностью будут состоять из численных признаков. С категориальными возможна другая картина.
Так и задумывалось.
CatBoost не попал в таблицу "Операции, которые могут быть с пресетом
fast_train
". Возможно есть смысл заменить, но не уверен.
Ладно, пока оставим как есть.
Сравнение в общей таблицы сейчас общее же и кажется не учитывает разбиение по задачам, или я не прав? Можно также попробовать разграничить графики и использовать заместо
matplotlib
, например,plotly
илиseaborn
для лучшей визуализации.
Не учитывает, все модели тестируются в одной куче.
Решенные задачи:
rf
и rfr
fast-train
у ransac_non_lin_reg
non-default
ransac_non_lin_reg
ts_naive_average
, lagged
и diff_filter
lagged
- проблема не воспроизвеласьts_naive_average
- проблема воспроизвелась, рост времени выполнения квадратичный или быстрееdiff_filter
- почти строго линейная зависимость времени выполнения от количества данных, но сам фильтр медленный и на объемах в несколько тысяч строк время выполнения измеряется секундами.ts_naive_average
- нужно отрефакторить split_rolling_slices
и _average
в NaiveAverageForecastImplementation
diff_filter
- скорость завязана на сторонние библиотеки.fast_train
для diff_filter
ts_naive_average
fast-train
fast-train
fast_train
IPython
IPython
Test that checks the performance of all operations with synthetic data. Anything slower than Random Forest (
rf
andrfr
) is considered not fast enough for thefast_train
preset.Closes #1182