Этот баннер — требование Роскомнадзора для исполнения 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 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Я смотрел. Это примитивная реализация. В статье описывают как искать товары, которые покупаются вместе с определённым товаром. Это не интересно. Интересно найти товары, покупаемые вместе без задания начальных условий на конкретный товар, к которому мы ищем сопутствующие. Другими словами, пытаемся найти интересные сочетания с неизвестными заранее компонентами. Здесь, очевидно, требуется эвристический подход, поскольку если начнёте решать в лоб через DISTINCT COUNT, то сразу же наткнётесь на комбинаторный взрыв. Представляете сколько вариантов надо перебрать, чтобы нарыть сочетаемость в стандартном супермаркете с 20-30 тысячами наименований? С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 13:48 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Вот тут есть вопрос - а можно ли как-то параметризовать модель. Например, я хочу избавиться от случайных совпадений. Например, за весь период таких придурков, покупающих пиво и подгузники, кроме меня было ещё трое. Вполне веротяно, что мы просто не контролируем себя и берём всё подряд. Ну для начала с чего вы решили, что это мусор? Если 50 человек не котролируя себя делают повторные покупки, это не случайность, а не познанная закономерность, которая на лицо и на нее можно делать ставку в том числе при формировании банделов. Соответственно, хочется, чтобы алгоритм такие случаи отбрасывал и не засорял результаты. Можно ли это настроить. Конечно и их обычно меняют, те кто решает задачи на практике. У Microsoft есть такие COMPLEXITY_PENALTY и MINIMUM_LEAF_CASES. Во втором можно сказать,что MINIMUM_LEAF_CASES=5 и ваши случайные покупки отваляться. COMPLEXITY_PENALTY сложнее, этот параметр контролирует коррелируемость результатов. На практике я обычно понижаю и COMPLEXITY_PENALTY и MINIMUM_LEAF_CASES, т.к. аналитики хотят видеть максимально связей и сами фильтровать что тут шум. Ну, и второе - а нельзя ли сюда кусочек дерева запостить? Интересно, что там в корне этого дерева находится? Если брать tree view, то на вершине окажется товар, который имеет максимальную корреляцию на опеределение связанных покупок. Однако обычно этот вид для такого анализа не используется. Представление что Дерево Решение это ДЕРЕВО просто обывательское. Смотрят обычно Dependecy Network, где выбирают нужный товар и он показывает связи с другими товарами, причем видна и сила связи. Можно еще и попрогнозировать. Например если это не розница, а опт, то по текущим инвойсам можно составить хороший прогноз какие товары (список) будут гарантиванно куплены исходя из влияния законов совместных покупок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 14:36 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Я смотрел. Это примитивная реализация. В статье описывают как искать товары, которые покупаются вместе с определённым товаром. Это не интересно. Интересно найти товары, покупаемые вместе без задания начальных условий на конкретный товар, к которому мы ищем сопутствующие. Другими словами, пытаемся найти интересные сочетания с неизвестными заранее компонентами. Здесь, очевидно, требуется эвристический подход, поскольку если начнёте решать в лоб через DISTINCT COUNT, то сразу же наткнётесь на комбинаторный взрыв. Представляете сколько вариантов надо перебрать, чтобы нарыть сочетаемость в стандартном супермаркете с 20-30 тысячами наименований? Константин. Снова не спешите с выводами. Анализ-то не так плох, хотя бы потому что результаты "DM" в удобном виде добавляются в OLAP для пользователей. Проблема взрыва решается сама собой. Только те кто не применяли DM попробуют поискать что-то на уровне конкретных товаров. Обычно это бессмыслено. Дело в том, что покупатель купил не кондиционер FUJITSU 25R, а "Бытовой канальный кондиционер среднего класса". Товары меняются, группы товарозаменителей остаются. Относительно их и ищут. Для розницы с обротом $100 млн. в год, скорее всего будет достаточно вести анализ относительно 50-70 групп. Берем 70 в квадрате и все не так страшно. PS. Для знатоков MDX. Может кто предложит улучшенный вариант решения Microsoft, где Distinct Count считается не относительно константного товара, а относительно всех товаров, т.е. в кубе есть 2ва измерения Товар и нужно вывести Calc member с distinct count относительно Покупателя. Я как-то делал, помню в чем-то была заморочка. Если у кого есть, приведите MDX плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 14:56 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
ИвановPS. Для знатоков MDX. Может кто предложит улучшенный вариант решения Microsoft, где Distinct Count считается не относительно константного товара, а относительно всех товаров, т.е. в кубе есть 2ва измерения Товар и нужно вывести Calc member с distinct count относительно Покупателя. Я как-то делал, помню в чем-то была заморочка. Если у кого есть, приведите MDX плиз. Владимир, Вы щедры как Крез, что же Вы ожидаете от обитателей форума? MDX в голубой каемочке? Тем более Вы говорите что сами "как то делали". А методичку презентовать? отпадет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 15:25 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Володя, свободное изложение эмоций несколько позволяется участнику форума, но накладывает некоторые этические ограничения в этом на модераторов. Мне кажется в этом тренде я показал и рассказал многое за что люди на треннингах деньги платят. Может для гуру это конечно не инфа, но мне кажется в этом заявлении есть нездоровое лукавство. Конечно если я посежу часок, то вспомню. Просто хотелось бы некоторого эффекта community, а не просто один клоун на арене. И вообще, сейчас обижусь и поеду за документами. :) Глумитесь без меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 15:31 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
To Владимир Иванов Мда... значит говорите всех убить надо.... Ну вот не задача, поставщик пиво холстен (емкость 0.5, ну нет у него другой)сказал что если будете его покупать партиями по 1 000 бутылок раз в месяц то он скинет цену на%. Ну вот надо прикинуть продажи по пиву холстен 0.5 по месяцам, а еще прикинут с чем чаше всего покупают пиво холстен 0.5, дабы стимулировать его продажи. Скажи мне IT-шнику которого надо убить или повесеть как же сдесь такую задачу решить где же группа 0.5??? Что группа пиво Холстен 0.5 да??? Это тоже много групп пиво будет. Так что всех убить???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 18:53 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Группа - Пиво Премиум. Результаты вашего анализа скорее всего будут верны и для Стеллы и т.д. В принципе есть тут большой опт, то можно и без группы, но с группой (премиум) лучше с точки зрения маневра в товарозаменителях. А вот сопуствующие товары (с чем покупают) точно в группы. Там без групп совсем плохо выйдет, даже если у вас номеклатура из 2х позиций: Хольстен и Кальмар к Пиву. Дело в том, что вчера был кальмар от Дальпико, сегодня другой. У вас разорвется статистика и вывод будет неверный, а главное на слабой стат базе. Именно слабость статбазы и блокирует ваш анализ, слишком мало повторных case, у вас с точки зрения DM идут просто разнородные факты. Еще совет. Как ни странно, но алгоритм из RDBMS-данных работает лучше чем из OLAP. RDBMS при однотипном анализа ловит закономерности лучше. В чем причина - загадка. Но факт есть факт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 19:42 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Владимир ИвановГруппа - Пиво Премиум. Результаты вашего анализа скорее всего будут верны и для Стеллы и т.д. В принципе есть тут большой опт, то можно и без группы, но с группой (премиум) лучше с точки зрения маневра в товарозаменителях. А вот сопуствующие товары (с чем покупают) точно в группы. Там без групп совсем плохо выйдет, даже если у вас номеклатура из 2х позиций: Хольстен и Кальмар к Пиву. Дело в том, что вчера был кальмар от Дальпико, сегодня другой. У вас разорвется статистика и вывод будет неверный, а главное на слабой стат базе. Именно слабость статбазы и блокирует ваш анализ, слишком мало повторных case, у вас с точки зрения DM идут просто разнородные факты. Еще совет. Как ни странно, но алгоритм из RDBMS-данных работает лучше чем из OLAP. RDBMS при однотипном анализа ловит закономерности лучше. В чем причина - загадка. Но факт есть факт. Ну вот ведь можите когда захотите. Спасибо вот сдесь уже понятно. Значит то что анализ на вхождения обязательно по группам товара или просто вхождений будет очень много, что просто получаеться и у меня берут со всем короче. Вот все стало понятно. А то сразу всех убить :-).... Это так работает кластер от MS?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 19:51 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Если вы применили кластер, вам нужно понимать, что кластеры получились не совсем влиятнию товаров, а по покупкам, которые похожи составом. В целом аналогично что и в дереве, но разницу понимать стоит. Если вас волнует только изучение относительного одного товара, то лучше применить дерево. Если использовали кластеры, конечно там будут все покупки. Вот только вероятность покупок очень разная. В окошке содержимого кластера есть гистограмки с вероятностями, а ниже есть переключатель раскрасок самих кластеров по вероятности вхождения нужной группы. Поиграйтесь. Без труда поймете облик покупателя Хольстен и его предпочтения. Если есть анкетные данные о покупателях засуньте тоже в кластер. Вам же рекламу вешать, нужно знать его облик. Еще. Не делайте overeating. Т.е. не нужно совать в DM лимоны фактов. У него крыша поедет. Подготовте выборку из следующего соображения. Для статистической достоверности наличия закономерно в 99% достаточно иметь 27 фактов (критерий хи-квадрат). Иными словами для 5 кластеров нужно иметь минимум 150 фактов. В принципе лучше сувать примерно 10-15-30 тыс. фактов взятых случайным образом. Мелкие выборки надо уметь делать (знать стат. теорию), поэтому тут давим числом, но без перебора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2005, 20:17 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Может не в тему, но нашел на Microsoft'е вот такой документ Preparing and Mining Data with Microsoft SQL Server 2000 and Analysis Services и вот в нем така фраза: Example, you can use a regression tree algorithm to provide financial forecasting and a rule-based algorithm (a CART algorithm) in a market basket analysis . Правда в остальных 154 страницах про корзину больше не упоминается, но может хоть ссылка будет полезна для кого-то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2005, 14:43 |
|
||
|
Как решается задача "market basket"?
|
|||
|---|---|---|---|
|
#18+
Вернемся к нашим баранам. Вопрос: как сделать два ключа в одной data mining model?. То есть, в стандартной постановке я имею корзину из покупок, сделанных одним клиентом, тогда у меня ид_клиента - это Key, а ид_покупки Key Sequence. Покупка находится во вложенной таблице. Я хочу сделать, чтобы корзина была не просто набором покупок одного клиента, а набором покупок одного клиента за один день, то есть как бы сделать _дату тоже Key. А AS не разрешает :( Как это обойти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 16:43 |
|
||
|
|

start [/forum/topic.php?all=1&fid=49&tid=1871622]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 403ms |

| 0 / 0 |
