Статья опубликована в рамках: Научного журнала «Студенческий» № 22(66)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5
РАЗРАБОТКА СИСТЕМЫ ОПРЕДЕЛЕНИЯ КАТЕГОРИИ ЦЕНЫ ТОВАРА НА ОСНОВЕ КОМПЛЕКСИРОВАНИЯ НАБОРА АЛГОРИТМОВ КЛАССИФИКАЦИИ
Аннотация. В статье рассматриваются алгоритмы машинного обучения для решения задачи классификации данных о товарах. Сформулирована постановка задачи классификации для определения ценовых категорий товаров и последующего комплексирования набора алгоритмов классификации. Приведено описание архитектуры разработанной информационной системы, представлены результаты классификации.
Введение
Применение новых технологий к накопленным данным, как небольших коммерческих организаций, так и крупнейших мировых компаний может послужить источником ранее неизвестных фактов и выводов. В условиях высокой конкуренции в сфере онлайн торговли определение оптимальной цены товара может играть существенную роль в повышении прибыльности компании [6, c. 712].
С точки зрения интеллектуального анализа данных, прогнозирование категории цены товара является задачей классификации [2, c. 34]. В данной статье будут рассмотрены следующие алгоритмы классификации: k-ближайших соседей, градиентный бустинг, CatBoost, решающие деревья, случайный лес. Данные алгоритмы будут использованы в построении моделей машинного обучения для определения категории стоимости товара на основании описательных характеристик товаров. Также будут представлены значения метрик качества, полученных в результате проведенного исследования по классификации данных.
1. Постановка задачи классификации для определения ценовых категорий товаров
Задача классификации в общем виде выглядит следующим образом. Предположим, что уже имеется некоторое множество объектов , представляющих собой товары интернет-магазина. Для каждого товара существует характеризующий его вектор числовых признаков (факторов) , а также, задаётся конечное множество классов , где каждый класс является ценовой категорией. Обозначим идеальный классификатор, способный отнести товар к классу его ценовой категории как . Тогда задача классификации состоит в построении такого алгоритма , который будет максимально близким к идеальному [5, c. 101]. И по вектору признаков сможет классифицировать произвольный объект . Решение задачи классификации будет включать в себя следующие основные шаги:
- Сбор и предварительная обработка данных о товарах;
- Разбиение набора данных на обучающую и тестовую выборки, стратификация;
- Обучение модели классификации (задание гиперпараметров, отбор признаков);
- Интерпретация результатов с использованием метрик оценки качества классификации.
Ансамблирование (комплексирование) помогает улучшить результаты машинного обучения за счёт комбинации нескольких моделей. Такой подход позволяет повысить прогнозируемость по сравнению с использованием одной модели [4, c. 135].
Мы выбрали стэкинг для реализации комплексирования алгоритмов классификации.
Стекинг - это метод ансамблирования, который объединяет несколько моделей классификации или регрессии с помощью мета-классификатора или мета-регрессора. Модели базового уровня обучаются на основе полного обучающего набора данных, затем метамодель обучается на выходах моделей базового уровня.
Базовые модели зачастую состоят из различных алгоритмов обучения, и поэтому стековые ансамбли часто гетерогенны (неоднородны). На рисунке 1 представлен алгоритм стэкинга в общем виде:
Рисунок 1. Алгоритм стэкинга
2. Разработка системы определения категории цены товара на основе комплексирования набора алгоритмов классификации
2.1 Архитектура системы интернет-магазин
Нами была разработана архитектура Интернет магазина. В качестве архитектурной модели программного комплекса нами была выбрана трехуровневая архитектурная модель, которая предполагает наличие трех компонентов: клиента, сервера приложений (к которому подключено клиентское приложение) и сервера базы данных (с которым работает сервер приложений).
В качестве сервера приложений был выбран WildFly-10.1.0.Final. Система реализована с помощью платформы Java. В качестве СУБД было решено использовать PostgreSQL10. Она позволяет аккумулировать данные для последующего анализа [1, c. 320]. А также, предоставляет возможность экспортировать агрегированные данные в формате CSV, идеально подходящем для осуществления их дальнейшего анализа с использованием алгоритмов и методов машинного обучения.
2.2 Реализация информационной системы
Построение моделей классификации было проведено с использованием языка программирования Python. Используемые нами алгоритмы машинного обучения реализованы в библиотеках scikit-learn(DecisionTreeClassifier, GradientBoostingClassifier, RandomForestClassifier, k-NN), CatBoost.
Данные о товарах интернет-магазина состояли из 2000 объектов наблюдения, представляющих собой мобильные телефоны, и 21 их признака. Было определено 4 класса для каждой категории цены товара. Каждый из 2000 объектов относился к одному из 4 классов. Тестовый набор данных был получен из открытого источника, сайта kaggle.com.
Набор данных был разделен на две выборки – обучающую (80% объектов), и контрольную (20% объектов). Далее было произведено обучение следующих моделей алгоритмов классификации: k-ближайших соседей, градиентный бустинг, CatBoost, решающие деревья, случайный лес. А также, проведен стэкинг следующих алгоритмов: логистическая регрессия, наивный Байес, k-ближайших соседей с использованием случайного леса в качестве мета-алгоритма.
Мы выбрали стандартные для оценки качества классификации метрики: точность (precision), полноту (recall) и F-меру.
Заключение
По результатам исследования самым точным из рассматриваемых алгоритмов для предсказания категории цены товара - CatBoost. Согласно выбранным метрикам оценки качества классификации, CatBoost показал точность 0,99, полноту 0,98 и F-меру 0,98.
В таблице 1 представлены результаты всех рассмотренных алгоритмов классификации.
На сегодняшний день редко используются одиночные методы классификации и регрессии и всё большую популярность получают методы, объединяющие несколько алгоритмов [3, c. 978]. Наши результаты свидетельствуют о том, что объединение алгоритмов в так называемый ансамбль даёт большую точность, чем его составляющие, так как ошибки различных базовых алгоритмов взаимно компенсируются.
Таблица 1.
Результаты многоклассовой классификации объектов для определения категории цены товара
Алгоритм |
Точность |
Полнота |
F-мера |
Accuracy |
CatBoost |
0,99 |
0,98 |
0,98 |
0.98 |
k-ближайших соседей |
0,94 |
0,94 |
0,94 |
0.94 |
Решающие деревья |
0,86 |
0,85 |
0,85 |
0.86 |
Случайный лес |
0,90 |
0,90 |
0,90 |
0.90 |
Градиентный бустинг |
0,92 |
0,92 |
0,92 |
0.92 |
В результате стэкинга алгоритмов классификации были получены следующие показатели:
Таблица 2.
Результаты стэкинга алгоритмов классификации.
Алгоритм |
Точность |
Логистическая регрессия |
0.72 |
Наивный Байес |
0.81 |
k-ближайших соседей |
0.91 |
Случайный лес (мета-алгоритм) |
0.90 |
Ниже представлена матрица ошибок многоклассовой классификации, полученная для мета-алгоритма использованного в стэкинге: случайного леса.
Каждая строка матрицы представляет предсказанный класс, в то время как каждый столбец представляет экземпляры реальных классов.
Рисунок 2. Матрица ошибок многоклассовой классификации для алгоритма Случайный лес
Согласно полученным результатам, стэкинг алгоритмов не превзошел точность алгоритма CatBoost.
Рисунок 3. Комплексирование (стэкинг) алгоритмов классификации
На рисунке 3 изображен стэкинг алгоритмов, состоящий из логистической регрессии, наивного Байеса, k-ближайших соседей, и случайного леса в качестве мета-алгоритма. На графике видно, что стэкинг не даёт большей точности, чем каждый из отдельно составляющих его алгоритмов.
Список литературы:
- Стоунз Р. PostgreSQL. Основы [Текст] / Р. Стоунз, Н. Мэттью. – М.: Символ-Плюс, 2012. – 640 с.
- Abels S. Reclassification of electronic product catalogs: The "apricot" approach and its evaluation results. InformingScience [Текст] / S. Abels, A. Hahn // Informing Science. – 2006. – Vol. 9(1). – P. 31-47.
- Biau G. Accelerated gradient boosting [Текст] / G. Biau, B. Cadre // Machine Learning. – 2019. – Vol. 108(6). – P. 971-992.
- Bottou L. From machine learning to machine reasoning [Текст] / L. Bottou, A. Blum // Machine Learning. – 2012. – Vol. 94(2). – P. 133-149.
- Nolan D. Computing in the Statistics Curricula [Текст] / D. Nolan, D. Temple Lang // The American Statistician. – 2010. – Vol. 64(2). – P. 97-107.
- Ristoski P. A machine learning approach for product matching and categorization [Текст] / P. Ristoski, P. Petrovski, P. Mika // Semantic Web. - 2018. – Vol. 9(5). – P. 707-728.
Оставить комментарий