Анализ Python Market Basket не дает результатов - PullRequest
0 голосов
/ 08 января 2019

Я играю с примером набора данных, где мой набор данных выглядит так

sample data set

Теперь я успешно преобразовал данные с помощью

import pandas as pd
import numpy as np 
import seaborn as sns
import matplotlib.pyplot as plt
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
import mlxtend as ml

retail_data = pd.read_excel('Copy of FastFood_Transactions.xlsx')

sns.countplot(x = 'Product', data = retail_data, order = retail_data['Product'].value_counts().iloc[:10].index)
plt.xticks(rotation=90)

retail_data = retail_data.groupby(['Transaction ID','Product']).size().reset_index(name='count')
basket = (retail_data.groupby(['Transaction ID', 'Product'])['count']
          .sum().unstack().reset_index().fillna(0)
          .set_index('Transaction ID'))

#The encoding function
def encode_units(x):
    if x <= 0:
        return 0
    if x >= 1:
        return 1

basket_sets = basket.applymap(encode_units)

И я проверил свой набор, и, кажется, все в порядке.

Однако, когда я пытаюсь применить правило ассоциации и apriori, как показано ниже

frequent_itemsets = apriori(basket_sets, min_support=0.07, use_colnames=True)
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1)
rules.head()

правила пустые.

Я попытался проверить поддержку и набор элементов, где я применил apriori:

    support itemsets
0   0.084238    (3 Crispy Strips (incl. dip))
1   0.080320    (9 Hot Wings)
2   0.061100    (9 Hot Wings)
3   0.058294    (10 Filet Bites)
4   0.080214    (Chicken Original 1 stuk)

Я заметил, что поддержка имеет очень низкий процент. Может ли это быть из-за разреженного набора данных?

...