Sobes.tech
Middle
34

Как определить, что товары покупались вместе и являются сопутствующими?

Компании, где спрашивали
AvitoAvito

Ответ от нейросети

sobes.tech AI

Для определения товаров, которые покупались вместе и являются сопутствующими, часто используют методы анализа ассоциативных правил (association rule mining). Один из классических алгоритмов — Apriori, который находит частые наборы товаров в транзакциях.

Основные шаги:

  1. Собираются данные о покупках (транзакции), где каждая транзакция — список купленных товаров.
  2. Вычисляются частые наборы товаров, которые встречаются вместе с заданной минимальной поддержкой (support).
  3. Строятся правила вида "если куплен товар A, то с вероятностью X купят товар B" с оценкой метрик поддержки, достоверности (confidence) и lift.

Пример:

  • Support (поддержка): доля транзакций, содержащих оба товара.
  • Confidence (достоверность): вероятность покупки товара B при покупке товара A.
  • Lift: насколько покупка товара B более вероятна при покупке A, чем в среднем.

Если lift > 1, товары считаются сопутствующими.

Для реализации можно использовать библиотеки, например, mlxtend в Python:

from mlxtend.frequent_patterns import apriori, association_rules
import pandas as pd

# Пример данных: каждая строка - транзакция, столбцы - товары
# Значение True/False - куплен товар или нет

data = pd.DataFrame({
    'milk': [True, False, True, True],
    'bread': [True, True, False, True],
    'butter': [False, True, True, True],
})

frequent_itemsets = apriori(data, min_support=0.5, use_colnames=True)
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1)
print(rules[['antecedents', 'consequents', 'support', 'confidence', 'lift']])

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