Чему вы научитесь
- Работать с NumPy и Pandas
- Очищать, исследовать и визуализировать данные
- Проводить разведочный анализ данных — EDA
- Применять основы математики и статистики в ML
- Находить ошибки и проблемы в датасетах
- Подготавливать признаки для машинного обучения
- Разделять данные на обучающую и тестовую выборки
- Строить baseline-модели
- Обучать модели с помощью scikit-learn и CatBoost
- Выбирать метрики классификации и регрессии
- Диагностировать переобучение и недообучение
- Обнаруживать утечки данных
- Сравнивать модели и анализировать результаты
- Организовывать и фиксировать ML-эксперименты
- Решать ML-задачу от постановки до итоговой оценки
- Оформлять и публиковать ML-проекты на GitHub
- Работать над ML-задачами в условиях хакатона
- Превращать участие в хакатонах в опыт и портфолио
О курсе
Привет! Меня зовут Дмитрий Анпилов.
Этот курс я создавал для человека, который уже знаком с Python, интересуется машинным обучением, но пока не понимает, как превратить отдельные знания в полноценный ML-проект.
Можно пройти урок по Pandas, посмотреть видео про CatBoost, прочитать статью о метриках и даже обучить несколько моделей. Но после этого всё равно может остаться главный вопрос: что именно делать, когда перед тобой появляется новый датасет и реальная задача?
С чего начинать анализ? Какие данные можно использовать? Что считать целевой переменной? Как выбрать метрику? Зачем строить простую модель, если можно сразу запустить сложную? Почему результат на тестовой выборке выглядит хорошо, а на новых данных модель начинает ошибаться?
Именно на эти вопросы мы будем отвечать по ходу курса.
Здесь машинное обучение рассматривается не как набор библиотек и команд, которые нужно запомнить. Мы будем разбирать полный процесс работы над задачей: от знакомства с данными и первого анализа до обучения модели, проверки результата и оформления проекта.
Сначала вы научитесь уверенно работать с NumPy и Pandas, очищать таблицы, находить пропуски и аномалии, исследовать распределения и строить визуализации. Затем мы перейдём к статистике, подготовке признаков, разделению данных, выбору метрик и построению первых моделей.
После этого разберём scikit-learn, CatBoost, переобучение, недообучение, утечки данных, подбор параметров и сравнение экспериментов. Постепенно отдельные темы сложатся в единый рабочий процесс, которым можно пользоваться в собственных проектах.
В курсе будет много практики. После основных тем вас ждут тесты, задачи по программированию, работа с таблицами, анализ чужого кода, поиск ошибок и мини-проекты. Некоторые задания будут построены как рабочие ситуации, где недостаточно вспомнить определение или скопировать пример из лекции.
Вам потребуется самостоятельно понять условие, изучить данные, выбрать подход и объяснить полученный результат.
Поскольку это мой первый авторский курс, я решил не ограничиваться одним способом подачи материала. В теоретических уроках используются три формата: классическая учебная лекция, структурированная теория с последовательным разбором темы и сюжетные уроки, построенные вокруг истории работы ML-инженера.
Практические задания также представлены в двух форматах. Часть из них сформулирована традиционно, а часть начинается с небольшой предыстории и помещает ученика в конкретную рабочую ситуацию.
После прохождения курса я буду благодарен, если вы поделитесь своим мнением и расскажете, какой формат оказался для вас наиболее понятным, интересным и полезным для обучения. Ваша обратная связь поможет мне определить, какие способы подачи материала работают лучше всего, и улучшить следующие версии курса.
Почему в курсе много внимания уделяется хакатонам
У этого курса есть отдельное направление, связанное с ML-хакатонами.
Я считаю хакатоны одним из самых доступных способов получить практический опыт в машинном обучении. На соревновании мало просто знать синтаксис Python или уметь вызвать метод fit(). Нужно разобраться в незнакомой задаче, быстро исследовать данные, построить первое рабочее решение, распределить время и представить результат экспертам.
Всего я участвовал в 17 хакатонах. В двух офлайн-хакатонах мои команды заняли первое место. Почти в каждом из остальных соревнований мы входили в топ 20.
На хакатоне Белгородской области по искусственному интеллекту мы разработали ИИ-агента технической поддержки. Система помогала обрабатывать обращения пользователей, находить нужную информацию и подготавливать ответы.
На офлайн-хакатоне в Санкт-Петербурге наша команда создала ИИ-помощника для врача-профпатолога. Он помогал анализировать медицинскую информацию и подготавливать данные для принятия решения специалистом.
Но самым важным результатом хакатонов для меня стали не места в рейтинге.
После одного из соревнований меня пригласили на мою первую работу в качестве ML-инженера по компьютерному зрению (CV ML). Поэтому я знаю на собственном опыте, что хакатон может быть не только соревнованием, но и возможностью показать свои навыки будущему работодателю.
Конечно, участие в хакатоне не гарантирует трудоустройство. Можно сделать сильное решение и не получить предложение. Можно несколько раз не попасть даже в верхнюю часть таблицы. Это нормальная часть процесса.
Хакатоны дают другое: опыт, проекты для портфолио, работу в команде, знакомство с экспертами и возможность проверить знания на задаче, где заранее нет готового ответа.
В отдельном блоке курса мы разберём:
- как выбирать хакатоны;
- как читать условия и критерии оценки;
- как собрать команду и распределить роли;
- как быстро провести первый анализ данных;
- как построить рабочий baseline;
- как вести лог экспериментов;
- как подготовить презентацию;
- как оформить результат для GitHub и резюме;
- как использовать участие в хакатоне при поиске первой работы.
Моя задача состоит не в том, чтобы убедить каждого ученика участвовать в соревнованиях. Я хочу показать этот путь тем, кому недостаточно только учебных заданий и кто хочет проверить себя на практике.
Немного обо мне
Я окончил НИУ «БелГУ» по направлению «Инфокоммуникационные технологии и системы связи».
Позже продолжил обучение программированию и машинному обучению в «Школе 21» по направлению Machine Learning.
Сейчас я учусь в магистратуре НИУ «БелГУ» по направлению «Искусственный интеллект».
Я занимаюсь машинным обучением, анализом данных, компьютерным зрением и разработкой систем с использованием больших языковых моделей. Кроме учебных проектов, я участвую в соревнованиях и стараюсь сразу применять новые знания в практических задачах.
Этот курс появился из моего собственного опыта обучения. Мне хотелось собрать в одном месте последовательный путь, где сначала объясняются данные и базовые принципы, а уже затем появляются более сложные модели и инструменты.
Что находится внутри курса
В курс входят:
- подробные теоретические уроки;
- примеры кода на Python;
- практические задания;
- тесты с правдоподобными вариантами ответов;
- задачи на анализ кода и поиск ошибок;
- математические и статистические задачи;
- работа с реальными датасетами;
- мини-проекты;
- шпаргалки и чек-листы;
- отдельный блок о ML-хакатонах;
- итоговый самостоятельный проект;
- экзамены по основным разделам.
Я не хочу, чтобы после прохождения курса ученик просто знал названия библиотек и алгоритмов.
Гораздо важнее научиться понимать, что происходит на каждом этапе работы:
- какую задачу мы решаем;
- что находится в данных;
- каким данным можно доверять;
- что использовать в качестве признаков;
- с какой модели лучше начать;
- какую метрику выбрать;
- почему модель ошибается;
- действительно ли новое решение лучше предыдущего;
- можно ли использовать полученный результат на практике.
Иногда высокая метрика означает, что модель работает хорошо. Иногда она означает, что в данные попала утечка. А иногда можно получить отличное качество и при этом очень точно решить не ту задачу.
Мы будем учиться различать эти ситуации.
Для кого этот курс
Начальные требования
Курс рассчитан на начинающих в Machine Learning, но не на абсолютных новичков в программировании.
Для прохождения курса необходимо:
• знать базовый синтаксис Python;
• понимать переменные, условия, циклы и функции;
• уметь работать со списками и словарями;
• уметь самостоятельно запускать Python-код;
• иметь возможность работать локально или в Google Colab;
• быть готовым разбираться в формулах, графиках и статистике;
• выделять на обучение примерно 10–12 часов в неделю.
Предварительный опыт в Machine Learning не требуется.
Углублённое знание высшей математики также не требуется: необходимые понятия из линейной алгебры, статистики, теории вероятностей и математического анализа объясняются внутри курса.
Наши преподаватели
Как проходит обучение
Курс проходит в самостоятельном темпе и не привязан к жёстким дедлайнам.
Обучение построено последовательно: каждая новая тема опирается на уже изученный материал и постепенно приближает вас к самостоятельному решению полноценной ML-задачи.
В курс входят:
• подробные теоретические уроки;
• примеры кода на Python;
• тесты на понимание материала;
• задачи на анализ кода и поиск ошибок;
• численные и математические задачи;
• практические задания по программированию;
• работа с реальными датасетами;
• мини-проекты;
• шпаргалки и чек-листы;
• отдельный блок о ML-хакатонах;
• итоговый самостоятельный проект;
• экзамены по основным разделам курса.
После теоретических тем вам потребуется применять материал на практике: исследовать данные, выбирать признаки, строить baseline, обучать модели, сравнивать метрики и объяснять полученный результат.
Рекомендуемая нагрузка — 10–12 часов в неделю. Фактическое время зависит от подготовки и глубины проработки практических заданий.
Программа курса
Сертификат
Что вы получаете
- Системное понимание полного цикла работы над ML-задачей
- Практический опыт работы с реальными датасетами
- Навыки использования NumPy, Pandas и scikit-learn
- Понимание метрик, переобучения и утечек данных
- Опыт работы с CatBoost
- Практику построения и улучшения baseline-моделей
- Опыт самостоятельного проведения ML-экспериментов
- Мини-проекты для развития портфолио
- Итоговый самостоятельный ML-проект
- Понимание устройства и правил ML-хакатонов
- Стратегию подготовки решения в ограниченное время
- Навыки презентации технического проекта
- Понимание того, как оформить хакатон для резюме и GitHub
- Шпаргалки и чек-листы по основным темам
- Базу для дальнейшего изучения ML, Computer Vision и NLP