Я наткнулся на этот набор данных на Kaggle из области моды электронной коммерции. Качество наборов данных, созданных на Kaggle и отправленных пользователями со всего мира, действительно поражает. Это стало невероятной платформой для людей, которые могут узнать что-то новое в области науки о данных. Такие онлайн-ресурсы, безусловно, меняют способ обучения, прошли те времена, когда были стандартные учебники и физические библиотеки. Темпы кажутся такими быстрыми, что книги просто не успевают, по крайней мере, когда дело касается машинного обучения.



Этот набор данных кажется довольно типичным для большинства торговых площадок электронной коммерции, и поэтому я думаю, что это хорошее представление. Это набор данных, содержащий числовые рейтинговые данные, а также текстовые обзоры некоторых предметов одежды для женщин. У предметов есть «Идентификатор одежды», который является уникальным идентификатором. Существует два вида оценок: от 1 до 5 и от 1 до 0 для рекомендации или нет, биномиального атрибута. Наряду с этим существуют и другие атрибуты, описывающие категорию товара, возраст автора обзора и т. Д. Все они очень типичны для большинства подобных интернет-магазинов.

Я подумал, что с этим набором данных было бы интересно посмотреть, можно ли на основе текстовых обзоров предсказать, будет ли этот элемент иметь тенденцию или нет. Это была бы очень полезная информация для модного бизнеса.

В этом эксперименте я использовал два инструмента: Excel и Rapidminer. Этот рабочий процесс состоит из двух частей. Сначала некоторая разработка функций, выполняемая в Excel, затем собственно обучение и тестирование модели, выполняемые в Rapidminer.

Часть 1: Разработка функций

Имея данные, нам нужно сначала прийти к определению «тенденции». Как правило, именно в таких задачах пригодятся знания предметной области. Мы знаем, что если продукт хорошо себя зарекомендовал и если покупатели довольны им, они прилагают усилия, чтобы написать о нем положительные отзывы. Люди обычно склонны писать подробные обзоры, если они очень довольны или недовольны товаром. Если они счастливы, они, как правило, пишут хорошие отзывы и высоко оценивают их. Кроме того, хорошо зарекомендовавшие себя продукты получают много отзывов, и большинство рецензентов придерживаются аналогичного мнения о продукте.

Чтобы перевести это математически; существует прямая зависимость между количеством обзоров, средней оценкой продукта и обратная связь со стандартным отклонением оценок продукта. Если рынку это нравится, они, как правило, высоко оценивают его без особых изменений. На основе этого понимания мы можем создать новую функцию.

Я позаимствовал функцию активации tanh, используемую при обучении нейронной сети, чтобы определить новую функцию «Rating_strength».

Rating_strength = (1-e^(Proportion of reviews * Average rating / Std  Dev of rating)/(1+e^(Proportion of reviews * Average rating / Std Dev of rating)
Rating_strength = Rating_strength^2

#Proportion of reviews is the proportion of reviews that item received from the full dataset.
#Average and std dev are self explanatory.

Это создает новую функцию со значениями от 0 до 1. Значения, близкие к 1, присваиваются элементам, по которым было проведено большое количество обзоров, оценки были хорошими и в рейтингах очень низкая дисперсия, т. Е. Все оценили их. Что ж. Значения, близкие к 0, присваиваются элементам, которые не вызвали особого интереса. С его помощью я создал биномиальную метку «Тенденция» или «Не в тренде», где «Тенденция» была назначена элементам с рейтингом_strength ›0,00036. Это ограничение было определено простым просмотром набора данных, однако могут быть более автоматизированные способы сделать это.

До этого момента вся деятельность велась в старом добром Microsoft Excel. Следующая часть - это разработка модели для предсказания созданной нами биномиальной метки. Ниже приведен фрагмент набора данных. Часть прогнозного моделирования выполнялась в Rapidminer.

Часть 2: прогнозное моделирование

Эта часть была выполнена в Rapidminer. Проблема в основном в языковой обработке. Учитывая новый обзор, мы хотим сделать прогноз, будет ли этот элемент в тренде или нет. Несомненно, на языке обзора содержится информация, которая может дать ключ к разгадке того, будет ли предмет успешным. Учитывая прошлые данные, мы должны быть в состоянии предсказать, какие новые элементы будут рассматриваться.

Процесс, используемый в Rapidminer, показан ниже:

Здесь важен оператор Process Documents, который обычно используется в таких приложениях классификации текста. Он разбивает текст на токенизированные n-граммы, здесь n = 2. Эти n-граммы становятся частью набора слов, который модель позже использует для понимания взаимосвязи между словами в обзоре и классом метки. Внутренний поток в операторе Process Documents показан ниже. Обозначение слов, выделение и фильтрация игнорируемых слов (например, a, an, и т. Д.) Являются стандартной практикой.

После этого следующая задача - обучить и протестировать модель. Из тех, что я пробовал, самая простая модель k-NN дала наилучшие результаты! Неудивительно, что рекомендуется сначала опробовать простую модель k-NN на ваших данных. k был установлен в 1, и, учитывая большой набор данных, я провел обучение и тестирование на случайном подмножестве из 6000 выборок. Результаты представлены ниже.

Эти результаты были получены довольно быстро! Возможность предсказать шансы на успех таких продуктов может быть очень полезна при планировании запасов и распределения. Конечно, это можно расширить, используя оставшуюся часть данных или больше данных. Возможно, можно предсказать степень успеха по демографическим и географическим регионам, что может быть очень полезно при планировании правильного распределения продуктов. Как и в случае с любой моделью, важно дополнительно протестировать ее, запустив ее параллельно с данными в реальном времени, чтобы еще больше повысить точность модели. Такие приложения ясно показывают полезность таких методов, и их распространенность будет только расти.