Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spbu_machine_learning_spring_2025

Практики по курсу "Машинное обучение" для программы "большие данные и распределенная цифровая платформа" ПМ-ПУ СПбГУ Чтобы начать: делаете форк этого репозитория себе и отправляете мне в личку свои имя-фамилию и ссылку на реп.

План курса

План является предварительным и будет меняться

  1. Особенности линейной регрессии
  2. Bias-variance trade-off
  3. Выбор признаков. Проклятие размерности.
  4. Интерпретация
  5. Текстовые данные. Эмбеддинги.
  6. Проблемы несбалансированных данных. Imblearn, метрики.
  7. Калибрация моделей
  8. Distribution shift
  9. Semi-supervised learning, continous learning
  10. LOESS
  11. Gaussian processes?

Домашние задания

В заданиях надо написать код, протестировать, проделать вычисления итп, на защите поговорить со мной. В соревнованиях вы соревнуетесь друг с другои на Kaggle и, если мне станет интересно, со мной. Можно делать что угодно с учетом ограничений, которые будут указаны в тексте. Дедлайн соревнований не привязан явно к мягкому или жесткому дедлайну, пока соренования будут длиться от 2 до 4 недель.

Важно: в начале курса убедитесь, что у вас есть аккаунт на kaggle, в противном случае я буду искать альтернативы.

Список выданных заданий и сроков

Список группы, оценки

TBD

Сроки

Мягкий дедлайн по каждому заданию - 14 день после его публикации, время защиты - ближайшая пара и далее. Если задание опубликовано в другой день, то время на выполнение - те же 14 дней, но защита будет после ближайшего занятия после. Защититься можно и на других парах. Время защиты на оценку не влияет. Примеры:

  • Задание опубликовано в субботу до занятия или на нем, дедалайн - следующее занятие (последняя минута занятия). В конце следующего занятия происходит отсечка и начинается защита.
  • Задание опубликовано в среду. Дедлайн на сдачу - среда через неделю (время пуша на гитхаб + 1 минута). Ждем до субботы, в субботу защита.

После мягкого дедлайна каждый день просрочки уменьшает оценку на 10 %. Итого жесткий дедлайн - 24 день. Защита также на ближайшей паре после него. Расчет будет проходить следующим образом:

  • Считается балл за задачи (как будто штрафа нет)
  • Результат умножается на 1 - 0.1 * на количество просроченных дней
  • Просрочка начинается, как только заканчивается время на сдачу. Т.е. если срок - 23.59 среды, в 00.00 четверга множитель уже 0.9.

Сдачей задачи считается коммит и пуш в именной репозиторий на гитхаб. Время коммита будет считаться временем сдачи. Если с гитхабом проблемы, необходимо выслать файл с решением мне. В противном случае датой будет считаться дата защиты. Можно делать сколько угодно коммитов до финальной сдачи. Я буду учитывать только последний их них. Исключение - исправление мелких ошибок и помарок в тексте, рефакторинг, итп.

Для соревнований: дедлайн один (жесткий) - конец соревнования. После публикации результата необходимо прислать мне описание решения. Подойдет:

  • Ноутбук с обучением модели + краткий отчет об идеях
  • Набор ноутбуков с разными идеями
  • Набор .py файлов + краткий отчет об идеях

Также я планирую устраивать небольшие обсуждения идей на паре в процессе соревнования (и после).

Исключение для всех заданий - зачетный период, тогда срок будет min(дедлайн, зачет).

Семинарские ноутбуки

За прорешенные семинарские ноутбуки будет добавляться (максимум) по 1 баллу. Защиты по ним не проводятся, дедлайн тоже отсутствует. Однако, я не гарантирую, что проверю все ваши ноутбуки, если они будут сделаны в последний момент (как минимум последний месяц семестра).

Проект

Ваша задача - сделать проект, подобный прошлогоднему. При этом требования немного меняются:

  1. Проект должен быть как минимум забавный. Можете выбрать любую дурачливую или несерьезную тему на ваш выбор (в пределах разумного) или же то, что вам нравится.
  2. Проект должен включать сбор данных - либо физических, либо онлайн, но сам сбор должен проводиться вами. То есть вы можете бегать по знакомым и мерять температуру их котов, классифицировать парадные, собирать корпус раннего творчества Шамана или игровую статистику в доте, но сами.
  3. Для каждого этапа работы с данными вы должны создать артефакт, добавляемый в "дизайн-документ" проекта в довольно свободной форме, описывающего выбор методов и тп. Пример структуры такого документа:
Раздел Содержание
Цель и метрики Что решаем, как измеряем успех и почему
Данные Источники, объём, основные поля и ограничения
Подход Признаки + базовая модель + способ валидации
Риски 2–3 главных риска или ограничения
Анализ ошибок Анализ остатков, калибровка моделей
  1. В проекте может участвовать до 3 человек.
  2. Можно использовать только классические методы, нейронки можно использовать только для построения эмбеддингов ПОСЛЕ СОГЛАСОВАНИЯ.В противном случае, если на защите окажется, что проект был с нейронками, он получит минимальный балл

Неуказанные требования такие же, как в прошлом году. В дальнейшем они могут дополняться на основе ваших вопросов. Защита в виде презентаций будет в конце семестра или на зачете.

Оценки и штрафы

Учет списывания будет вестись по коммитам. Кто первый закоммитил - тот и молодец.

Неэффективный, плохо читаемый код или непонятные графики могут снизить оценку. Советую пользоваться линтерами (isort, black, pylint, mypy). Интересные находки - библиотеки для визуализации, работы с данными, отслеживанием экспериментов, продвинутые модели - все это может повысить оценку, даже немного сверх максимума.

Защита заданий

На защите я буду задавать вопросы по работе - на понимание формул, кода - и другие уточняющие вопросы. Также я планирую прогонять тесты, так что лучше отправлять задачи до занятия, чтобы не тратить время. До дедлайна решения можно будет исправлять, я буду присылать в личку информацию о непройденных тестах или иных ошибках. Если у вас были проблемы при выполнении задачи - при защите можно улучшить свою оценку, продемонстрировав понимание :) Или ухудшить, если окажется, что работа списана. Если вы использовали какие-то источники, туториалы, видео итп при выполнении заданий, то мне нужно будет прислать отдельный файл с их списком.

Финальная оценка

Оценка будет основана на баллах, заработанных в течение семестра. Баллы будут приведены в границы 0-1, где 1 соответствует максимальному числу базовых баллов. Предварительная формула (с проектом): $ 25 * домашки + 25 * проект + 10 * проверочные + 30 * соревнования + 10 семинары $

Для получения зачета определены границы (в базовых баллах):

e d c b a
60% 70% 80% 90% 100%

Баллы с основных и дополнительных баллов суммируются.

Получившие более 75% дополнительных баллов и не менее с по сумме базовых также освобождаются от задачи на экзамене.

About

Практики по курсу "Машинное обучение" для программы "большие данные и распределенная цифровая платформа" ПМ-ПУ СПбГУ

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages