如何在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 中有 String
和 nominal
两种类型的数据。 String
数据类型是具有未指定数量的值的文本类型(例如跟踪 ID:R99432239US),而 Nominal
类型对应于封闭集中的值(例如状态 {walking, 运行 , 坐着}).
解析csv
文件时,加载程序根据数据中出现的值的数量分配属性的数据类型。
如果您想将数值视为标称值,我相信您会希望查看 Discretize
过滤器而不是使用 NumericToNominal
过滤器。
我正在尝试使用 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 中有 String
和 nominal
两种类型的数据。 String
数据类型是具有未指定数量的值的文本类型(例如跟踪 ID:R99432239US),而 Nominal
类型对应于封闭集中的值(例如状态 {walking, 运行 , 坐着}).
解析csv
文件时,加载程序根据数据中出现的值的数量分配属性的数据类型。
如果您想将数值视为标称值,我相信您会希望查看 Discretize
过滤器而不是使用 NumericToNominal
过滤器。