gpt4 book ai didi

python - 在数据集上应用事务编码器

转载 作者:太空宇宙 更新时间:2023-11-03 23:53:56 25 4
gpt4 key购买 nike

我想将 Apriori 算法应用于零售数据集(零售店的购物篮数据)。它具有以下形式的数据:-

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
30 31 32
33 34 35
36 37 38 39 40 41 42 43 44 45 46
38 39 47 48
38 39 48 49 50 51 52 53 54 55 56 57 58
32 41 59 60 61 62
3 39 48

因此,为了使用 Apriori 算法,我需要将 Python 列表列表形式的数据放入 Numpy 数组中:-

Column Names as 0 1 2 3 4 5 6 7 8 9 10........

数据集为:

0 1 2 3 4 5 6 7 8 9 10 .........30 31 32 33 34 35....
1 1 1 1 1 1 1 1 1 1 1...........0 0 0 0 0 0...
0 0 0 0 0 0 0 0 0 0 0...........1 1 1 0 0 0..
and so on..

为此,我正在尝试使用事务编码器:-

dataset = pd.read_csv('retail.dat', header=None)
from mlxtend.preprocessing import TransactionEncoder

transactionEncoder = TransactionEncoder()
dataset = transactionEncoder.fit(dataset).transform(dataset)
dataset.astype('int')
print(dataset)

但是我得到了错误:-

TypeError: 'int' object is not iterable

我还想将列名称附加为 0 1 2.... 到新形成的数据集,但 print(transactionEncoder.columns_) 未提供有效列。请说明可能是什么问题以及在此数据集上应用事务编码器的正确方法是什么...

最佳答案

IIUC,你可以堆叠dataframe并尝试crosstab:

df =  pd.read_csv('retail.dat', sep=' ', header=None)
new_df = df.stack().astype(int).reset_index(name='value')
pd.crosstab(new_df['level_0'], new_df['value'])

输出:

value    0   1   2   3   4   5   6   7   8   9   ...  53  54  55  56  57  58  ...
level_0 ...
0 1 1 1 1 1 1 1 1 1 1 ... 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0 0 0 ... 1 1 1 1 1 1
6 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0
7 0 0 0 1 0 0 0 0 0 0 ... 0 0 0 0 0 0

关于python - 在数据集上应用事务编码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58435648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com