python - 如何保持与在 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 列。
解决方案
推荐阅读
- uitextfield - 将 UITextField 集成到 SwiftUI 中查看更新问题
- jquery - (..).select2 不是函数
- excel - 隐藏除选定之外的所有工作表 - Excel VBA
- python - Hough Line 仅使用 OpenCV 和 Numpy 在 python 中写入 1 行
- vimeo - Vimeo 标题和描述的最大长度是多少?
- c# - 如何更改用于库的端口名称?
- javascript - 如何获取 joi 模式中的所有键?
- spring-boot - Spring Websocket TaskExecutor-beans 取代“applicationTaskExecutor”-bean
- python - 将带有选定列标题的 CSV 读入 Python 中的一个 CSV 文件(逐行读取)
- bash - 归档文件和目录,有些是递归的,有些是非递归的,使用 7-Zip 命令行?