Я пытаюсь найти правила ассоциации, используя набор данных с
- очень низкая поддержка для наборов элементов только с 1 элементом
- фактический набор данных будет включать в себя 160 тыс. Точек данных
Я пытался использовать фактическое название продукта, которое в некоторых случаях очень длинное, и код продукта, APA22014.
Мой вывод всегда будет содержать следующее
{'x','nan'} -> {'y'}
{'nan'} -> {'z'}
{'z'} -> {'nan'}
{'z'} -> {'nan','y'}
Яне уверен, что вывод, который я получил, правильный или нет.Если это правильно, как мне это интерпретировать?
import pandas as pd
from pandas import DataFrame
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
txn = pd.read_csv('data v2.csv', header = None, dtype = str)
txn_list = []
for i in range(0, 1000):
txn_list.append([str(txn.values[i,j]) for j in range(0, 10)])
te = TransactionEncoder()
te_ary = te.fit(txn_list).transform(txn_list)
df = pd.DataFrame(te_ary, columns = te.columns_)
txn_frequent_itemsets = apriori(df, min_support = 0.00000001, use_colnames = True)
txn_frequent_itemsets['length'] = txn_frequent_itemsets['itemsets'].apply(lambda x: len(x))
txn_frequent_itemsets = txn_frequent_itemsets[(txn_frequent_itemsets['length'] >= 1) &
(txn_frequent_itemsets['support'] < 1)]
txn_association = DataFrame(association_rules(txn_frequent_itemsets, metric = "support", min_threshold = 0.0005))