Open source в Университете ИТМО: фреймворк для AutoML и библиотека алгоритмов выбора признаков
Мы рассказываем не только о личном опыте учеников, делимся практическими руководствами и публикуем истории студенческих стартапов, но и обсуждаем подходы к развитию карьеры — например, в области машинного обучения и проектирования алгоритмов. Сегодня раскроем последнюю тему с несколько иной стороны и представим вашему вниманию парочку open source фреймворков от представителей ИТМО — со ссылками на репозитории и понятным описанием.
FEDOT
Это — AutoML-фреймворк, разработанный в НЦКР ИТМО. Его используют для автоматического формирования нелинейных пайплайнов, предназначенных для решения сложных задач моделирования. В отличие от большинства существующих инструментов он позволяет единообразно работать с разными типами данных (от таблиц до картинок и текстов) и задачами (классификацией, регрессией прогнозированием временных рядов) в рамках пайплайна. Словом, моделировать комплексные и многокомпонентные природные и технические процессы.
Обычно с такими решениями работают дата-сайентисты, специалисты из прикладных сфер и ученые в области AI/ML. Фреймворки вроде FEDOT помогают им автоматизировать рутину, сократить время на поиск эффективных решений, актуализировать существующие модели или заниматься их генеративным дизайном.
Разработку проекта ведут на Python, плюс — используют библиотеки для машинного обучения и моделирования: scikit-learn, keras, hyperopt и другие. Для обеспечения надежности разработчики покрыли все значимые классы и методы модульными и интеграционными тестами.
Как говорят представители проекта, FEDOT не имеет прямых аналогов, но задействует максимум из лучших практик. Ядро фреймворка построено по модульному принципу. Оно включает эволюционный оптимизатор структуры моделей, анализатор структурной чувствительности, модуль настройки гиперпараметров, репозиторий моделей, операций и их мета-данных. Каждый из блоков можно бесшовно менять, что упрощает кастомизацию под новые задачи, а поверх ядра — реализовывать решения вроде оптимизатора структуры сверточных нейронных сетей.
Инструмент неоднократно проверяли как на пробных, так и на «боевых» задачах. Например, из таких областей как гидрометеорология, финансы и нефтехимия. Особенную эффективность FEDOT показал на задаче прогнозирования временных рядов. Еще команда лаборатории задействовала его на хакатонах вроде Emergency DataHack, где заняла первое место в одном из тематических треков, плюс — в ходе подготовки научных работ (1, 2, 3, 4, 5, 6).
Разработчики рекомендуют изучить их более развернутые публикации по теме на Хабре (раз, два) и призывают к участию в жизни проекта. Они открыты для обратной связи (Telegram-чат) и совершенствования того, что уже есть в репозитории (еще один для веб-интерфейса).
ITMO FS
Это — открытая библиотека алгоритмов выбора признаков Лаборатории машинного обучения ИТМО. Она позволяет снизить размерность данных — сократить число переменных, вычленяя значения, наибольшим образом влияющие на результат, и таким образом повысить эффективность модели (опыт коллег из ML-лаборатории показывает, что исключение дублирующих признаков увеличивает точность классификации с 0,903 до 0,943).
Выбор признаков позволяет сохранить семантику (не меняет их исходный смысл), поэтому его часто используют в биоинформатике и медицине — для диагностики раковых заболеваний, построения прогностических моделей фенотипических характеристик (например, возраста человека) и синтеза препаратов.
Наиболее распространенные библиотеки машинного обучения на Python — вроде scikit-learn, pytorch, keras, tensorflow — не обладают полноценным набором методов выбора признаков. Поэтому студенты и аспиранты Университета ИТМО разработали открытую библиотеку ITMO_FS. Пользоваться ей могут как представители научного сообщества, так и широкой общественности, интересующиеся машинным обучением и анализом данных, в том числе студенты, представители образовательных учреждений, медицинских структур, IT-компаний и не только.
Библиотека поддерживает все классические подходы к отбору признаков: фильтры, обертки и встраиваемые методы. Среди них есть фильтры на основе корреляций Спирмена и Пирсона, критерий соответствия, QPFS, hill climbing filter и другие. Еще ITMO_FS поддерживает обучение ансамблей за счет объединения алгоритмов выбора признаков по используемым в них мерам значимости (для высоких прогностических результатов при низких временных затратах).
Проект содержит более шести десятков алгоритмов, в том числе гибридных и ансамблирующих, что делает его крупнейшей библиотекой алгоритмов выбора признаков на Python. В ближайшее время авторы планируют интегрировать ее со scikit-learn, добавив ITMO_FS в список официально совместимых библиотек, плюс — продолжить расширение числа задействованных алгоритмов выбора признаков, включая собственные разработки. Помимо этого — внедрить библиотеку в систему мета-обучения, добавить алгоритмы прямой работы с матричными данными (заполнение пропусков, генерация данных мета-признакового пространства и так далее) и графический интерфейс. Параллельно с этим — проводить хакатоны с использованием библиотеки.
Конечно же, авторы поделились публичным репозиторием проекта.
Что еще есть в нашем блоге на Хабре: