Рубрики
Без рубрики

Apriori алгоритм – ассоциация правила добычи

Правило ассоциации добыча (или анализ корзины на рынке). Он имеет широкое использование в промышленности и является одним из моих любимых алгоритмов из-за его простоты и изобретательности. Сегодня мы покроем алгоритм априори, который используется для анализа корзины на рынке.

Автор оригинала: Pankaj Kumar.

Сегодня мы покроем Априорский алгоритм , который используется для анализа корзины на рынке.

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

Важно иметь звуковую логику, навыки решения проблем, эффективные навыки программирования, знания домена и знания об алгоритмах.

Сохранение этого в виду, сегодня я принес что-то особенное для вас – ассоциация правила добычи добычи (или анализ корзины на рынке) Отказ

Он имеет широкое использование в промышленности и является одним из моих любимых алгоритмов из-за его простоты и изобретательности. Итак, давайте направимся в тему.

Что такое анализ корзины на рынке?

Рассмотрим сценарийВы являетесь генеральным директором огромного магазина (например, Amazon или Walmart).

Вы ищете способ увеличить ваши продажи, с наилучшими усилиями.

У вас есть история транзакции всех ваших клиентов, и вы наблюдаете, что когда люди покупают чай, 50% времени, которые они также покупают молоко. Точно так же, когда клиенты покупают пару брюк, они также имеют тенденцию искать рубашку.

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

И ваши распродажи Skyrocket … Win – Win Отказ

Это именно то, что используется каждым онлайн-сервисом Now – Netflix, Amazon, Flipkart … Вы называете его. Фактически, он также используется телеканалами (конкретные объявления наряду с IPL), страховыми компаниями и т. Д. Но в основном для покупок.

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

Есть много алгоритмов для добычи правила ассоциации, но два из самых популярных являются:

  • Априори алгоритм
  • ФП Древного алгоритма

Преимущества рыночной корзины

  • Определение предметов, которые также могут быть куплены вместе и координация расположения таких предметов поблизости (например, в каталоге или на веб-сайте), чтобы позволить потребителю приобрести все продукты.
  • Альтернативное использование для расположения физических товаров в магазине состоит в том, чтобы различать предметы, которые часто покупают одновременно и позволяют клиентам ходить по магазину и находить то, что они ищет теоретически увеличить возможность дополнительных продаж с импульсами.
  • В то же время клиенты могут быть предсказаны на покупку кластерных товаров. Это помогает презентацию перекрестных товаров или может означать, что когда такие вещи упакованы вместе, потребители могут приобрести больше товаров.
  • Представитель компании также может использовать анализ корзины на рынке для решения наилучших предложений, чтобы поддерживать бизнес клиента, когда потребители приближаются к бизнесу, чтобы нарушить отношения.

Реализация алгоритма априори в Python

Во-первых, мы делаем это прямо с нуля, чтобы вы получили концепции. Там, конечно, многие пакеты, которые вы можете использовать для реальных наборов данных, но концепции важнее:

1. Создайте набор данных

Итак, давайте создадим наш набор транзакций!

df = pd.DataFrame()
df['Transaction id'] = ['T'+str(i) for i in range(9)]
df['items'] = [['A','B','E'],
               ['B','D'],
               ['B','C'],
               ['A','B','D'],
               ['A','C'],
               ['B','C'],
               ['A','C'],
               ['A','B','C','E'],
               ['A','B','C']]

2. Подсчитайте каждый продукт в наборах (1-наборы)

Далее мы находим количество каждого элемента кандидата:

items = []
counts = {}
for i in range(df.shape[0]):
  for item in df['items'][i]:
    if item not in items:
      items.append(item)
      counts[item]=1
    else:
      counts[item] +=1

Теперь мы проверяем счет против Минимальная поддержка , который является нашим порогом. Итак, скажем, наша поддержка 2. Это означает, что мы рассматриваем только предметы, которые произошли два или более раз.

3. Сгруппировка предметов вместе (2-элементы)

Мы переходим к двуменным группам.

counts = {'AB':0,'AC':0,
          'AD':0,'AE':0,
          'BC':0,'BD':0,
          'BE':0,'CD':0,
          'CE':0,'DE':0}

for item in df['items']:
    print(item)
    if 'A' in item:
      if 'B' in item:
        counts['AB']+=1
      if 'C' in item:
        counts['AC']+=1
      if 'D' in item:
        counts['AD']+=1
      if 'E' in item:
        counts['AE']+=1
    if 'B' in item:
      if 'C' in item:
        counts['BC']+=1
      if 'D' in item:
        counts['BD']+=1
      if 'E' in item:
        counts['BE']+=1
    if 'C' in item:
      if 'D' in item:
        counts['CD']+=1
      if 'E' in item:
        counts['CE']+=1
    if 'D' in item:
      if 'E' in item:
        counts['DE']+=1

Они называются 2-спектровки Отказ Точно так же, пока мы найдем 3-спектровки Отказ

Но сначала мы проверяем наших мин. Поддержка, а с AD, CD, CE, DE Не удовлетворяйте условию, мы можем удалить их из нашего списка.

Как это помогает, мы будем генерировать 3-элементы для группы Если и только если Все его подмножества присутствуют в списке 2-элементов.

4. Создание групп из 3 продуктов (3-элементы)

Так что наши 3-элементы только ABC и Эн

counts = {'ABC':0,'ABE':0}
for item in df['items']:
  print(item)
  if 'A' in item:
    if 'B' in item:
      if 'C' in item:
        counts['ABC']+=1
      if 'E' in item:
        counts['ABE']+=1

Тогда мы получаем счет как:

Поскольку из этих двух предметов не могут быть созданы 4-элементы, которые мы сделали!

Заключение

Предметы «A», «B» и «C» покупаются вместе с вероятностью 2/9 и то же самое касается предметов «A», «B» и «E».

Возможно, вы можете понять преимущество этого алгоритма больше от истории Walmart, который использовал алгоритм априори, чтобы обнаружить странное возникновение:

«…| Некоторое время назад Wal-Mart решил объединить данные из своей системы лояльности карты с этим из своей точки продажи систем.

Бывший предоставил Wal-Mart с демографическими данными о своих клиентах, последний сказал о том, где, когда и какие эти клиенты купили.

После объединения данные были широко добыты, и появились многие корреляции.

Некоторые из них были очевидны; Люди, которые покупают джин, скорее всего, будут покупать тоник. Они часто покупают лимоны.

Однако одна корреляция выделялась, как болит большой палец, потому что это было так неожиданно.

В пятницу, в пятницу, молодые американские мужчины, которые покупают подгузники (подгузники), также имеют предрасположенность для покупки пива.

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

Я надеюсь, что все вы наслаждались этой статьей. Я уверен, что сделал. Добавьте сайт и продолжайте проверять.