IIS_2023_1/basharin_sevastyan_lab_6
2023-12-06 02:14:55 +04:00
..
Data_pakwheels.csv basharin_sevastyan_lab_6 is ready 2023-12-06 02:14:55 +04:00
main.py basharin_sevastyan_lab_6 is ready 2023-12-06 02:14:55 +04:00
README.md basharin_sevastyan_lab_6 is ready 2023-12-06 02:14:55 +04:00
res_lab_3.png basharin_sevastyan_lab_6 is ready 2023-12-06 02:14:55 +04:00
res.png basharin_sevastyan_lab_6 is ready 2023-12-06 02:14:55 +04:00

Лабораторная работа 6. Вариант 5.

Задание

С использованием нейронной сети (MLPRegressor) предсказать стоимость автомобилей на основе предоставленных данных.

Как запустить

Для запуска программы необходимо с помощью командной строки в корневой директории файлов прокета прописать:

python main.py

Используемые технологии

  • Библиотека pandas, используемая для работы с данными для анализа scv формата.
  • sklearn (scikit-learn): Scikit-learn - это библиотека для машинного обучения и анализа данных в Python. Из данной библиотеки были использованы следующие модули:
    • metrics - набор инструменов для оценки моделей.
    • MLPClassifier - является реализацией многослойной нейронной сети для задачи классификации.
    • accuracy_score -функция из scikit-learn, которая используется для оценки производительности модели классификации путем вычисления доли правильно классифицированных примеров (точности) на тестовом наборе данных.
    • train_test_split - это функция из scikit-learn, используемая для разделения набора данных на обучающий и тестовый наборы.
    • LabelEncoder - это класс из scikit-learn, используемый для преобразования категориальных признаков (например, строки) в числовые значения.

Описание работы

Описание набора данных

Набор данных: набор данных о цене автомобиля в автопарке.

Названия столбцов набора данных и их описание:

  • Id: Уникальный идентификатор для каждого автомобиля в списке.
  • Price: Ценовой диапазон автомобилей с конкретными ценниками и подсчетами. (111000 - 77500000)
  • Company Name: Название компании-производителя автомобилей с указанием процентной доли представительства каждой компании.
  • Model Name: Название модели автомобилей с указанием процентного соотношения каждой модели.
  • Model Year: Диапазон лет выпуска автомобилей с указанием количества и процентных соотношений. (1990 - 2019)
  • Location: Местоположение автомобилей с указанием регионов, где они доступны для покупки, а также их процентное соотношение.
  • Mileage: Информация о пробеге автомобилей с указанием диапазонов пробега, количества и процентов. (1 - 999999)
  • Engine Type: Описания типов двигателей с процентными соотношениями для каждого типа.
  • Engine Capacity: Мощность двигателя варьируется в зависимости от количества и процентов. (16 - 6600)
  • Color: Цветовое распределение автомобилей с указанием процентных соотношений для каждого цвета.
  • Assembly: Импорт или местный рынок.
  • Body Type: Тип кузова.
  • Transmission Type: Тип трансмиссии.
  • Registration Status: Статус регистрации.

Ссылка на страницу набора на kuggle: Ultimate Car Price Prediction Dataset

Оценка эффективности

Для оценки точности модели будем использовать встроенный инструмент accuracy_score:

from sklearn.metrics import accuracy_score, classification_report, confusion_matrix

accuracy = accuracy_score(y_test, y_pred)
conf_matrix = confusion_matrix(y_test, y_pred)
classification_rep = classification_report(y_test, y_pred)

Результаты

Вывод

Алгоритм показал высокую точность. Считаем, что алгоритм успешен. Но если обратить внимание на результаты алгоритма 3-й лабораторной работы, выполняющего ту же задачу, окажется, что многослойная нейронная сеть справляется хуже: Точность MLP (0.91) меньше дерева решений (0.93) (без приведения в проценты). Получается, что MLP показала хороший результат, но обычная регрессия с поставленной задачей справилась лучше - нет смысла использовать более "тяжелый" алгоритм, если он не дает значительного выигрыша в качестве.