Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Есть MS AS 2005. Есть таблица с тремя колонками: ид_клиента, дата (с точностью до дня), ид_товара. Сабж! Какой алгоритм надо для этого использовать? Я пробовал Association Rules, он почему-то считает за корзину строку в таблице, а не множество строк с одним ид_клиента. В интернете не нашел ничего, кроме утверждений, что эта задача решается легко и просто :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 13:10 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Если таблица, то, наверное, не MS AS а MS SQL. Правильно? Если так, то можно использовать инструменты класса Data Mining, которые поддерживают алгоритм Market Basket Analysis (Affinity Analysis). Этот алгоритм реализован, например, в продуктах компаний Base Group (не помню, как называется продукт, я его смотрел) и Megaputer (продукт называется Polyanalyst). Дальше надо эти продукты внимательно изучать, поскольку в случае большого объёма данных можно нарватся на ограниченную масштабируемость. Лучше всего, если инструмент позволяет майнить путём генерации SQL (так, например делает Teraminer от компании NCR, Megaputer тоже собирался реализовать такую функциональность в Полианалисте, не знаю на счёт Base Group). У меня был опыт с Полианалистом, когда он отказывался майнить больше двух с половиной миллионов строк, поскольку это хозяйство не помещалось в памяти. Это, конечно, копейки для розничной торговли, но у Вас, я вижу, агрегация на уровне дня, а не корзины. Очевидно, у Вас не розница. Может, объёмы данных у Вас небольшие, тогда можно использовать вышеперечисленные продукты. С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 13:20 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
У меня есть и MS SQL и MS AS. Можно ли использовать MS AS для такого анализа или надо смотреть (покупать) другие продукты? (у Basegroup вы наверное имели в виду Deductor?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 13:29 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Ещё раз замечу - про MS AS врать не буду - не знаю. У Base Group был отдельный продукт от Дедуктора. Смотрел я его чуть больше года назад. Может быть, они уже добавили его в Дедуктор, но тогда это был отдельный продукт. А как Ваша задача звучит в формулировке бизнеса (только не говорите анализ корзины, это скорее, метод решения, а не задача)? С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 13:33 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
да собственно так и звучит, только вместо товара - услуги, оттого и агрегация по дням. Hадо находить совместно оказываемые услуги, может даже их стоит агрегировать не по дням, а по клиентам. Хорошо бы еще учесть последовательность и корелляцию с данными клиентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 14:44 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Специалисты Microsoft советуют решать эту задачу через Microsoft_Decision_Trees Вот пример из нашей методички. CREATE MINING MODEL MarketBasketAnalysis { BasketID LONG KEY, Basket TABLE PREDICT { ProductName TEXT KEY } } USING Microsoft_Decision_Trees CREATE MINING MODEL dm ( CustomerID LONG KEY, Products TABLE PREDICT ( ProductID KEY, ProductName RELATED TO ProductID ) ) USING Microsoft_Decision_Trees Исследовать решение можно через Dependency Network или запросами подобными этому ( SELECT FLATTENED TopCount(Predict(dm.Products, EXCLUSIVE, INCLUDE_STATISTICS), $Probability, 5) -- top 5 most likely products FROM dm PREDICTION JOIN <your input data> AS t ON dm.Products.ProductID = t.Products.ProductID. Я обычно для таких задач использую все же кластеры. "Для решения нужно создать кластеры куда войдут группы клиентов и группы товаров. Очень важно чтобы это были именно группы, в противном случае решение может не получится (товары будут видны не вероятностями а exists-missing)". В принципе в DM от Microsoft имеет довольно много подводных камней. Лучше посмотреть где-то рабочее решение, и только потом делать самому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 14:49 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Владимир, что-то ерунду какую-то Микровофт рекомендует. Деревья решений - это деревья решений, аффинити-анализ - это нечто другое. И странно, что Вы задачу анализа корзины решаете кластерингом. Из всего этого я понял, что аглгоритма анализа корзины у Микрософта нет. По-моему, лучше смотреть решения от специализированных компаний. С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 14:57 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Константин, не будьте так категоричны. В теории DM доказывается, что все основные DM-алгоритмы сводятся к модификациям деревьев решений. Даже кластеры можно через деревья сделать. Microsoft предлагает все верно, это самая крутая реализация корзинок, которая подразумевает их иерархию ("вложенные корзинки"). В Юконе будет явно объявлен алгоритм для "корзинки", но это всего лишь настройка подобная описанной мной. Если я ошибаюсь, Моша поправит. Потом я достаточно равнодушно смотрю на то что там советуют производители. Маркетологу для "корзинного" нужно часто сгруппировать Клиент-Продукт. Тут достаточно кластера, остальное от лукавого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 15:04 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Владимир. ОК. Я не собирался быть категоричным. Просвятите, пожалуйста, тогда, что на входе, что на выходе в случае использования Микрософт. Для меня классическая постановка выглядит так - найти комбинации из двух и более товаров, которые с определённой (выше пороговой) частотой встречаются в одной корзине. Я просто не очень понимаю, как здесь можно применить деревья решений. Если не сложно, подкиньте ссылку на то, где доказывается, что основные алгоритмы DM сводятся к деревьям решений. Опять-таки для меня это не очень очевидно. Кстати, умеет ли алгоритм от Микрософт искать не только пары, а комбинации из большего количества товаров в корзине? С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 15:14 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Константин ЛисянскийДля меня классическая постановка выглядит так - найти комбинации из двух и более товаров, которые с определённой (выше пороговой) частотой встречаются в одной корзине. Я просто не очень понимаю, как здесь можно применить деревья решений. Я 100% того же мнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 15:24 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Ну за теорией наверное в Duwamish Books, а сами вопросы достаточно разжеваны на microsoft.public.sqlserver.datamining Вот примеры обсуждений. http://groups.google.ru/groups?hl=ru&lr=&threadm=3d3329c1%241%40news.microsoft.com&rnum=1&prev=/groups%3Fq%3DCREATE%2BMINING%2BMODEL%2BMarketBasketAnalysis%26hl%3Dru%26btnG%3D%25D0%259F%25D0%25BE%25D0%25B8%25D1%2581%25D0%25BA%2B%25D0%25B2%2BGoogle http://groups.google.ru/groups?hl=ru&lr=&threadm=%23Fh7HzLwBHA.2620%40tkmsftngp03&rnum=2&prev=/groups%3Fhl%3Dru%26lr%3D%26q%3DCREATE%2BMINING%2BMODEL%2BProductName%2Bbasket ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 15:46 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Владимир ИвановКонстантин, не будьте так категоричны. В теории DM доказывается, что все основные DM-алгоритмы сводятся к модификациям деревьев решений. Даже кластеры можно через деревья сделать. Microsoft предлагает все верно, это самая крутая реализация корзинок, которая подразумевает их иерархию ("вложенные корзинки"). В Юконе будет явно объявлен алгоритм для "корзинки", но это всего лишь настройка подобная описанной мной. Если я ошибаюсь, Моша поправит. Потом я достаточно равнодушно смотрю на то что там советуют производители. Маркетологу для "корзинного" нужно часто сгруппировать Клиент-Продукт. Тут достаточно кластера, остальное от лукавого. Простите за оффтоп, но не так давно просил помочь мне с кластером для определения групп товара, мне так и нечего вразумительного не посоветовали, начал собственное расследование и в итоге ничего не понял, везде написано как работает этот алгоритм но мне он полныю чушь показывал. Скорее всего я что то неправильно настроил. ГОСПОДА может кто то даст ссылочку с примером работы кластера от MS??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 15:57 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
К слову, я бы хотел по-возможности обсудить не только схоластические вопросы математического моделирования в DM, но и практику его внедрения. Давайте поделимся ПРАКТИКОЙ. Мои наблюдения 1) Основная проблема DM, это высокая квалификация аналитика который смотрит на результаты. Даже я бы сказал другая философия анализа, поэтому таких аналитиков как правило нет. Как ни странно, достаточно удачно тут работают бывшие IT-шники, которые несколько лет назад бросили IT и перешли в реальную экономику. Если у вашего клиента нет подходящего аналитика и он не может его создать, внедрять DM не стоит. 2) DM-анализ если без теории, это штука для аналитика весьма ИНТУИТИВНАЯ, т.к. даже опытный аналитик затрудняется представить правила формирования модели и ее ДЕЙСТВИТЕЛЬНУЮ релеватность реальным данным. 3) Следствия. п.1 и п.2 нужны простые ВИЗУАЛЬНЫЕ инструменты просмотра DM-моделей и хороший тренинг аналитика. Лучше в это вложиться, чем в вычислительные навороты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 16:02 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
2OLAPMASTER Внимательно перечитайте что я сказал выше и кластер получится. Как минимум "что-то вразумительное" и я бы сказал интересное для анализа будет. "Для решения нужно создать кластеры куда войдут группы клиентов и группы товаров. Очень важно чтобы это были именно группы , в противном случае решение может не получится (товары будут видны не вероятностями а exists-missing)". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 16:05 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Да, не обратил внимание, что речь об Юконе. см. описание DM в Юконе. Analytical problem Association: Advanced counting for correlations Examples • Market basket analysis • Advanced data exploration Microsoft algorithms • Decision Trees • Association Rules ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 16:11 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Чего-то на меня щедрость напала. :) Для практикующих DM вот пример как сделать DM-клиент для пользователя из компонент Microsoft, но без Analysis Manager. 15.10. Создание Data Mining клиента в Internet Explorer <HTML> <HEAD> <TITLE></TITLE> </HEAD> <SCRIPT LANGUAGE="VBScript"> sub DoIT() CubeBrowser1.Connect "Provider=MSOLAP;Data Source=SERVER;Catalog=FoodMart 2000","Customer Pattern Discovery", 1, "Загрузка DM-модели" end sub </SCRIPT> <BODY> <P><INPUT id=button1 name=button1 type=button value="Подключиться к Серверу" onclick="DoIT()"></P> <OBJECT classid="clsid:BF7D1C83-CFD4-48DA-8C0E-F4D3FC49F1D0" codebase="" id=CubeBrowser1 style="LEFT: 0px; TOP: 0px" VIEWASTEXT> <PARAM NAME="_ExtentX" VALUE="25000"> <PARAM NAME="_ExtentY" VALUE="14000"></OBJECT> </BODY> </HTML> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 16:14 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Владимир Иванов2OLAPMASTER Внимательно перечитайте что я сказал выше и кластер получится. Как минимум "что-то вразумительное" и я бы сказал интересное для анализа будет. "Для решения нужно создать кластеры куда войдут группы клиентов и группы товаров. Очень важно чтобы это были именно группы , в противном случае решение может не получится (товары будут видны не вероятностями а exists-missing)". Вот скорее всего так и получаеться бред. Вопрос то в том как найти эти группы которые должны уже потом в ходить в кластер. Придеться брать бубен и шаманить!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 16:18 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Владимир, я пошёл по первой ссылке. Ничего не понятно. Таинственность какая-то. Поискал в том же форуме. Пока что нашёл вот что: Analyses Services 2000 does not implement an algorithm dedicated for market basket analyses. For the time being, the only way to solve your problem is to implement your own algorithm for association (see the posting for aggregated providers). Raymond Источник здесь . Что бы это значило? С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 16:23 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Константин ЛисянскийДля меня классическая постановка выглядит так - найти комбинации из двух и более товаров, которые с определённой (выше пороговой) частотой встречаются в одной корзине. Я просто не очень понимаю, как здесь можно применить деревья решений. Кстати в Oracle 10g появилась такая фича, которая называется Frequent Itemsets This feature provides an efficient mechanism for computing frequent itemsets, a common computation in data mining applications. Frequent itemsets are typically used in market-basket analysis, to find which items are most frequently purchased together. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 16:26 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
2Константин. Если г-н Raymond из Microsoft не знает как реализуется корзинка это не значит, что это позиция Microsoft. Обратите внимание на подписи сотрудников Microsoft в форумах, типа "за базар не отвечаем". А вот Jamie MacLennan и Peter Kim из Microsoft знают как эта задача решается и предлагаю даже разные варианты. Просмотрите их ответы, достаточно квалифицированные и точные советы, причем решающие не просто "Basket-что-то там", а проблемную задачу на конкретную корзинку поставленную клиентом. MicrosoftОт:Sal Terillo (sterillo@hotmail.com) Тема:Shopping Basket Analysis View this article only Группы новостей:microsoft.public.sqlserver.datamining Дата:2002-02-28 06:55:06 PST Is it possible to do this type of data mining with Microsoft Decision Trees? Thanks. Sal Terillo Сообщение 2 в разделе От:Peter Kim [MS] (peterkim@online.microsoft.com) Тема:Re: Shopping Basket Analysis View this article only Группы новостей:microsoft.public.sqlserver.datamining Дата:2002-02-28 17:05:44 PST Yes, it is. Suppose you have the following mining model: CREATE MINING MODEL dm ( CustomerID LONG KEY, Products TABLE PREDICT ( ProductID KEY, ProductName RELATED TO ProductID ) ) USING Microsoft_Decision_Trees olapmaster Вот скорее всего так и получаеться бред. Вопрос то в том как найти эти группы которые должны уже потом в ходить в кластер. Придеться брать бубен и шаманить!!! Не понял. Обычно номенклатура имеет группировку. Если у вас номенклатор без групп, то какие прогнозы. Как вы фактические данные смотрите-то? Линейный список на тысячи позиций? Если так, аналитики и IT-шники должны быть уволены, а лучше убиты, чтобы в другое место не понесли такой кошмар. К группам товаров которые завели аналитики еще стоит добавить группы и признаки от вендора. Вендоры обычно умнее продавцов и тщательно классифицируют свою продукцию в том числе по товаро-заменителям. Иногда даже такие классификаторы доступны в XML. Например, Creo и Heidelberg позволяет их получить по интимным договорам. Вероятно они сами у себя DM крутят против конкурентов. Несколько сложнее с клиентами. Цивилизованный метод, провести анкетирование клиентов по дисконтной программе и получить признаки. Это не только для корзинок нужно. Еще вариант вскрыть структуру ИНН. Он то везде есть и в нем есть расшифровки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 18:50 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Владимир Иванов Не понял. Обычно номенклатура имеет группировку. Если у вас номенклатор без групп, то какие прогнозы. Как вы фактические данные смотрите-то? Линейный список на тысячи позиций? Если так, аналитики и IT-шники должны быть уволены, а лучше убиты, чтобы в другое место не понесли такой кошмар. Владимир, а как тогда определить, что пиво и подгузники вместе покупаются? Они ведь в разных группах товаров. Это, кстати, классическая байка data mining, если кто не знает. Одна сеть супермаркетов обнаружила, что по четвергам, когда молодые семьи идут в магазин за покупками (чтобы избежать пятничных очередей), в одной корзине очень часто лежит пиво вместе с подгузниками. Очевидно, молодые папаши затавариваются пивком, чтобы в кампании с малышом побузить - сам сейчас в подобной ситуации, только малыш уже спит, а я вот тут бузю. Будете смеяться, но я сегодня купил пиво с подгузниками на пару Ну, так как это найти с помощью решения Микрософт? С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2005, 22:08 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Константин, но сегодня же понедельник еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 00:56 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Вероятно всеже придется пояснить подходы к basket-анализу. 1) Нужно определить что такое корзинка в вашем случае. Это не так тривиально как кажется. Варианты. - Покупка за 1н раз, значит это ID кассового чека (case). - Покупка 1го покупателя за всю историю - Покупка 1го покупателя за период времени - другое 2) Вам нужно из п.1 сделать case (сказать KEY) 3) Далее набиваем корзину (TABLE PREDICT) Дерево покажет как товары влияли на покупку друг друга. Влияние товаров лучше смотреть на на Дереве, а на Dependency Network, не у всех DM-поставщиков есть такая визуализация, возможно это и путает. Деревья это не обязательно древа. Анализ будет весьма приличным, т.к. он покажет не только что пиво влияет на подгузники, но и что пиво+подгузники неприменно требует покупки презерватива и т.д. Если вас волнует анализ попроще Client-Product (корзинка это клиент), то можно просто сделать кластер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 01:53 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Константин, но сегодня же понедельник еще. Вот такая я забавная зверушка (с) Змей Горыныч ВладимирВероятно всеже придется пояснить подходы к basket-анализу Наконец-то :) - Покупка за 1н раз, значит это ID кассового чека (case). ОК. Это вроде как классический случай. - Покупка 1го покупателя за всю историю У меня создаётся впечатление, что это сводится к первому случаю, но, может, я не прав. В роли ID чека выступает ID покупателя. Получаем столько корзин, сколько покупателей. В рознице не работает, поскольку определить покупателя практически невозможно. - Покупка 1го покупателя за период времени То же самое. В роли ID чека выступает ID покупателя. Получается столько корзин, сколько периодов мы выбрали, умноженное на количество покупателей. другое ОК. Например, классический sequense analysis - сегодня я купил подгузники, а за пивом пришёл завтра. Здесь вообще слабо понятно, как деревья решений могут помочь. Поскольку я могу за пивом прийти через день и через два. 2) Вам нужно из п.1 сделать case (сказать KEY) 3) Далее набиваем корзину (TABLE PREDICT) Тяжеловато это понять. Ну ладно. Это синтаксис, Бог с ним. Дерево покажет как товары влияли на покупку друг друга Вот тут есть вопрос - а можно ли как-то параметризовать модель. Например, я хочу избавиться от случайных совпадений. Например, за весь период таких придурков, покупающих пиво и подгузники, кроме меня было ещё трое. Вполне веротяно, что мы просто не контролируем себя и берём всё подряд. Соответственно, хочется, чтобы алгоритм такие случаи отбрасывал и не засорял результаты. Можно ли это настроить. Ну, и второе - а нельзя ли сюда кусочек дерева запостить? Интересно, что там в корне этого дерева находится? Анализ будет весьма приличным, т.к. он покажет не только что пиво влияет на подгузники, но и что пиво+подгузники неприменно требует покупки презерватива и т.д. Вы будете смеяться, но... В общем, вы поняли С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 09:07 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
A сюда никто не смотрел? или здесь не об этом? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql2k/html/distinct2.asp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 13:19 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=32972565&tid=1871622]: |
0ms |
get settings: |
11ms |
get forum list: |
24ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 460ms |

| 0 / 0 |
