# Лабораторный проект по курсу "Интеллектуальные информационные системы"

**Выполняет**: **Сыропятов В.В.** (А-01м-24)

Реализация цикла разработки ML-сервиса:
* подготовка и исследование данных ([Jupyter](https://jupyter.org/), scientific Python),
* создание модели ML ([MLFlow](https://mlflow.org/), [scikit-learn](https://scikit-learn.org/stable/)),
* разработка REST-сервиса для выполнения модели ([FastAPI](https://fastapi.tiangolo.com/) (недоступна на&nbsp;2025&#x2011;12&#x2011;08)),
* конфигурация инфрастуктуры сервиса с мониторингом ([Docker](https://www.docker.com/) (частично недоступна на&nbsp;2025&#x2011;12&#x2011;08)), [Docker Compose](https://docs.docker.com/compose/) (частично недоступна на&nbsp;2025&#x2011;12&#x2011;08)), [Prometheus](https://prometheus.io/) (недоступна на&nbsp;2025&#x2011;12&#x2011;08)), [Grafana OSS](https://grafana.com/)).

## Данные

Используемый датасет: [Car price prediction(used cars)
](https://www.kaggle.com/datasets/vijayaadithyanvg/car-price-predictionused-cars/data) &mdash;
продажа подержанных автомобилей на рынке в Индии.

## Сервис предсказания цен

См. `services/README.md`.

## Исследовательская часть проекта

### Установка

#### Общий порядок

**Внимание**: Здесь описан только общий порядок установки. Определённые части проекта могут требовать установки по отдельным инструкциям.

1. Проект разработан для Python 3.10&ndash;3.12. Установите совместимую версию Python ([Download Python](https://www.python.org/downloads/)).

2. Скопируйте/склонируйте репозиторий в выделенную директорию и перейдите в неё.

   ```sh
   tar -xzf iis-project.tar.xz
   cd iis-project
   ```

3. Создайте виртуальное окружение Python.

   ```sh
   python -m venv .venv
   ```

   Активируйте созданное виртуальное окружение Python.

   * **Linux**:

     ```sh
     source .venv/bin/activate
     ```

   * **Windows**:

     ```ps
     .\.venv\Scripts\activate
     ```

4. Установите зависимости для необходимых частей проекта. См. **Зависимости**.

5. **При необходимости** скачайте данные. Каноническое расположение для данных проекта: `data/`.

#### Зависимости

##### Общие зависимости

Зависимости &mdash; пакеты Python &mdash; записаны в файле `requirements/requirements.txt` (см. **Пакеты Python**).

##### Пакеты Python

Установка/обновление пакетов Python в активное окружение из файла `requirements/requirements.txt`:

```sh
pip install -U -r requirements/requirements.txt
```

### Разведочный анализ данных (EDA)

См. `eda/README.md`.

### Исследование и настройка предсказательной модели

См. `research/README.md`.
