如何设置csv/txt文件格式以便上传至Weka使用Apriori算法
Weka Apriori算法兼容的CSV/TXT文件生成方法
你之前输出结果异常的核心原因是:Weka的Apriori仅支持标称型(分类)属性的输入,直接上传0/1二进制数值格式会被识别为数值型,无法正常计算关联规则。
针对你给出的交易样例,有两种合规的文件生成方式:
方式1:CSV宽表格式(适配大多数导入场景)
- 先提取所有交易中出现过的唯一商品项:你的样例中包含A、C、D、E、I、K、L、M、N、O、Y共11个商品
- 每行对应一笔交易,首列可保留交易ID,后续每列对应一个商品,商品在该交易中存在填
t,不存在填f
最终生成的CSV内容如下:
TransactionID,A,C,D,E,I,K,L,M,N,O,Y 1,f,f,f,t,f,t,f,t,t,t,t 2,f,f,t,t,f,t,f,f,t,t,t 3,t,f,f,t,f,t,f,t,f,f,f 4,f,t,f,t,t,t,f,f,f,t,f 5,f,f,t,t,f,f,t,f,f,t,f
注意:不要用0/1作为值填充,必须用字符形式的
t/f或者是/否这类分类值,保证Weka识别属性为标称型。
方式2:TXT购物篮格式(适合商品数量多的场景)
不需要加表头,每行直接放对应交易包含的所有商品,用逗号分隔即可,无需保留交易ID,最终生成的TXT内容如下:
M,O,N,K,E,Y D,O,N,K,E,Y M,A,K,E C,O,K,I,E D,O,D,L,E
导入Weka时需要手动设置:勾选文本导入选项中的「Use comma as separator」,同时将「Class index」设为「No class」即可正常识别。
导入后校验
导入完成后在Weka的Preprocess面板查看属性列表,所有属性的Type必须显示为Nominal,确认无误后再运行Apriori算法即可得到正确结果。
内容的提问来源于stack exchange,提问作者Noobie
相关产品推荐
相关产品推荐

