Skip to content

nvasin/hse_ml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Запуск

uvicorn hw1:app --reload

Curl запросы к API

1. Предсказание для одного объекта /predict_item/

Описание: Эндпоинт принимает признаки одного объекта в формате JSON и возвращает предсказанную стоимость машины.

Пример запроса:

curl -X POST "http://127.0.0.1:8000/predict_item/" \ -H "Content-Type: application/json" \ -d '{  "name": "Car1",  "year": 2015,  "km_driven": 50000,  "fuel": "Petrol",  "seller_type": "Individual",  "transmission": "Manual",  "owner": "First Owner",  "mileage": 21.5,  "engine": 1197,  "max_power": 83.1,  "seats": 5 }'

Пример ответа:

{ "prediction": 350000.0 }

2. Предсказание для нескольких объектов /predict_items/

Описание: Эндпоинт принимает CSV-файл с признаками нескольких объектов и возвращает новый файл с добавленным столбцом предсказаний.

Пример запроса:

curl -X POST "http://127.0.0.1:8000/predict_items/" \ -H "Content-Type: multipart/form-data" \ -F "file=@Полный путь файла"

Пример ответа:

{ "filename": "predictions_output.csv" }

Пример содержимого test_file.csv:

name,year,km_driven,fuel,seller_type,transmission,owner,mileage,engine,max_power,seats Car1,2015,50000,Petrol,Individual,Manual,First Owner,21.5,1197,83.1,5 Car2,2018,30000,Diesel,Dealer,Automatic,First Owner,19.0,1498,108.5,5 

Пример содержимого результата predictions_output.csv:

name,year,km_driven,fuel,seller_type,transmission,owner,mileage,engine,max_power,seats,prediction Car1,2015,50000,Petrol,Individual,Manual,First Owner,21.5,1197,83.1,5,350000.0 Car2,2018,30000,Diesel,Dealer,Automatic,First Owner,19.0,1498,108.5,5,450000.0 

Анализ данных

  • Провели исследование данных, включая визуализацию ключевых признаков и корреляций.
  • Выявили и исправили проблемы с пропущенными значениями и выбросами.
  • Преобразовали числовые столбцы (например, mileage, engine) из текстовых значений в числовые форматы.

Модели

  • Обучили классическую линейную регрессию для предсказания целевой переменной.
  • Настроили гиперпараметры для Ridge и Lasso регрессий, что позволило улучшить метрики качества.
  • Исследовали возможности других моделей для повышения качества предсказаний.
  • Провели инференс на тестовых данных.
  • Оценили качество моделей с использованием метрик $R^2$ и $MSE$.

Создание пайплайна

  • Разработали пайплайн для автоматизации предобработки данных и обучения модели.
  • Включили обработку категориальных признаков и нормализацию числовых данных.
  • Реализовали сохранение и загрузку модели с использованием joblib.

FastAPI

  • Создали серверное приложение для взаимодействия с моделью через API.
  • Реализовали эндпоинты для обработки запросов и выдачи предсказаний.
  • Настроили валидацию входных данных с использованием Pydantic.

Результаты

  • Провели обработку данных, обнаружили большое кол-во дубликатов, которые удалили, преобразовали данные, привели их к нужному виду для модели, удалили ненужные столбцы.
  • Попробовали применить разные модели, в результате лучше всего себя показала Ridge model, увеличив показатель метрики R2 с базовой 0.59 до 0.65.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages