Pull to refresh

Comments 70

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

и еще, если есть возможность — не могли бы Вы рассказать про алгоритмы, на основе которых выбранные товары располагаются рядом.

На сколько я себе представляю этот вопрос, это должен быть некий алгоритм, балансирующий между двумя гранями:
* расположение рядом в первую очередь родственных товаров (все сорта печенья в одном месте)
* с другой стороны — как можно более близкое расположение товаров, которые наиболее часто вместе покупаются.

Применяются ли алгоритмы кластеризации типа CLOPE ( www.basegroup.ru/library/analysis/clusterization/clope/ ), или же это какие-то специфические алгоритмы?
Спасибо за коммент коллег из НИГМЫ :)
1. График, согласен — очевидный. Но (небольшая реклама) мы единственные, кто ориентирует прогноз на нессиметричный функционал потерь, т.к. все мировые вендоры используют симметричные потери (для них потерит при недопрогнозе и перепрогнозе равны).
2. насчет алгоритмов — в следующем топике расскажу подробнее. В двух словах: мы использует подход одного из основателей компании — Академика Журавлева (http://ru.wikipedia.org/wiki/%D0%96%D1%83%D1%80%D0%B0%D0%B2%D0%BB%D1%91%D0%B2,_%D0%AE%D1%80%D0%B8%D0%B9_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87) — которые позволяет автоматически строить собственный алгоритм для каждого SKU в каждом магазине на основе всех известных.
3. поиском похожих товаров мы не занимались (хотя выявляли зависимости продаваемости товаров вместе — например, памперсы+пиво). Чаще всего похожие товары берутся из классификторов, уже существующих в торговых сетях
1. а вот это уточнение уже довольно интересно. так как я не вращаюсь в этой сфере на несимметричность графика я не обратил никакого внимания. а можно тогда подробнее объяснить, с чем она связана?

2. спасибо, буду ждать
Связана она с тем, что потерянная от нереализованного товара прибыль не всегда равна издержкам на хранение «лишнего товара». Возможны разные модели, которые мы и учитываем.
а вот интересно, присудствуют ли у вас какие-либо отличия при подсчёте убытков от нереализованного товара от подсчёта убытков от пиратсва в софте, например? потому что схемы подсчёта убытков от пиратства я просто в принципе не понимаю: если я поставил пиратскую копию фотошопа — совсем не факт, что я готов купить лицензию. может я вместо этого поставлю бесплатный гимп, и мне его вполне хватит.

или же расчет убытков идет больше на интуитивном уровне?
прошу прощения за припоздненный комментарий, дело в том, что занимаюсь датамайнингом в ритейле.
скажите, пожалуйста, какое ПО вы используете для подобных прогнозов?
Nickie привет
Мы использовали в Форексис собственное ПО.
Вообще можно использовать SAS, SPSS, KXEN, Прогноз, Base Group, да и много чего еще. А лучше всех будет Эксель. Ну еще Oracle DataMining и Oracle Essbase :)))
Привет :)

Собственно ПО — это серьёзно!

Я для целей кластеризации использовал CRAN R.
Внедрение SAS'a нам оценили в 70млн, поэтому пока обходимся иными средствами :)

Про Эксель, надеюсь, это был юмор. :))
В целом понравилось, было бы интересно и про телеком услышать :)
Да, нужен прогноз, сколько трафика нужно докинуть в следующую пятницу :)
Это в Excel легко делается ;-)

Учите матчасть.
Тема интересная.

Если автор найдет время, была бы очень интересна отдельная публикация для задач более низкого уровня. Ну, например: маленький городок, маленькая торговая фирмочка, сотня, допустим, позиций в ассортименте. Допустим, уже додумался предприниматель, что закупки «на глазок» — это не есть здорово. Как, работая с обычным Excel, принимать решения?

Теории на тему — много. Только она не учитывает обычно, что
а) спрос не повторяется из года в год на большинстве рынков, не растет и не падает линейно.
б) бывают ошибки (не успел закупить перед сезоном, или сезон, наоборот, был невыраженный) и случайности (соседний магазин сделал распродажу или закрылся), ведущие к точечным искажениям.

насчет мальних компаний — уже писал. 1) им такие решения не очень нужны, т.к. человек на небольших даных прогнозирует все же лучше, т.к. учитывает больше ВНЕШНИХ факторов (хотя смотря какой аналитик :)) 2)чаще всего внедрение подобной системы не возможно у мелких компаний ввиду их малой информатизации (банально нет истории), ну и денег такие решения стоят много :)

Так что для малого бизнеса — Excel — лучше всего :)
Кстати, если вы думаете, что гиганты мира сего типа Кока-колы не использует Excel для прогнозирования — вы сильно ошибаетесь — еще как использует, только в совокупности с другими больщими системами :)

Кстати внешние факторы, такие как «закрытие магазина конкурента» очень часто используются в бытовом ритейле (МВидео, Техносила и прочие). Там это очень ярко выражено. Решается задача просто — вводится коэффициент, посчитаный на основе истории открытия/закрытия рядом конкурентов (если эта информция есть в учетной системе).
А есть какие-то общепринятые алгоритмы выявления «тёмных факторов» — неизвестных внешних факторов, оказавших влияние на выборку?

Я сам пару лет назад сталкивался с подобной задачей, но там было достаточно просто. Отсутствие определённого товара на складе вызывало практически пропорциональный спрос аналогичного товара той-же группы, а в общем соблюдалась строгая недельная сезонность. Так по внутригрупповым перераспределениям спроса я находил факты out-of-stock. Есть ли более общие решения подобных проблем?
отличный поверхностный обзорчик. Спасибо.
что касается over-stock и убытков с ним связанных, есть одна история:
однажды один крупный европейский ритейлер, открывая магазин в столице, на просьбу сделать свой склад более вместительным, ответил: «Зачем?! Мы же будем постоянно подвозить то, что заканчивается и сразу выгружать товар на полки...» Пробки в расчет не взяли )) Теперь то, что закончилось позавчера, привозят на след день, или через день, а иногда еще с тем, что по прогнозам закончится завтра, или послезавтра, но блин вдруг сегодня… Помещение склада не было спроектировано на 2-3 дневное хранение товаров, и data-mining не работает должным образом до сих пор.
на самом деле поставки с РЦ (распределительный центр, считай главный склад в регионе) происходят в магазин ежедневно — это относится к скоропорту, тем не менее невозможно физически (и не выгодно логистически) гонять по 10 фур в день :), поэтому совершенно верно, что в любом магазине есть типа местный склад.

Есть еще такое интересное понятие, как «выкладка товаров на полку». Известно, что если не полке в Ашане будет лежать не 300-500 йогуртов, а 20-30, то их почти не будут рать, т.к. посетители решат (интуитивно), что они просроченные и даже не подойжут или не увидят товар. Поэтому для каждого SKU вычисляется свой минимальный запас, хотя чаще это задача мерчендайзеров :)

Еще очень интересно data-майнить инвентаризации. Известно, что food-retail проводит инвентаризации не чаще раза в квартал, а иногда и раз в год. Так вот, с помощью data minnig можно выявлть товары по которым наблюдается необчное (нехарактерное) отсутствие или спад продаж и дать задание товароведу проверить этот товар по факту, т.е. сравнить покзатели учетной системы и факта. Дает очень хороший эффект для оборачиваемости товаров.
>Есть еще такое интересное понятие, как «выкладка товаров на полку». Известно, что если не полке в Ашане будет лежать не 300-500 йогуртов, а 20-30, то их почти не будут рать, т.к. посетители решат (интуитивно), что они просроченные и даже не подойжут или не увидят товар. Поэтому для каждого SKU вычисляется свой минимальный запас, хотя чаще это задача мерчендайзеров :)

для этого можно воспользоваться статистикой продаж (ну и конечно нужна информация о количестве товаров на полке) и просто из этих данные одним SQL запросом получить нужную информацию.
отчасти вы правы. Data Mining это ведь и есть статистика, только под соусом «для всех» и «интеллектуальный анализ данных», т.е. от пользователя требуется меньше усилий для выявления закономерностей. С другой стороны, специалисты Machine Learning скажут, что DM использует их модели и алгоритмы.
Интересно про data mining в банках еще, что они там делают, чтобы из нас денег больше брать???
а так спасибо — интересно
Да, интересно :)

В банках мы делаем решения Scoring, т.е. система, которая решает дать ли вам кредит на основе анализа информации по ранее выданным кредитам и кластеризации клиентов, которым они были выданы :)
Тоже расскажем.
а не могли бы поделиться информацией с технической стороны этой задачи? интересует на чем Вы реализуете модели(или может применяете готовый софт), насколько эффективно они работают(скорость, память, как параллелятся расчеты)?
сорри, но это и комм. тайна (и не хочу лишней рекламы) и не тема данного топика. Я хочу рассказать про бизнес-кейсы. Кстати, надеюсь, что коллеги из смежных отраслей поделяться своими :)
очень жалко, просто из того, что я видел (инструменты) они или стоят очень больших денег (но там с архитектурой все хорошо) или бесплатные но большие объемы гонять не получиться.
Наши решения сравнительно недорогие, но приспособлены к серьезному объему данных.
Посмотрите Deductor на www.basegroup.ru
Цены существенно ниже конкурентов.
А возможностей не меньше чем в MS SQL 2008 Server Analysis Services.
Но требуется больше знаний, т.к. настроек много.
Если настройки пугают, для конечных пользователей есть Data Mining Add-ins for Office 2007. Из Excel можно исследовать данные загруженные в MS SQL 2008 Express (бесплатно, но ограничения на ресурсы есть).
рад приветствовать коллег из basegroup ??? :)
Разочарую Вас, нет :) Хотя, помнится несколько лет назад этот вопрос вскользь обсуждался :)
Я разработал в университете курс «Интеллектуальные ИС». На лабораторных и на КР работали с Дедуктором, т.к. у них есть академ версия. В этом году студенты сами выбирали между Дедуктором и MS DM.
супер. Посмотрел на личном блоге. Дедуктор действительно хорошая вещь, никто не спорит :) и сам basegroup много чего умеет :)

смотрели мы его (Deductor), цена безусловно радует, да и возможностей очень много. но технологически он не понравился, а не понтравились следующие вещи: он 32 битный и под винду, вызывает сомнение его масштабируемость. Как система класса отдела\департамента неплохо бы смотрелся но как корпоративная он показался слабым. ИМХО (никого обидеть не хочу).
по поводу MSAS у нас есть 2005 но руки не доходят посмотреть(занимаюсь другим проектом, а DM в последствии может стать его частью, вот и всячески интересуюсь). Не подскажите ссылки на интересные метериалы (туториал) как с ним работать?
К технология (Deductor на Delphi написан) мне тоже не очень симпатична. Качество заметно поднялось по сравнению с предыдущими версиями. Что касается масштабируемости — не знаю, не исследовал.
по MS SQL DMX книги есть. Даже, что-то на русский переводили. Сразу не скажу с чего начать. Потребуется время на обзор литературы. Предлагаю взглянуть на MSAS через Data Mining Add-ins for Office 2007 к Excel.
Вот тут можно скринкасты посмотреть.
а как вы решаете задачи следующего рода:
— надо определить оптимальный ассортимент магазина (какие товары надо продавать, в каком количестве они должны стоять на полках, при этом учитывать корреляцию товаров/групп между собой)
— определение похожих товаров и изучение вариантов замены одного товара другим (на сколько упадут продажи, или может вырастут)
1. Первая задача называется «управление ассортиментной матрицей». Она решается автоматически на основани тоже нессиметричного функционала. Система начинает заказывать больше товара, у которого больше оборачиваемость и больше маржа, что и нужно ритейлу :). Естественно посоветовать закупать новый сыр она не может, т.к. не знает о его существовании, но скорректировать текущую матрицу — она умеет
2. Второая задача называется страшным словом «канибализация» :)
она так же учитывается на истории, хотя здесь больше стоит анализировать факт.
Хотелось бы узнать так же об инфраструктуре на чем держатся эти решения, как собирается информация, какие готовые решения существуют для анализа.
решение ставится на существующую ERP у заказчика. У него может быть 1С, Axapta, SAP, Oracle, GOLD,…
Есть целая технология построения систем поддержки принятия решений (DSS). Они включают комплекс технологий OLAP, хранилищ данных (DW), витрин данных (Data Marts), ETL (извлечение и очистка данных), Data Mining и прочих.

Как уже сказал Gumoza, данные берутся из учетных систем. Сама по себе DSS-система — не транзакционная и чаще всего построена на основе хранилищ данных и используется именно для аналитики, а не для сбора данных.

С точки зрения инфраструктуры можете посмотреть продукты IBM, Cognos (тоже уже IBM), MS SQL Server Analysis Services, аналогичные решения SAP и Oracle.
да уж, сегодня IBM порадовал еще и покупкой SPSS — тоже дата-майнеры еще те :)
на счет Cognos, как они сами говорят их Data Mining достиг совершенства и прекратил свое развитие, так, что это решение умирает.
у Oracle есть на эту тему очень интересное решение RPAS, так же можно посмотреть на Data Mining который встроен в СУБД.
Стоимость этих решений весьма не маленькая.
Ну так! Решения на DSS-системах вообще очень дорогое удовольствие. Я так думаю, это имеет смысл только когда бизнес достиг действительно определенных высот. Лицензии и обслуживание дорогие как атомная война.
это понятно, просто не каждый станет вкладывать кучу денег в «черный ящик».
если в зять тот же RPAS то у них уже есть достаточно много готовых моделей, но они не дают интерфейса для создания и подключения собственных.
Вендоры хотят не только продать но и потом еще долго качать деньги из заказчика и не все на это готовы т.к. умею считать и зарабатывать.
Кстати, хорошее замечание. Мое личное мнение таково, что вендоры DSS-технологий недостаточно… хорошо что ли доносят владельцем бизнеса, чем же системы отличаются и какие конкретные задачи они решают. Отсюда и расхожее мнение, что все это «мистика и кот в мешке», к тому же очень дорогие.
Большое спасибо за интересный материал.
Вообще, очень интересная тема: реальные кейсы того, как, по каким алгоритмам и принципам, автоматизировались различные аспекты принятия управленческих решений в компаниях разного профиля.
Спасибо за статью, жду продолжения.
Ещё бы хотелось увидеть более изощрённые варианты применения средств дата мининга, какие — нибудь редкие, может уникальные проекты.
изощримся — напишем, хотя можно поискать. Жаль, что некоторые проекты нельзя раскрывать (NDA)
на счет бесплатного софта, есть такая штука как R-Project (http://www.r-project.org/), очень популярная за бугром. У Вас случайно опыта работы с ней нету?
да, было бы интересно посмотреть на примеры с доступным софтом, где средства Excel'я уже не совсем достаточны…

от себя могу добавить пару опенсорсных проектов, это в первую очередь Века, на ней базируются практически все остальные, как Pentaho и RapidMiner

лично я несколько лет назад работал с Векой (в рамках студенческой работы), от них же есть замечательная книга с практическими примерами.
Хотелось бы спросить автора статьи.
А на практике где это реализовано?

P.S.: Сам я видел такие теоретические выкладки еще в 2000 году.
как ни странно, реализации на том или ином уровне есть у многих (даже Российских ритейлов). В Европе так все уже заавтоматизировано до предела — почитайте хотя бы про Tesco — они то того «задатамайнились», — что меняют выкладку товаров в прикассовой зоне в зависимости от времени, т.к. просчитали, что некие товары лучше продаются утром, а другие вечером.

Вообще весь дата-майнинг стал развиваться относительно недавно (10-15 лет) т.к. появились мощное недорогое железо. которое может это обрабатывать. 15 лет назад прогноз для 100 магазинов на 10 000 товаров считался бы (наверное) неделю :), тогда как он нужен каждый день.

Если говорить о реализации, то здесь я могу только за наших клиентов сказать, т.к. если у того же SAP написано, что он умеет прогнозировать, я не видел еще не одну сеть, где это на 100% работает — скорее некое приближение. В любом датамайнинговом проекте самое важное не формула или метод, а руки, которые его установят. Этого пока в России, к сожалению (а для нас к счастью) мало кто умеет :)

Я вот работал в интернет ретейле Озоне и действительно могу сказать, что прогноз закупок очень неприятная вещь.
Из последнего, что там сделали, это запустили алгоритм «С этим товаром часто покупают»
на базе поиска подобия по косинусу угла в векторном пространстве клиентов и товаров :-)
Мне показалось, что основные приведённые функции Data Mining'а в статье, это всё же больше OLAP. Data Mining, имхо, это нахождение скрытых зависимостей, а уж анализ проданного товара и прогнозирование будущего спроса, это что-то более простое. Если я ошибаюсь, то не могли бы Вы разъяснить, по крайне мере Ваше понимание различия между OLAP и Data Mining'ом.

Не автор. Но придерживаюсь Вашей точки зрения. DM более глубокий анализ данных, чем OLAP. На мой взгляд, проще воспринимать DM как некий GUI над статистикой и машинным обучением.
Сухарики будут продаваться лучше, если их поставить рядом с пивом. А такие зависимости тоже можно вычислять?
А вот не факт! Я не профи в мерчендайзинге, но знаю, что хлебобулочные товары запихивают в самый конец зала, чтобы покупатель просмотрел как можно больше товара, пока дойдет до туда и обратно к кассам. По моим наблюдениям, сухарики очень часто размещают в далеке от пива.
Т.е. учитывается влияние относительного расположения товаров не только на продажи этих конкретных товаров, но и на продажи всего ассортимента? Интересно, это делается автоматически или вручную, на основе интуиции/здравого смысла? Если автоматически — блин, это же офигеть какая по вычислительной сложности задача.
Опять же, нет у меня опыта решения подобных задач, но тут без эвристик не обойтись, т.к. соглашусь с Вами «это же офигеть какая по вычислительной сложности задача» =)
Наверное, насчет хлеба идея проста: максимизация времени внимания среднего покупателя.
тут смысл не в самом хлебе. есть так называемый ABC анализ, так вот если провести анализ потребительской корзины (Market Basket Analysis), то если 2(и более) товара группы A встречаются вместе в чеке, то разумно расположить эти товары в разных частях торгового зала. Хлеб это типичный товар группы А и поэтому имеет смысл располагать его подальше.
Один дядька рассказывал такой случай. В Америкосии в супермаркете не продавалось какие-то сорта дорогого пива. Запустили на огроммный объём данных датамайнинг на предмет где же лучше поставить это пиво. После долгих размышлений система выдала — рядом с памперсами. Все посмеялись, но ради эксперимента поставили это пиво рядом с памперсами, в итоге всё это пиво продали. Объяснилось всё просто — молодые американские семьи перед выездом на пикники затаривались всем подряд, памперсами в том числе и почти по инерции хватали неотъемлимый атрибут подобных выездов — пиво.

История не моя, за что купил, за то и продал.
Верю. Восхищаюсь программой. Вероятно, на ассоциациях выявили (корзина покупателя).
история про памперсы и пиво — действительно факт!!!

Самое интересное — когда мы делали первый проект в ритейле (2003 год — Перекресток) — мы тоже нашли эту зависимость — побежали к заказчику, но они это уже знали (пример давно известен на западе) :)) вот такая история.
Конечно, эта задача называется «анализ рыночной корзины» — по сути, первая реальная задача, из-за которой начал развиваться Data Mining.
Бизнес кейс вы хорошо описали. А как же с реальным решением задачи? Инструменты Вы реши не выдавать, но ведь можно рассказать все этапы DM конкретно для этой задачи. Как вы данные очистили? Какие задачи решали и в каком порядке (кластеризацию, классификацию, ассоциацию, прогноз)? Какую модель взяли (деревья решений, нейронные сети)? Параметры модели? Какие еще другие модели пробовали, почему остановились на последней?
приходите к нам работать — расскажем :)
На самом деле чуть позже постараюсь раскрыть эти вопросы. Так быстро в комментарии не ответишь, думаю, что про этапы работы с данными в дата-майнинге можно и топик написать. Тем более от качества работы с данными в таких проектах зависит 80% успеха (и это не наши слова, а мировой опыт так говорит).

Один из важнейших элементов очистки даных в этом кейсе — восстановиться спрос (как я уже и писал). Т.е. в те дни, когда продажа равна нулю и остаток равен нулю — нужно восстановить спрос (каким бы он был). И на основе восстановленного спроса прогнозировать, только так можно добиться сокращения дефицита на 70%, как мы сделали в одном из проектов.
может не много не в тему, но есть вопрос, а Вы не занимались задачами очистки\обогощения данных? типичная задача разбор адреса, сопостовление постащиков(когда в разных системах они могут иметь разное название Coca-cola или Кока-кола). Если до можете поделиться опытом таких работ?
работа с текстом (из вашего примера про Коку) похожа на наш проект — Антиплагиат (студенты на Хабре наверное знают :) ) тоже опишем в одном из топиков — очень хороший кейс датамайнинга.
Про Коку тут наверное больше имеется в виду часть технологий ETL (Extract, Transform, Load). Как раз в «Transform» и входят всякие манипуляции с данными по приведению их к единой форме, обогощению (например, если кока-кола, то безалкогольный напиток) и т.д…
ну основные вендоры ETL\ELT эту опцию продают отдельно. просто оно в другом контексте не имеет смысла. я не встречал отечственных тиражируемых решений в этой области, хотя на этих продуктах консалтеры зарабатывают хорошие деньги.
тут имелось ввиду другое: когда в таблице одного контрагента называют по-разному, например, ХабраХабр или Хабр или Habr — тогда система должна распознать, что это одно слово. Это этап очистки данных в дата майнинге.
Очень интересно, как российские компании относятся к передаче своих данных на сторону (для изучения).

Лет 10 назад плотно работал с DB2 и в дополнение к этому изучал IBM'овский Intelligent Miner for Data (сейчас существует как семейство продуктов DB2 Intelligent Miner).
Уже тогда было очевидно, что штуку можно много где и с толком применить. Но так же очевидно было и то, что никто свою коммерчески важную информацию на сторону не отдаст (а во многих случаях и сам брать не захочешь :))

Что-нибудь с тех пор изменилось?

Или вы создаете клиенту решение, оставляете у клиента, а с самими данными уже не работаете?
Sign up to leave a comment.

Articles