【问题标题】:Different results in Weka GUI and Weka via python api通过 python api 在 Weka GUI 和 Weka 中得到不同的结果
【发布时间】:2019-04-29 08:26:07
【问题描述】:

我们正在使用带有 weka 3.9.3 api(和 java 1.8.0191)的 python 2.7.12 尝试在一小段 python 代码下方使用 j48 分类器进行分类:

loader = Loader(classname="weka.core.converters.ArffLoader")
data = loader.load_file(data_dir + "new_ALL_FEATURES.arff")
data.class_is_last()

#seperate the data to train and test:
removeRange = 
Filter(classname="weka.filters.unsupervised.instance.RemoveRange", options= 
["-R","4951-last"])
removeRange.inputformat(data)
train = removeRange.filter(data)

removeRange = 
Filter(classname="weka.filters.unsupervised.instance.RemoveRange", options= 
["-R","first-4951"])
removeRange.inputformat(data)
test = removeRange.filter(data)
cls = Classifier(classname="weka.classifiers.trees.J48", options=["-C", 
"0.25"])
cls.build_classifier(train)

用于分类的其他详细信息选项:修剪树,无交叉验证,数据包括 23 个数字特征(类是名义的),缺失值被替换。 当使用相同的文件和具有相同选项的相同分类器运行 weka GUI 时([“-C”、“0.25”、“-M”、“2”]) 分类结果与我们从 API 得到的结果不同:树结构不同,GUI 树包含 77 个叶子,而 API 构建的树包含 97 个叶子。

我们搜索了类似的问题,发现如下链接:Different results in Weka GUI and Weka via Java code 但是,这与我们无关,因为我们没有执行交叉验证。

造成这种差异的原因可能是什么?我们缺少什么?请指教,提前谢谢。

【问题讨论】:

    标签: python classification weka


    【解决方案1】:

    更新:我们发现了问题。 显然,当我们通过 API 拆分数据时,我们错过了一个样本,这导致了差异。

    【讨论】:

      猜你喜欢
      • 2013-12-25
      • 2013-12-25
      • 2015-06-15
      • 2015-01-30
      • 2012-08-06
      • 2012-06-15
      • 2019-10-11
      • 2013-04-20
      • 2014-03-28
      相关资源
      最近更新 更多