如何在python-weka-wrapper中为关联规则准备数据?

How to prepare data for association rules in python-weka-wrapper?

我正在尝试使用 python 中的 weka 学习给定数据的规则。 Weka 得到 'Cannot handle string & numeric attributes'

的错误

我正在使用 https://github.com/fracpete/python-weka-wrapper3

起初,我做了:

loader = Loader(classname="weka.core.converters.CSVLoader")
    data = loader.load_file(path)
    data.class_is_last()

但是得到了:

javabridge.jutil.JavaException: weka.associations.Apriori: Cannot handle numeric attributes!

在尝试学习规则时。

我理解错误,weka 想要标称属性。好的! 我已经搜索并找到了方法: http://weka.sourceforge.net/doc.dev/weka/filters/unsupervised/attribute/NominalToString.html

所以我试过了:


loader = Loader(classname="weka.core.converters.CSVLoader")
    data = loader.load_file(path)
    nominal = Filter(classname="weka.filters.unsupervised.attribute.NumericToNominal", options=["-R", "first-last"])
    nominal.inputformat(data)
    nominal_data = nominal.filter(data)
    nominal_data.class_is_last()

    return nominal_data

但是得到了:

javabridge.jutil.JavaException: weka.associations.Apriori: Cannot handle string attributes!

我错过了什么? 谢谢

在 Weka 中有 Stringnominal 两种类型的数据。 String 数据类型是具有未指定数量的值的文本类型(例如跟踪 ID:R99432239US),而 Nominal 类型对应于封闭集中的值(例如状态 {walking, 运行 , 坐着}).

解析csv文件时,加载程序根据数据中出现的值的数量分配属性的数据类型。

如果您想将数值视为标称值,我相信您会希望查看 Discretize 过滤器而不是使用 NumericToNominal 过滤器。