![image](http://habrastorage.org/files/8e5/caf/9b8/8e5caf9b8d7b4e798a8afe2e96efc4da.jpg)
Если вы работаете в сфере торговли, то наверняка задача анализа корзины покупателя (Shopping Basket Analysis) будет вам интересна. Говоря простыми словами, данная задача сводится к тому, чтобы определить какие товары чаще всего покупаются вместе с другими товарами. Обладая этой информацией можно без труда увеличить объемы продаж, сделав выкладку товара в соответствии с результатами анализа, или реализовать систему рекомендаций покупателю при продаже товара.
Для решения задачи нам потребуется следующий инструментарий:
- Microsoft Excel (в моем случае Microsoft Office 2013 Standard 2013).
- Microsoft SQL Server (в моем случае Microsoft SQL Server 2014 Standard Edition).
Так же для проведения анализа нам потребуются данные о продажах. Предварительно я получил с помощью отчета в OLTP-системе следующую выборку (см. рис. 1).
![image](http://habrastorage.org/files/a19/0bd/881/a190bd8816a74e9cbf71ac6bf982d7c8.png)
Рис. 1.
В выборке присутствуют:
- Ссылка на документ (поле Doc).
- Код товара (поле Product).
- Количество проданного товара (поле Quantity).
- Сумма проданного товара (поле Amount).
Перед тем как приступить к анализу корзины, нам потребуется скачать бесплатный плагин для Excel, который называется Data Mining Add-ins for Excel. После установки плагина в главном меню Excel появится пункт DATA MINING (см. рис. 2).
![image](http://habrastorage.org/files/53d/b6b/17d/53db6b17d4c647f5a217cf203db4a998.png)
Рис. 2.
Сам анализ выполняется на сервере службой SQL Server Analysis Services, поэтому необходимо нажать кнопку в панели инструментов в группе Connections (выделено на рис. 2 красной стрелочкой) и установить связь с сервером Analysis Services. Первоначально там будет написано «No connection», нажмите на эту кнопку и укажите параметры подключения. После этого нажмите кнопочку «Trace» и снимите флажок «Use session models» (см. рис. 3).
![image](http://habrastorage.org/files/81d/cd3/00d/81dcd300de1845ddbab979db84446452.png)
Рис. 3.
Теперь все готово для анализа. Переходим в Excel, нажимаем Ctrl+A чтобы выделить таблицу, переходим на вкладку «Вставка» и нажимаем на кнопку «Таблица» (см. рис. 4).
![image](http://habrastorage.org/files/b70/c27/4e2/b70c274e2f184b95ad668ea13692a343.png)
Рис. 4.
После этого увидим следующую картину (см. рис. 5).
![image](http://habrastorage.org/files/6c4/d9f/1aa/6c4d9f1aad5b4b50a59a3817849f7eaf.png)
Рис. 5.
Теперь нажимаем на кнопку «Shopping Basket Analysis». (Обратите внимание на соседние кнопки, которые позволяют проводить другого рода анализ данных, например, «Определение категорий» (Detecting Categories), «Прогноз» (Forecast) и другие, но это тема для отдельных статей.) В открывшемся окне заполняем параметры для анализа. В качестве транзакции (Transaction ID) выбираем поле Doc, Item — Product, Item Value — Quantity. Нажимаем кнопку «Run» (см. рис. 6).
![image](http://habrastorage.org/files/8a2/1fd/b99/8a21fdb993f64390a6e5d6260d10dbde.png)
Рис. 6.
Во время расчета программа будет показывать такое окошко (см. рис. 7).
![image](http://habrastorage.org/files/c02/4fb/f75/c024fbf755214fd784350e8f2c13cfee.png)
Рис. 7.
После того, как расчет будет закончен, в книгу Excel будет автоматически добавлено два новых листа:
- Shopping Basket Bundled Items (Товары которые покупаются вместе).
- Shopping Basket Recommendations (Рекомендации для покупки).
Рассмотрим первую полученную табличку «Shopping Basket Bundled Items». В ней мы видим товары, которые покупают вместе, отсортированные по общему количеству продаж (см. рис. 8).
![image](http://habrastorage.org/files/94c/9cc/73c/94c9cc73c421472c9ee91af8a4a9be83.png)
Рис. 8.
И вторая таблица «Shopping Basket Recommendations». В ней мы видим рекомендации следующего типа — купил товар «Selected Item», рекомендуем купить товар «Recommendation». Данные отсортированы по количеству совместных продаж (см. рис. 9).
![image](http://habrastorage.org/files/cb5/0c3/100/cb50c31009344fcca547c45315f4551d.png)
Рис. 9.
На этом все. Как видите, анализ корзины покупателя делается довольно просто.
Теперь вернемся к вопросу как можно использовать полученные данные. Я лично предложил своему бизнесу следующее:
- Проверить, соответствует ли выкладка товара в розничной сети данным анализа и, в случае необходимости, поменять выкладку.
- Доработать автоматизированную систему сбора заказов покупателей в оптовых продажа таким образом, чтобы при создании предварительного заказа торговому представителю показывалась информация о рекомендуемом дополнении заказа.
Если в течение следующего квартала мои инновации принесут прирост продаж, будет повод попросить премию :)
Надеюсь данная статья будет полезной и вам. Спасибо за прочтение.
Комментарии (9)
servekon
03.04.2015 21:30Я думаю, что еще Shopping Basket Analysis позволяет понять, какие непопулярные товары нужно выложить на видное место, чтобы увеличить те же продажи.
Query Автор
03.04.2015 23:14Думаю да, если заполучить данные конкурентов, например, и с помощью них обнаружить, что товар А, хорошо продается с товаром Б, а у нас, к примеру, товар Б вообще слабо продается, потому что лежит непонятно где (не рядом товаром А).
JaLoveAst1k
04.04.2015 01:31Надо было бы тогда уж и примеры топовых коррелирующих товаров предоставить, любопытно же!
Query Автор
04.04.2015 10:36Тогда получилась бы статья 18+ :) так как речь идет об алкогольной продукции. Не вдаваясь в подробности можно смело сказать, что красное вино хорошо продается в паре с белым аналогичной марки. Так же вина хорошо продаются в паре с игристыми винами (шампанским). Кстати, в магазине, как правило выкладывают красные и белые вина на разных полках. Получается это не совсем правильно. По крайне мере я бы рассмотрел вариант создания отдельной полки для «неискушенных», где выкладка была бы согласно результатам анализа корзины. Так же вариант — сделать подарочные упаковки с уже приготовленными «джентльменскими» наборами. Здесь пусть профессионалы думают и решают, самое главное, что у них теперь есть инструмент.
1099511627776
04.04.2015 10:32Если позволите, 2 вопроса,
1. За какой период делалась выборка?
2. Сколько товаров в магазине?Query Автор
04.04.2015 10:381. Выборка делалась за год.
2. Ассортимент приблизительно 2 тыс. наименований.1099511627776
04.04.2015 11:25Вам повезло, я шас проверил на своих данных (около 20тис. наименований) правда не через Sql analysis а просто скриптом на коленке Firebird + таблица excel,
Практически все товары (и товарные группы) по 1 в чеке. Первое совпадение 2-х товаров получается продается где-то 23 раза за 3 месяца и то это сухари здобные + сухари молотые
Baur
Спасибо, интересно.
А как поступать при анализе с товарами заменителями? Мне кажется разумнее анализировать взаимосвязь между группами товаров, а не отдельными наименованиями. И тут возникает проблема подготовки данных с созданием товарных групп для анализа, если товары не сгруппированы заранее в учётной системе.
Query Автор
Вопрос правильный. Если приоткрыть завесу, то в моем случае за кодами товаров скрываются как раз коды групп аналогов или, пользуясь вашей терминологией, группы товаров заменителей.