ВЕБ-ЗАСТОСУНОК ДЛЯ ОЦІНКИ ВАРТОСТІ ВЖИВАНИХ АВТО НА БАЗІ ANGULAR ТА ASP.NET CORE
03.03.2023 17:55
[1. Информационные системы и технологии]
Автор: Візнюк Артем Валентинович, магістрант, Національний технічний університет «Дніпровська політехніка», м. Дніпро; Дяченко Григорій Григорійович, кандидат технічних наук, Національний технічний університет «Дніпровська політехніка», м. Дніпро
На формуванні ринкової вартості автомобіля впливає багато чинників – атрибути авто, такі як: виробник, модель, потужність двигуна, рік випуску, пробіг тощо, а також сам ринок авто (для різних країн атрибути авто по-різному впливають на кінцеву вартість), що робить даний процес нетривіальним [1]. Окремої уваги вимагає кодування категоріальних атрибутів, таких як: виробник, модель, тип кузова і т. д., оскільки більшість регресійних моделей працюють лише з числовими даними. Наявність формалізованої процедури встановлення ринкової вартості авто допоможе значно скоротити час покупцям та продавцям ринку.
Проведено дослідження над визначенням структури нейронної мережі та розглянуто оптимізації Momentum, RMSprop і Adam в контексті завдання прогнозування ціни авто [2].
Створено SPA (single-page application, веб-додаток з однією сторінкою) застосунок, який надає наступні переваги:
• Доступність онлайн, не має потреби у скачуванні.
• Швидкий відгук на дії користувача (за рахунок відсутності необхідності у перезавантаженні всієї веб-сторінки)
• Чітке розділення серверної та клієнтської частини додатку, що спрощує адаптацію під мобільні платформи.
Архітектура розроблюваного SPA-застосунку продемонстрована на Рис. 1. Під час першої взаємодії сервер надсилає користувачу у відповідь початкову HTML-сторінку. Після цього відбувається запит на сервер для отримання переліку виробників, моделей, типів кузова, приводів, трансмісій та палива, які потрібні для введення даних авто для встановлення ціни. Коли сервер отримує запит, він надсилає SQL-запит до бази даних для отримання необхідного переліку категоріальних характеристик – і передає ці дані користувачу у форматі JSON.
Рисунок 1 – Архітектура веб-застосунку
Після завантаження всіх необхідних даних користувач вводить дані авто, натискає на кнопку – і відправляє на сервер http-запит з даними авто. Для обробки даного запиту сервер завантажує з файлу натреновану нейронну мережу, виконує трансформацію даних, подає на вхід до нейронної мережі – і повертає встановлену ціну користувачу, яка буде відображена на веб-сторінці без перезавантаження.
Для створення SPA застосунку для встановлення вартості на вживані авто були використані наступні технології:
1) Javascript фреймворк Angular версії 12.2.9 для створення клієнтської частини додатку (яка виконується в браузері).
2) Фреймворк .Net Core 5 (мова C#) для створення серверної частини додатку для обробки http-запитів.
Даний перелік був обраний через наявність величезної кількості програмних інструментів для пришвидшення розробки сучасних веб-застосунків, а також через багатоплатформність .Net Core та його інтеграцію з клієнтським фреймворком Angular для створення SPA [3].
Запропоновано наступний API-інтерфейс (application programming interface, програмний інтерфейс застосунку) для взаємодії з серверною частиною:
1) GET /api/cars/feature-categories
Опис: отримуємо об’єкт з масивами унікальних значень для кожного категоріального атрибута.
Тип контенту: application/json.
Тіло запиту: відсутнє.
Приклад відповіді:
2) POST /api/cars/predict
Опис: отримуємо встановлену ціну авто (в доларах).
Тип контенту: application/json.
Приклад тіла запиту:
Приклад відповіді: 18380.
Веб-інтерфейс застосунку мінімалістичний: веб-сторінка з десятьма полями для введення атрибутів авто, кнопка «Встановити ціну» для надсилання введених даних авто на сервер та текст зі встановленою ціною (Рис. 2). Варто зазначити, що кнопка «Встановити ціну» неактивна, якщо хоча б один з атрибутів не введено або один із числових атрибутів: «Об’єм двигуна», «Кінська сила», «Пробіг» та «Рік випуску» введено невірно (від’ємні та нульові значення).
Рисунок 2 – Графічний інтерфейс веб-застосунку
Перспективи подальшого вдосконалення:
• Застосування міні-пакетного градієнтного спуску (Mini Batch Gradient Descent, MBGD) для пришвидшення навчання нейронної мережі. Емпірично визначити розмір пакету (batch size).
• У випадку значного збільшення навчальної вибірки та збільшення числа унікальних категоріальних значених (моделей, виробників і т. д.), яких необхідно підтримувати, пропонується низькочастотні категорії замінити категорією «Інші» для зменшення розмірності вектору при кодуванні One-hot. Якщо розмірність вектору все ще буде обтяжливою для навчання, в якості альтернативи до кодування One-hot пропонується застосувати Hash Encoding (кодування хешуванням) для зменшення кількості вхідних значень до нейронної мережі.
• Розширення створеного програмного рішення до повноцінної SCADA (Supervisory control and data acquisition) системи для автоматизації процесу збору та підготовки даних для навчання нейронної мережі, а також для автоматичного детектування та локалізації відмов в структурних модулях системи [4].
Посилання на Github репозиторій з розробленим веб-додатком: https://github.com/Leriatod/CPP.
Література
1. Varshitha J., Jahnavi K., Lakshmi C. (2022). Prediction Of Used Car Prices Using Artificial Neural Networks And Machine Learning. 2022 International Conference on Computer Communication and Informatics (ICCCI), 1-4, DOI: 10.1109/ICCCI54379.2022.9740817.
2. Візнюк А.В., Юрчук І.А., Дяченко Г.Г. Програмне забезпечення для встановлення вартості вживаних автомобілів згідно їх атрибутів. Молодь: наука та інновації: матеріали Всеукраїнської науково-технічної конференції студентів, аспірантів та молодих вчених, Дніпро, 11–12 листопада 2021 року / Національний технічний університет «Дніпровська політехніка» – Дніпро : НТУ «ДП», 2021 – С. 289-290.
3. Kovpak E., Orlov F. (2019). Comparative analysis of machine learning models and regressions for car price prediction. Visnyk of V.N. Karazin Kharkiv National University, 97, 31-40, DOI: 10.26565/2311-2379-2019-97-04.
4. Syrotkina O., Aziukovskyi O., Udovyk I., Aleksieiev O., Prykhodchenko S., & Ilyin L. (2020). Mathematical Methods for Detecting and Localizing Failures in Complex Hardware/Software Systems. 2020 10th International Conference on Advanced Computer Information Technologies (ACIT), 177-182, DOI: 10.1109/ACIT49673.2020.9208898.