uvicorn hw1:app --reload
Описание: Эндпоинт принимает признаки одного объекта в формате 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 }Описание: Эндпоинт принимает 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.
- Создали серверное приложение для взаимодействия с моделью через API.
- Реализовали эндпоинты для обработки запросов и выдачи предсказаний.
- Настроили валидацию входных данных с использованием Pydantic.
- Провели обработку данных, обнаружили большое кол-во дубликатов, которые удалили, преобразовали данные, привели их к нужному виду для модели, удалили ненужные столбцы.
- Попробовали применить разные модели, в результате лучше всего себя показала Ridge model, увеличив показатель метрики R2 с базовой 0.59 до 0.65.