首页 > 解决方案 > 如何保持与在 mlxtend python 中创建的关联规则相关的事务号?

问题描述

在 mlxtend 中使用 apriori 方法后,与创建的频繁项集相关的事务号不再保留。它们被丢弃。

我怎样才能保留交易编号?

df = pd.read_csv('association_rule_items_fullmech.csv')

basket = (df.groupby(['transaction_doc', 'text'])['transaction_doc'].sum().unstack().reset_index().fillna(0).set_index('transaction_doc'))


# one-hot encoding
def encode_units(x):
if x <= 0:
    return 0
elif x >= 1:
    return 1

basket_sets = basket.applymap(encode_units)

baskets_sets 数据框基本上看起来像这样(这只是一个迷你任意示例,但结构相同):

transaction_doc - 文本 “字符串 1” “字符串 2” “字符串 3”
0 1 0 1
1 1 1 0
2 0 0 1

然后我应用先验函数

frequent_itemsets = apriori(basket_sets, min_support=0.001, use_colnames=True)

然而,在这个 apriori 函数之后,transaction_doc,即文本来自哪个文档的指示符,从 idx 列中消失。我得到一个带有频繁项集的重置索引列。我希望能够在应用 apriori 函数后保留 transaction_doc 列。

标签: pythonpython-3.xdata-miningapriorimlxtend

解决方案


推荐阅读