Краткое описание проектов

Полное описание каждого проекта -- ниже. Сами проекты -- в папке projects

Номер Суть проекта Тема Тип задачи Метрика
6 Рекомендация тарифов клиентам Простейшие модели ML, подбор гиперпараметров Binary Classification accuracy
7 Предсказать ухода клиента банка Бинарная классификация при дисбалансе классов, различные метрики классификации Binary Classification F1
8 Предсказать наиболее перспективный региона для разработки нефтяных скважин Связь метрик бизнеса и метрик машинного обучения, применение машинного обучения в бизнесе Regression RMSE
9 Предсказать коэффициент восстановления золота из золотосодержащей руды по физическим данных технологических этапов Кросс-валидация, применение машинного обучения в промышленности Regression специальная метрика
11 Оценить рыночную стоимость автомобилей Численные медоты, градиентный спуск и градиентный бустинг Regression RMSE
12 Спрогнозировать заказы такси Временные ряды Regression RMSE
13 Классифицировать комментарии на позитивные и негативные Машинное обучение для текстов Binary Classification F1
14 Предсказать возраст покупателей Компьютерное зрение Regression MAE
15 Предсказать температуру стали во время последнего замера при ее обработке на промышленном предприятии Выпускной проект Regression MAE
vk_mlcup_22 Определение тематики поста Машинное обучение для текстов Многоклассовая классификация специальная метрика
yandex_mlcup_22 По предыдущим лайкам предсказать следующий трек, которому пользователь поставит лайк RecSys MRR@100

Полное описание проектов

5.

Тема: Статистический анализ данных, проверка гипотез.

Проект: Определение перспективного тарифа для телеком-компании

«Мегалайн» — федеральный оператор сотовой связи. Клиентам предлагают два тарифных плана: «Смарт» и «Ультра». Чтобы скорректировать рекламный бюджет, коммерческий департамент хочет понять, какой тариф приносит больше денег.

В распоряжении данные 500 пользователей «Мегалайна»: кто они, откуда, каким тарифом пользуются, сколько звонков и сообщений каждый отправил за 2018 год. Необходимо:

  • сделать предварительный анализ тарифов на небольшой выборке клиентов - какие объемы услуг используют пользователи каждого тарифа, какой доход получает компания;
  • проверить гипотезы:
    • средние выручки пользователей тарифов «Ультра» и «Смарт» различаются;
    • средняя выручка пользователей из Москвы отличается от выручки пользователей из других регионов.

6.

Тема: Простейшие модели ML, подбор гиперпараметров

Проект: Рекомендация тарифов клиентам (бинарная классификация)

Оператор мобильной связи «Мегалайн» выяснил: многие клиенты пользуются архивными тарифами. Они хотят построить систему, способную проанализировать поведение клиентов и предложить пользователям новый тариф: «Смарт» или «Ультра».

В распоряжении данные о поведении клиентов, которые уже перешли на эти тарифы (см. проект 5 в этом же репозитории). Нужно построить модель для задачи классификации, которая выберет подходящий тариф. Предобработка данных не требуется, так как она уже проведена.

Необходимо построить модель с максимально большим значением accuracy (>0.75). Для этого рассмотреть различные семейства моделей с различными гиперпараметрами.

keys: Binary Classification, LogisticRegression, DecisionTreeClassifier, RandomForestClassifier, accuracy

7.

Тема: Бинарная классификация при дисбалансе классов, различные метрики классификации

Проект: Предсказание ухода клиента банка (бинарная классификация)

Из «Бета-Банка» стали уходить клиенты. Каждый месяц. Немного, но заметно. Банковские маркетологи посчитали: сохранять текущих клиентов дешевле, чем привлекать новых.

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

Необходимо построить модель с предельно большим значением F1-меры (>=0.59). Дополнительно измерять AUC-ROC, сравнивать её значение с F1-мерой.

keys: Unbalanced Binary Classification, GridSearchCV, LogisticRegression, DecisionTreeClassifier, RandomForestClassifier, f1, precision, recall, auc-roc, OHE

