Привет, энтузиаст науки о данных!
В предыдущем посте я провел анализ рыночной корзины (MBA) с помощью R. Теперь я хочу поделиться с вами тем, как сделать этот анализ в Python. Вот так!
Шаг 1 — Импорт необходимых библиотек
# Импортируйте необходимые библиотеки
import pandas as pd
# запустите это в командной строке Anaconda:
# conda install -c «conda-forge/label/cf201901» mlxtend
import mlxtend < br /> из mlxtend.frequent_patterns импортировать априори
из mlxtend.frequent_patterns импортировать правила_ассоциаций
Шаг 2 — Загрузка данных
# Загрузите данные
upsell_crossell = pd.read_excel(r’C:\Users\\Bodro\Market Basket Analysis\Python_MBA_input.xlsx’)
# Шаг 3 — Расчет количества
input_data = upsell_crossell.groupby([«транзакция», «товар»], as_index=False).agg(количество=(‘item_no’, ‘количество’))
input_data[‘транзакция’]
# Шаг 4 — Создание корзины
корзина = (входные_данные
.groupby(['транзакция', 'предмет'])['количество']
.sum()
.unstack()
.reset_index()
.fillna(0)
.set_index('транзакция'))
Basket.head(10)
Шаг 5 — Кодирование
# Теперь нам нужно закодировать значения в нашей матрице корзины в 1 и 0.
# Мы сделаем это следующим образом:
# Устанавливаем значение в 0, если оно меньше или равно 0.
# Устанавливаем значение в 1, если оно больше или равно равно 1.
def encode_units(x):
если x ‹= 0:
вернуть 0
если x ›= 1:
вернуть 1
Basket_sets = Bass.ApplyMap(Encode_Units)
Basket_Sets.head()
Шаг 6 — Генерация частых наборов элементов
# Мы будем генерировать частые наборы элементов с поддержкой не менее 0,01%:
# Создавать частые наборы элементов
Freight_itemsets = apriori(basket_sets, min_support=0,0001, use_colnames=True)
Шаг 7 — Создание правил ассоциации
# Мы создадим правила ассоциации с их соответствующими поддержкой, достоверностью и ростом:
# Генерация правил
rules = Association_rules(frequent_itemsets, metric="lift", min_threshold=1)
rules. голова()
Шаг 8 — Правила фильтрации с высокой достоверностью и подъемом
# Отфильтровываем значения с подъемом › = 1 и достоверностью › = 0,1
output_rules = rules[ (rules['lift'] ›= 1) & (rules['confidence'] ›= 0,1) ]
# Сортировка по более высокому уровню достоверности
output_rules = output_rules.sort_values(by='confidence',ascending=False)
Шаг 9 — Экспорт
output_rules.to_excel(r’C:\Users\Bodro\Market Basket Analysis\Python_MBA_output.xlsx’, index=False, header=True)
Сделанный! Удачного кодирования!
Теплые пожелания,
Бодро