和你一样,一开始我也遇到了 mlxtend 的内存不足错误,但以下小改动完全解决了这个问题。
`
from mlxtend.preprocessing import TransactionEncoder
import pandas as pd
te = TransactionEncoder()
#te_ary = te.fit(itemSetList).transform(itemSetList)
#df = pd.DataFrame(te_ary, columns=te.columns_)
fitted = te.fit(itemSetList)
te_ary = fitted.transform(itemSetList, sparse=True) # seemed to work good
df = pd.DataFrame.sparse.from_spmatrix(te_ary, columns=te.columns_) # seemed to work good
# now you can call mlxtend's fpgrowth() followed by association_rules()
`
您还应该在大交易数据集上使用 fpgrowth 而不是 apriori,因为 apriori 太原始了。fpgrowth 比 apriori 更智能和更现代,但给出了相同的结果。mlxtend 库支持 apriori 和 fpgrowth。