Учебный курс по Data Science (ML, AI)
MLOps, или DevOps для машинного обучения, позволяет специалистам по обработке данных и ИТ-специалистам сотрудничать и ускорять разработку и развертывание моделей за счет мониторинга, проверки и управления моделями машинного обучения.
Мы внедряем автоматизацию принятия решений в широкий спектр приложений, и это создает множество технических проблем, возникающих при создании и развертывании систем на основе машинного обучения.
Чтобы понять MLOps, мы должны сначала понять жизненный цикл систем ML, в котором участвуют несколько разных команд data-driven организации.
- Data Engineering — сбор и подготовка данных.
- Data Science — проектирование решений машинного обучения и разработка моделей.
-
IT или DevOps— полная настройка развертывания, мониторинг вместе с разработчиками.
- Пример решения задачи по машинному обучению на Python
- Топ-5 инструментов для разметки данных в 2021 году
- Practitioners guide to MLOps: A framework for continuous delivery and automation of machine learning
Методы Data Science
(документация по применению в системах BI - в разделе "скачать")
Алгоритмы и модели машинного обучения, реализованные с помощью языка программирования Python.
- Допущения алгоритмов машинного обучения
- Лучшие подходы к анализу настроений
- Алгоритмы многоклассовой классификации
- Алгоритмы двоичной классификации
- Алгоритмы кластеризации
- Архитектура LeNet-5
- Введение и подходы к созданию систем рекомендаций
- Примеры использования алгоритмов машинного обучения
- Кластеризация сдвига среднего
- Мини-пакетная кластеризация K-средних
- Грамматическая разметка частей речи
- Метрики оценки эффективности
- Полиномиальный наивный байесовский метод
- Бернулли Наивный Байес
- Агломеративная кластеризация
- VisualKeras для визуализации нейронной сети
- Стохастический градиентный спуск
- Объясненная дисперсия
- Оценка F-Beta
- Классификационный отчет
- Пассивно-агрессивная регрессия
- Оценка R2
- Ленивый прогноз
- FLAML
- Алгоритм t-SNE
- Учебное пособие по AutoKeras
- Смещение и отклонение
- Персептрон
- Многослойный персептрон
- Методы балансировки классов
- «Один ко многим» и «один к одному» в машинном обучении
- Полиномиальная регрессия
- Кластеризация BIRCH в машинном обучении
- Независимый компонентный анализ
- Ядро PCA
- Редкий PCA
- Факторизация неотрицательных матриц
- Учебник по нейронным сетям
- PyCaret
- Руководство по Scikit-learn
- Учебное пособие по NLTK
- Учебное пособие по TextBlob
- Учебное пособие по Streamlit
- Кластеризация DBSCAN
- Наивный Байес
- Пассивно-агрессивный классификатор
- Повышение градиента (используется при реализации алгоритма Instagram)
- Логистическая регрессия
- Линейная регрессия
- Кластеризация K-средних
- Уменьшение размерности
- Анализ главных компонентов
- Автоматический EDA
- Масштабирование функций
- Алгоритм Априори с использованием Python
- K-ближайший сосед
- CatBoost
- SMOTE
- Проверка гипотез (обычно используется при обнаружении выбросов)
- Контентная фильтрация
- Совместная фильтрация
- Косинусное подобие
- Tf-Idf векторизация
- Перекрестная проверка
- Матрица неточностей в машинном обучении
- Алгоритмы поиска на графах с Python
- StandardScaler в машинном обучении
- SARIMA
- ARIMA
- Кривая Auc и ROC
- Алгоритм XGBoost
- BERT в машинном обучении
- NeuralProphet
- Алгоритм AdaBoost
- Алгоритм случайного леса
- Алгоритм полиномиальной регрессии
- Алгоритм градиентного спуска
- Многообразное обучение
- Деревья решений
- Руководство по SVM (Support-Vector Machine или Опорно-векторная машина) с использованием Python
- Нейронные сети
- FastAI
- LightGBM
- Pyforest в Python
- Модели машинного обучения, которые должен знать каждый специалист по даннымт
Все вышеперечисленные алгоритмы описаны с использованием языка программирования Python. Это – самые распространенные и часто используемые алгоритмы машинного обучения.
Услуги в области Data Science, ML от BI Consult
- Прогнозная аналитика: предотвращение мошенничества, прогнозирование поведения клиентов, выявление неисправностей и отклонений от норм, прогнозирование времени доставки, объема спроса и др.
- Управление опытом клиента, системы персонализированных рекомендаций, повышение точности таргетирования маркетинговых кампаний
- Распознавание объектов, анализ видеопотока, автоматизированный визуальный контроль с использованием технологий компьютерного зрения
- Поиск информации в каталогах и хранилищах данных
- Автоматизированная классификация и обработка документов
- Анализ эмоциональной окраски сообщений в соцсетях, на форумах, в СМИ
- Обработка речи, речевое управление, применение чат-ботов
Серия постов @boris_again о минимальных навыков software engineering для аналитики данных и ML. От командной строки и докера до стиля кода
# Минимальные знания Software Engineering для Data Scientist 1/3
## Git
Интерактивный туториал
Краткий курс по Git от Github
Git (или другая VCS) каждый день использует любой адекватный программист. Стоит инвестировать время не только в заучивание трех команд, а в понимание принципа работы. К счастью основы изучаются за пару вечеров, а большего и не надо. DS должно быть не сложно понять идею, ведь про графы и деревья вы наверное слышали. Только не используйте никаких GUI клиентов для Git по крайней мере пока учитесь! Например надо понимать разницу между git add и git commit, но GUI клиенты часто заменяют их одной кнопкой.
## Linux
The Linux command line for beginners
Если вы работаете из под Windows, то как можно быстрее бросайте это дело (если у вас уже Mac или Linux, то этот пункт можете пропустить). Считайте, что Python разработки под Windows не бывает. Не умея пользоваться линуксом вы беспомощны. Как слезть с иглы: поставьте себе Ubuntu и работайте только из под нее, а Windows оставьте для игр. Я бы не советовал пользоваться WSL, потому что это полумера, но и это подойдет как крайний вариант. Главное, чтобы вас не пугали фразы уровня “зайди на VPS по ssh по ключу, прокинь симлинк для этой штуки.” Иначе вы в большинстве команд будете тем парнем, которому надо постоянно помогать.
## Библиотеки и зависимости в Python
Python virtual environments: A Primer
Обязательное чтение про менеджмент библиотек и зависимостей в Python. Вы должны быть способны разрабатывать несколько DS проектов с конфликтующими зависимостями (один требует pytorch v1.12, второй v1.4) без использования Anaconda. Так не обязательно делать, но вы должны быть способны. Для вас не должно быть проблемой сделать так, чтобы проект запускался с одинаковыми версиями библиотек у вас, у вашего коллеги и на сервере.
## Практический Python
The Hitchiker’s Guide to Python
Чтение о практическом применении Python. Бесплатная, короткая и по делу написанная книга.
Особенное внимание:
Глава про структуру кода
Содержит очень важную информацию про модули и пакеты в Python (так же см. официальную документацию).
Для закрепления: взять любой свой проект и красиво разбить его на модули.
Глава про стиль кода
Стиль кода это недооцененная (особенно среди DS), но очень важная вещь. От умения писать код зависит, будут ваши коллеги плевать вам в чай или нет. Умение писать читабельный код сэкономит вам уйму времени даже если вы только прототипируете модели и вам никогда не придется поддерживать проекты. Решая Kaggle вы бы скорее хотели искать ошибки в коде или пробовать новые варианты решения?
Прочитали один раз - пишете код лучше, чем большинство DS. Бесплатное преимущество!
Для закрепления: написать любую программу максимально красиво. Достаточно даже задачи с Leetcode. Хороший критерий успеха: вы отложили код на две недели, вернулись и все еще понимаете, что в нем происходит.
Глава про тесты и гайд для pytest
Способность писать тесты отличает дилетанта от программиста. Знание о том, как писать тесты, навсегда меняет подход к написанию любого кода: просто понимаешь, какой код более вероятно содержит скрытые косяки. Минус: паранойя навсегда, потому узнаешь, что весь код без покрытия автотестами сломан. Это очень важно даже если вы только учить модели. Если ваш код невозможно затащить в прод, то вы беспомощны и возможно даже бесполезны.
Для закрепления: покрыть тестами свою программу. Бонусные очки, если вы покрываете тестами ML решение, потому что это довольно нетривиальная задача.
## Читаем код
Узнав про то, что такое модульный и читабельный код, изучаем его экземпляры в дикой природе. Просто читаем, вникаем что и откуда берется, задаем себе вопросы: “почему здесь так?”, “что это такое?”, “зачем это здесь?” Это симуляция ситуации, когда вам нужно работать с кодом коллеги. Только в реальной жизни код не будет хорошим.
Советую исходный код этой небольшой библиотеки для табличек: https://github.com/jazzband/tablib
Более продвинутый уровень, если в библиотеке выше уже все понятно: https://github.com/pallets/flask
# Минимальные знания Software Engineering для Data Scientist 2/3
## Память в Python
Читаем как Python работает с памятью, чтобы никогда больше не потеть на вопросе про GIL. По части DS позволяет лучше утилизировать железо, не делать глупостей вроде лишних копирований гигантских массивов и лучше интуитивно понимать работу кода.
Статья раз
Статья два
## HTTP
HTTP это то, на чем держится веб: когда вы открываете сайты, скачиваете датасеты, пользуетесь API. Инференс и деплой ML моделей почти всегда связан с HTTP.
Изучаем теорию:
Статья попроще
Статья подлиннее
Проходим туториал: Python’s Requests Library Guide
## Sklearn Pipelines
Sklearn Pipelines User Guide
С одной стороны без Sklearn в ML практически никуда и Pipeline это большая его киллер-фича, которая экономит уйму времени, позволяет избежать ошибок и упрощает перенос кода в продакшн. Но более важно то, что парадигма пайплайнов, то есть обработки данных через серию последовательных шагов, повсеместно встречается в ML экосистеме. Пайплайны в Sklearn это отличное введение. Познакомившись с ними будет гораздо проще осваивать популярные ML инструменты.
Для закрепления: берем ML задачу, которую решали (хоть Титаник на Kaggle) и переписываем с использованием Pipeline.
## SQL
https://sqlbolt.com/ - Проходим туториал вплоть до 12 урока.
Без SQL никуда. Чаще всего данные для моделей появляются когда мы заклинаем базы данных языком SQL.
Нас интересует все, касается запросов к существующим таблицам. Для минимального пути можно опустить все что касается вставок и создания таблиц.
Если вы хотите стать настоящим самураем SQL и быть круче большинства аналитиков, то надо взобраться на эту гору: www.sql-ex.ru
## Docker
Официальный туториал по Docker
Docker становится таким же необходимым, как Git. Позволяет паковать любой код в контейнеры, которые ведут себя как виртуальные машины, но делают это быстро. На практике это означает, что можно очень быстро разворачивать и сворачивать целые экосистемы прямо на своем ноуте. Хочешь базу данных: пара консольных команд и получаешь контейнер с базой данных. Хочешь Spark: пара команд и у тебя есть Spark. Хочешь, чтобы все это работало в продакшне так, как работает на твоем ноутбуке: легко, главное выполни на сервере ту же самую пару команд.
Для закрепления: берем любую свою программу (бонус очки: берем ML задачу из пункта про Pipeline) и делаем так, чтобы она запускалась в контейнере. Еще лучше если у вас два контейнера и один обращается к другому. Например в одном контейнере PostgreSQL с парой табличек, а в другом код, который делает запросы к базе данных.
# Минимальные знания Software Engineering для Data Scientist 2/3
## Память в Python
Читаем как Python работает с памятью, чтобы никогда больше не потеть на вопросе про GIL. По части DS позволяет лучше утилизировать железо, не делать глупостей вроде лишних копирований гигантских массивов и лучше интуитивно понимать работу кода.
Статья раз
Статья два
## HTTP
HTTP это то, на чем держится веб: когда вы открываете сайты, скачиваете датасеты, пользуетесь API. Инференс и деплой ML моделей почти всегда связан с HTTP.
Изучаем теорию:
Статья попроще
Статья подлиннее
Проходим туториал: Python’s Requests Library Guide
## Sklearn Pipelines
Sklearn Pipelines User Guide
С одной стороны без Sklearn в ML практически никуда и Pipeline это большая его киллер-фича, которая экономит уйму времени, позволяет избежать ошибок и упрощает перенос кода в продакшн. Но более важно то, что парадигма пайплайнов, то есть обработки данных через серию последовательных шагов, повсеместно встречается в ML экосистеме. Пайплайны в Sklearn это отличное введение. Познакомившись с ними будет гораздо проще осваивать популярные ML инструменты.
Для закрепления: берем ML задачу, которую решали (хоть Титаник на Kaggle) и переписываем с использованием Pipeline.
## SQL
https://sqlbolt.com/ - Проходим туториал вплоть до 12 урока.
Без SQL никуда. Чаще всего данные для моделей появляются когда мы заклинаем базы данных языком SQL.
Нас интересует все, касается запросов к существующим таблицам. Для минимального пути можно опустить все что касается вставок и создания таблиц.
Если вы хотите стать настоящим самураем SQL и быть круче большинства аналитиков, то надо взобраться на эту гору: www.sql-ex.ru
## Docker
Официальный туториал по Docker
Docker становится таким же необходимым, как Git. Позволяет паковать любой код в контейнеры, которые ведут себя как виртуальные машины, но делают это быстро. На практике это означает, что можно очень быстро разворачивать и сворачивать целые экосистемы прямо на своем ноуте. Хочешь базу данных: пара консольных команд и получаешь контейнер с базой данных. Хочешь Spark: пара команд и у тебя есть Spark. Хочешь, чтобы все это работало в продакшне так, как работает на твоем ноутбуке: легко, главное выполни на сервере ту же самую пару команд.
Для закрепления: берем любую свою программу (бонус очки: берем ML задачу из пункта про Pipeline) и делаем так, чтобы она запускалась в контейнере. Еще лучше если у вас два контейнера и один обращается к другому. Например в одном контейнере PostgreSQL с парой табличек, а в другом код, который делает запросы к базе данных.