FEDOT
FEDOT copied to clipboard
Technical debt and refactoring
Доработки и рефакторинг после показа:
- ~Отрицательные значения метрик (см. ROC AUC): добавить property для метрик, которые передаются алгоритму оптимизации.~
- ~Хранение reference_data в chain - тут нужно подумать.~
- ~Обработка Nan-ов в EvaluationStrategy~.
- ~Дублирование кода в models. Возможно, добавить прослойку для SKLearn/ML Model~.
- TBA
- ~Необходимость явного deepcopy для моделей и нод, чтобы обеспечить актуальность кэша~
- ~Неочевидные флаги обучения и кэширования в нодах и стратегиях.~
- ~Добавить возможность доращивания цепочки из initial_chain для композера.~
- ~Сделать logging-конфиг и логирование операций.~
- Рефакторинг CRUD-операций над цепочками
- Обсудить использованием enum-ов в repository, composer и т. д и перейти на более pythonic-решения.
~12. Переделать выбор стратегии в model/_eval_strategy_for_task~
- Убрать дублирования из credit scoring-скриптов
~14. Get rid of NodeGenerator in core.~
- Преобразовать гиперпараметры в JSON
"Все-таки, привычнее видеть такие около hardcode-штуки во внешних конфигах. Возможно, какой-нибудь продвинутный json-парсер для питона позволит там вынести эти параметры из скрипта, а также решит полностью или частично проблемы с его валидацией."
- Улучшить тесты на тюнинг. "Кажется, я однажды уже озвучивал идею про тестирование тюнеров - делать заведомо плохие цепочки для конкретного датасета. Например, можно для тестовой цепочки установить некоторые совсем нереалистичные значения. Однако, все равно не гарантируется, что точно найдется за заданное время работы теста решение > исходного. Над этим можно подумать на досуге - как грамотнее тестировать тюнеры."
Refactor model test in https://github.com/nccr-itmo/FEDOT/blob/master/test/models/test_model.py
It should be runned for each model in repository, not just manually added in the test.
- Suggest the more "native" tags for AtomizedModel in ModelTypesRepository
I think it can be closed as obsolete.