8.

Тема: Связь метрик бизнеса и метрик машинного обучения, применение машинного обучения в бизнесе

Проект: Предсказать наиболее перспективный регион для разработки нефтяных скважин.

В добывающей компании «ГлавРосГосНефть» нужно решить, где бурить новую скважину. Предоставлены пробы нефти в трёх регионах. Характеристики для каждой скважины в регионе уже известны.

Шаги для выбора локации обычно такие:

  • В избранном регионе собирают характеристики для скважин: качество нефти и объём её запасов;
  • Строят модель для предсказания объёма запасов в новых скважинах;
  • Выбирают скважины с самыми высокими оценками значений;
  • Определяют регион с максимальной суммарной прибылью отобранных скважин.

Необходимо построить модель для определения региона, где добыча принесёт наибольшую прибыль, проанализировать возможную прибыль и риски (техникой Bootstrap).

keys: Regression, Bootstrap, confidence interval, profit and loss, LinearRegression, RMSE

9. Большой, сложный и интересный проект

Тема: Кросс-валидация, применение машинного обучения в промышленности

Проект: Предсказать коэффициент восстановления золота из золотосодержащей руды по физическим данных технологических этапов

Когда добытая руда проходит первичную обработку, получается дроблёная смесь. Её отправляют на флотацию (обогащение) и двухэтапную очистку. Необходимо смоделировать процесс восстановления золота из золотосодержащей руды.

Нужно спрогнозировать сразу две величины:

  1. эффективность обогащения чернового концентрата rougher.output.recovery;
  2. эффективность обогащения финального концентрата final.output.recovery.

Итоговая метрика складывается из двух величин по определенной формуле

(Данных и особенностей задачи много, подробнее описаны в самом проекте)

keys: Regression, Cross-Validation, sMAPE, Buisiness-Metrics, Multiple Predictions, Features Tuning, DecisionTreeRegressor, RandomForestRegressor, LinearRegression

10.

Тема: Линейная алгебра и линейная регрессия

Проект: Защитить данные клиентов страховой компании.

Разработать такой метод преобразования данных, чтобы по ним было сложно восстановить персональную информацию и при этом качество моделей машинного обучения (в данном случае -- модели LinearRegression) не ухудшилось. Обосновать корректность его работы. Подбирать наилучшую модель не требуется.

keys: LinearRegression, Data Encryption

11.

Тема: Численные медоты, градиентный спуск и градиентный бустинг

Проект: Оценить рыночную стоимость автомобилей

Сервис по продаже автомобилей с пробегом разрабатывает приложение, чтобы привлечь новых клиентов. В нём можно будет узнать рыночную стоимость своего автомобиля.

Необходимо построить модель, которая на основе данных о технических характеристиках, комплектации и ценах других автомобилей умеет определять рыночную стоимость автомобиля.

Критерии, которые важны заказчику:

  • качество предсказания;
  • время обучения модели;
  • время предсказания модели.

Для оценки качества моделей использовать метрику RMSE. Значение метрики RMSE должно быть меньше 2500.

keys: Gradient Boosting, Regression, DecisionTreeRegressor, RandomForestRegressor, LightGBM, CatBoost, Ordinal Encoding

12.

Тема: Временные ряды

Проект: Прогнозирование заказов такси

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

Значение метрики RMSE на тестовой выборке должно быть не больше 48.

keys: Regression, Time Series, Trend, Seasonality, Rolling Mean, Lag, RandomForestRegressor

13.

Тема: Машинное обучение для текстов

Проект: Классификация комментариев на позитивные и негативные

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

Необходимо на наборе данных с разметкой о токсичности правок обучить модель классифицировать комментарии на позитивные и негативные.

Значение метрики качества F1 должно быть не меньше 0.75.

keys: Binary Classification, NLTK, Wordnet Lemmatizer, TF-IDF, Bag-of-Words

14.

Тема: Компьютерное зрение

