1

「マーケットバスケット」のような問題で関連分析を行っています(一緒に販売されている製品を見つけます)。私は、150Mb のデータ、約 7mi のレジスタ (請求書と製品などのデータ) を含む 12 か月のデータセットを持っています。Hadoop に行く価値はないと思います。このチュートリアル ( http://pbpython.com/market-basket-analysis.html ) に従っていますが、df.unstack() でメモリ エラーが発生します。部。

data = pd.DataFrame()
list_ = []
for date in files:
    df = pd.read_csv('VND_%s.csv' % date,
                    sep=';',
                    skiprows=0,
                    names=names,
                    index_col=None)
    list_.append(df)
data = pd.concat(list_)

basket = (data.groupby(['INVOICE', 'MATERIAL'])['TOT_QUANTITY']
          .sum().unstack().reset_index().fillna(0))

def encode_units(x):
    if x <= 0:
        return 0
    if x >= 1:
        return 1

basket_sets = basket.applymap(encode_units)
frequent_itemsets = apriori(basket_sets, min_support=0.05, use_colnames=True)
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1)

print(rules.head())

また、改善できる点があれば教えてください。よろしくお願いします。

4

0 に答える 0