🚀 ML-проект формата «для резюме и собеседований»,

🚀 ML-проект формата «для резюме и собеседований», а не просто для практики

Несколько недель назад я решил: вместо того чтобы на собеседованиях просто говорить «я работал со Scikit-Learn», сделать реальный end-to-end-проект — от EDA до API и тестов, чтобы было о чём по-деловому разговаривать 😄

В итоге получился вот такой open-source репозиторий на GitHub: California Housing Price Prediction (ML + FastAPI API) 🏡💻

Что я сделал в этом проекте?

💡 Задача: Прогноз медианной стоимости домов в Калифорнии (переменная MedHouseVal в единицах по 100 000$).

📊 Датасет: Знаменитый California Housing из Scikit-Learn — более 20 000 строк и 8 числовых признаков (MedInc, HouseAge, AveRooms, Latitude, Longitude, …).

🧠 Модели: • LinearRegression на сырых признаках • LinearRegression в Pipeline со StandardScaler • Базовый RandomForestRegressor • RandomForestRegressor, настроенный через GridSearchCV (cv=3)

📈 Результаты (на Test set):

Лучшей стала модель RandomForestRegressor (tuned): • RMSE ≈ 0.5039 • MAE ≈ 0.3266

🧱 Инфраструктура и стек: • Python + pandas + numpy + scikit-learn • Визуализации через matplotlib (EDA можно посмотреть в README) • Модель сохраняется с помощью joblib в папку models/ • FastAPI + uvicorn для HTTP-API и Swagger UI • Небольшие, но реальные тесты на pytest ✅

🧪 Не только ноутбук, а нормальная инженерия

В проекте я специально реализовал то, о чём часто спрашивают на собеседованиях:

🚫 Защита от data leakage • Один раз делаю train_test_split • Всё, что чему-то «учится» на данных (например, StandardScaler), обучается только на train и живёт внутри Pipeline • GridSearchCV запускается только на train, а не на всём датасете

🎯 Честная оценка качества • Test-набор = 20% данных, полностью отложен • Метрики на нём считаются один раз в конце, для финальной оценки

🧩 Подход “production thinking” • Модель сохраняется в best_model.joblib • Отдельный model_metadata.json с метаданными • Простой CLI-скрипт predict.py для предсказаний из терминала • Отдельный сервис на FastAPI с эндпоинтом /predict и автодокументацией (/docs, /redoc)

✅ Тестирование • Есть тесты и для обучения, и для предсказаний — чтобы при любом изменении кода/данных всё сразу «падало» и было понятно, что пошло не так.

Зачем вообще этот проект? 🤔

Если ты: • Ищешь аккуратный и защищаемый проект для резюме • Хочешь на собеседованиях чётко и структурно рассказывать про цепочку EDA → модели → оценка → API → тесты • Или нужен простой, но профессиональный шаблон для своих проектов ML + API

то ты можешь просто: • Сделать git clone репозитория • Запустить python src/train_model.py • Затем поднять API: uvicorn src.api:app --reload • И сразу идти в /docs и гонять запросы к API 😎

Если захочешь:

⭐ поставь звёздочку репозиторию, 🛠 напиши идеи по улучшению (feature engineering, monitoring, более продвинутый hyperparameter tuning, Docker, CI/CD и т.д.), или, если у тебя есть похожий проект, скинь ссылку — буду рад посмотреть и обменяться идеями 🤝

🔗 GitHub: https://lnkd.in/esXRywep

#MachineLearning #Python #FastAPI #OpenSource #DataScience #MLOps #Portfolio #CareerSwitch #ml #start #Ai #dl #base #help #OS #APIDevelopment #MLProject #PortfolioProject #feature #LR #RandomForesst #RF #RFR #LinearRegression #eda #RMSE #MAE #pytest #joblib #learning

🚀 ML-проект формата «для резюме и собеседований», | Сетка — социальная сеть от hh.ru 🚀 ML-проект формата «для резюме и собеседований», | Сетка — социальная сеть от hh.ru