Weka使用FPGrowth时遇属性转换错误:无法处理类属性
解决Weka中FPGrowth报错“cannot handle any class attribute!”的问题
嘿,这个问题我碰到过好几次!核心原因很简单:FPGrowth是关联规则算法,属于无监督学习范畴,它根本不需要类属性——而你的数据集里肯定有某个属性被Weka默认标记成了类属性(通常是最后一列),哪怕你没特意设置过。
下面是具体的解决步骤:
第一步:取消类属性的设置
打开你的数据集后,切换到「Preprocess」标签页,看右上角的「Class」下拉框——这里大概率选了某个属性。你只需要把它改成「None」,这样整个数据集就没有类属性了。第二步:确认属性类型(可选但稳妥)
虽然你说所有属性都是标称型,但可以快速扫一遍「Attributes」列表,确保没有属性被错误标记为数值型(不过这不是导致当前错误的原因,只是排查习惯)。第三步:重新运行FPGrowth
切回「Associate」标签页,选中FPGrowth,直接点击「Start」运行就行,这次应该不会报错了。
如果是用Weka的Java API来跑的话,记得加上这行代码移除类属性:
// 加载数据集后,设置类索引为-1表示无类属性 data.setClassIndex(-1);
这样就能顺利用FPGrowth做关联规则挖掘啦!
内容的提问来源于stack exchange,提问作者Waleed Abdullah
相关产品推荐
相关产品推荐

