Классификация клиентов банка по их лояльности |
Построить модель бинарной классификации для прогноза, прекратит клиент пользоваться услугами банка или нет |
При анализе данных обнаружил проблему с продуктами банка (клиенты, использующие продукты, уходят). В данных - дисбаланс классов. Выполнил балансировку (upsampling и downsampling ), изучил влияние на качество прогноза. Обучил логистическую регрессию, решающее дерево и случайный лес, проверил адекватность. Настроил порог классификации по predict_proba . Выбрал лучшую балансировку и модель. |
Python, pandas, numpy, collections, random, sklearn, matplotlib, seaborn , предобработка данных, исследовательский анализ, A/B тестирование, машинное обучение. |
Определение тональности комментариев |
Нужно обучить модель классифицировать комментарии на позитивные и негативные. Язык комментариев - английский. |
Сравнил модели и методы векторизации текстов: TfidfVectorizer + LogisticRegression, spaCy TextCategorizer, BERT + LogisticRegression . Для работы с BERT оптимизировал данные по особому алгоритму ("smart batching"), существенно ускорил получение эмбеддингов. Сравнил лемматизацию на базе Natural Language Toolkit и spaCy . Выбрал spaCy , как более быстрый и корректный метод. Лучшая комбинация: TfidfVectorizer + LogisticRegression (f1=0.78) |
Python, pandas, numpy, re, torch, csv, transformers (BERT), spacy, nltk, sklearn, catboost , лемматизация, векторизация текстов, машинное обучение |
Прогноз рыночной стоимости автомобилей с пробегом |
Построить модель для определения рыночной стоимости автомобиля (учесть качество и скорость предсказания, время обучения) |
Очистил данные (были серьёзно загрязнены). Написал 2 класса для кодирования признаков и заполнения пропусков. Для настройки моделей написал свою функцию. Обучил линейную регрессию, XGBoost, CatBoost, LightGBM . Выбрал LightGBM , как лучший по скорости и качеству. Подобрал оптимальный вариант предобработки данных, объединил всё в pipeline. |
Python, pandas, numpy, math, datetime, collections, ipywidgets, sklearn, catboost, lightgbm, xgboost, category_encoders, matplotlib, seaborn , предобработка данных, исследовательский анализ, машинное обучение. |
Определение возраста человека по его фотографии |
Построить модель, которая по фотографии определит приблизительный возраст человека |
Применил аугментацию для увеличения объёма выборки (в некоторых возрастных интервалах недостаточно данных). Построил и обучил собственную свёрточную сеть (на gpu kaggle), и сеть на базе ResNet (на платформе Яндекс.Практикум). Для борьбы с переобучением делал dropout. В обоих случаях добился целевого значения метрики. |
Python, pandas, numpy, PIL, matplotlib, seaborn, Keras , исследовательский анализ, обучение свёрточных нейронных сетей. |
Прогноз эффективности восстановления золота из золотосодержащей руды |
Построить модель для прогноза коэффициента восстановления золота (recovery) из золотосодержащей руды |
Обработал данные (много пропусков и аномалий). Построил подробную схему обогащения руды. Изучил сложный характер взаимосвязей признаков (объёмный анализ с визуализацией). Для прогноза recovery использовал прямой прогноз и косвенный. Сравнил модели Lasso, XGBoostRegressor, CatBoostRegressor . Выбрал прямой метод прогноза и линейную модель Lasso . |
Python, pandas, numpy, math, sklearn, catboost, xgboost, matplotlib, seaborn , предобработка данных, исследовательский анализ, машинное обучение. |
Защита данных клиентов с сохранением качества работы ML моделей |
Разработать метод шифрования данных, не меняющий качество работы модели линейной регрессии |
Выявил особенности взаимосвязей признаков. Провёл feature engineering, существенно улучшил целевую метрику. Для шифрования данных предложил алгоритм на основе методов линейной алгебры. Обучил модели линейной регрессии. Показал, что качество прогноза не меняется, если кодирующая матрица обратима. |
Python, pandas, numpy, sklearn, matplotlib, seaborn , предобработка данных, исследовательский анализ, feature engineering, матричное умножение, транспонирование матриц, вычисление детерминанта, проверка обратимости |
Выбор региона для разработки нефтяных месторождений |
Разработать модель для прогноза объёма нефти в месторождении. Оценить риск убытков при разработке региона на основании прогнозов модели. Рекомендовать один из регионов к разработке. |
Использовал feature engineering: увидел, что признаки принадлежат разным кластерам. Ввёл признак - метку кластера, применил свои методы. Метрики улучшились почти в 1.5 раза, число признаков сократилось до двух. Оценил риски убытков и потенциальную прибыль от разработки месторождений в трёх регионах. Для каждого сымитировал 1000 случаев исследования и разработки. Использовал технику bootstrap. Рекомендовал регион с наименьшим риском убытков. |
Python, pandas, numpy, scipy, collections, matplotlib, seaborn, plotly, sklearn, hdbscan, catboost, xgboost , feature engineering, статистический анализ (bootstrap, перестановочный тест, A/B тестирование), машинное обучение. |
Модель для подбора тарифа сотовой связи |
Разработать модель, которая порекомендует для пользователя один из двух тарифов сотовой связи |
Выявил сильную взаимосвязь 2 признаков. Обучил DecisionTreeClassifier, RandomForestClassifier, LogisticRegression со всеми признаками и исключив один из коррелирующих. Проверил модели на адекватность, сравнил скорость работы. Настроил гиперпараметры (применял графический анализ и classification_report). Выбрал оптимальную модель. |
Python, pandas, numpy, scipy, collections, datetime, random, sklearn, matplotlib, seaborn , визуализация, статистический анализ, машинное обучение. |
Прогноз количества заказов такси на следующий час |
Построить модель для прогноза количество заказов такси на следующий час |
Выполнил feature engineering на основе декомпозиции временного ряда (seasonal_decompose ) и расчёта автокорреляций (plot_acf ), сделал наглядный графический анализ. Обучил линейную регрессию, XGBoost и CatBoost. Выбрал линейную регрессию: по качеству почти не уступала моделям градиентного спуска. При этом проста, не склонна к переобучению и лучше масштабируется. |
Python, pandas, numpy, sklearn, statsmodels, catboost, xgboost, matplotlib, seaborn , декомпозиция временного ряда, автокорреляционный анализ, машинное обучение. |
Прогноз оттока клиентов |
Разработать модель, которая спрогнозирует уход клиента |
Рассмотрел 7 классификаторов (Catboost, LGBM, XGBoost, RandomForest, ExtraTrees, KNN и Logistic Regression), а также стек из них. На основе кросс-валидации выбрал CatBoost. На тестовой выборке ROC_AUC: 0.87 и ACCURACY: 0.79 |
pandas, numpy, sklearn, category_encoders, catboost, xgboost, lightgbm, matplotlib, seaborn |