Проект: Предсказание возраста покупателей

Сетевой супермаркет внедряет систему компьютерного зрения для обработки фотографий покупателей. Фотофиксация в прикассовой зоне поможет определять возраст клиентов, чтобы:

  • Анализировать покупки и предлагать товары, которые могут заинтересовать покупателей этой возрастной группы;
  • Контролировать добросовестность кассиров при продаже алкоголя.

Необходимо построить модель, которая по фотографии определит приблизительный возраст человека.Предоставлен набор фотографий людей с указанием возраста.

Данные взяты с сайта ChaLearn Looking at People. Метрика качества -- MAE должна быть <8

keys: Regression, Computer Vision, Neural Networks, tensorflow, keras, ResNet50, ImageDataGenerator

15.

Тема: Выпускной проект

Проект: Предсказать температуру стали во время последнего замера при ее обработке на промышленном предприятии

Чтобы оптимизировать производственные расходы, металлургический комбинат решил уменьшить потребление электроэнергии на этапе обработки стали.

Необъодимо построить модель, которая предскажет температуру стали во время последнего замера температуры, чтобы уменьшить потребление электроэнергии на этапе обработки стали. Метрика качества -- MAE

keys: Regression, MAE, DecisionTreeRegressor, RandomForestRegressor, LinearRegression, LightGBM

vk_mlcup_22: Соревнование VK Cup '22/23 по ML

Тема: Машинное обучение для текстов

Проект: Определение тематики поста

Сообщества ВКонтакте могут принадлежать одной из нескольких заранее заданных категорий. Но даже среди спортивных сообществ есть достаточно сильное разделение по тематикам! Одни и те же авторы могут писать только об одном виде спорта или сразу о большом количестве. По заданному набору постов определите тематику — какой именно вид спорта обсуждается в выбранном сообществе?

Cписок доступных категорий:

  • athletics,
  • autosport,
  • basketball,
  • boardgames,
  • esport,
  • extreme,
  • football,
  • hockey,
  • martial_arts,
  • motosport,
  • tennis,
  • volleyball,
  • winter_sport.

Обратите внимание, что в этой задаче вас ждёт нестандартная метрика: За каждый правильный ответ вы получите +1. За каждый неправильный ответ вы получите −1. Таким образом, вы можете отправлять решения, в которых категория отмечена не для каждого сообщества.

yandex_mlcup_22: Соревнование Yandex Cup 22 по ML

Тема: RecSys

Проект: По предыдущим лайкам предсказать следующий трек, которому пользователь поставит лайк

Место: 184

Важной задачей музыкальных рекомендаций является поиск неизвестных пользователю треков, которые ему понравятся. В решении этой задачи важную роль играют модели, анализирующие явный фидбэк пользователя. Явным фидбэком мы считаем такие события как like или dislike, поставленный на трек. В этой задаче от вас требуется по предыдущим лайкам предсказать следующий трек, которому пользователь поставит лайк.

Формат ввода

Прдоставленные вам данные вы можете найти по ссылке В архиве likes_data.zip три файла:

  • train - обучающий набор данных. Каждая строка - последовательность id треков, которые лайкнул один пользователь. Гарантируется, что лайки даны в той последовательности, в которой их ставил пользователь.
  • test - набор тестовых данных. Имеет точно такой же формат, но в каждой строке не хватает последнего лайка, который надо предсказать. Тестовые данные разбита на public и private. Во время соревнования вы будет видеть результаты только на public данных. Финальный подсчет баллов в будет происходить на private данных.
  • track_artists.csv - информация о исполнителях треков. Гарантируется, что у каждого трека есть ровно один исполнитель. Для треков, у которых фактически несколько исполнителей, мы оставили того, который считается основным исполнителем трека.

Файл baseline.py содержит наивное решение. Обратите внимание, что это решение может выполняться больше одного часа.

Файл score.py содержит код, который вы можете использовать, чтобы локально считать mrr для своего решения. Формат вывода

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

В качестве метрики используется MRR@100