尝试将 AdaBostM1 weka 分类器与配置用于修剪的 J48 决策树分类器一起使用时,Weka 引发命令行错误

Posted

技术标签:

【中文标题】尝试将 AdaBostM1 weka 分类器与配置用于修剪的 J48 决策树分类器一起使用时,Weka 引发命令行错误【英文标题】:Weka throws comandline error when trying to use AdaBostM1 weka classifier with a J48 decisiontree classifier configured for pruning 【发布时间】:2015-12-16 21:36:43 【问题描述】:

我正在尝试运行以下 weka AdaBoostM1 分类器来提升配置用于以下修剪的 J48 树:

java -classpath ./bin/weka.jar weka.classifiers.meta.AdaBoostM1 -P 100 -S 1 -I 10 -W weka.classifiers.trees.J48 -- -C 0.25 -M 2 \ -t ./data/inputfile.arff > ./results/output.txt &

配置字符串是直接从 weka gui 复制的,实际上在那里运行没有任何问题。但是,如果我尝试在命令行上运行相同的配置字符串,weka 会抛出以下错误:

Weka 异常:没有给出训练文件和对象输入文件。

常规选项:

-h 或 -help 输出帮助信息。 -synopsis 或 -info 分类器的输出概要(与 -h 结合使用) -t 设置训练文件。 -T 设置测试文件。如果丢失,...

如果我删除 J48 树分类器后面的参数,即字符串“ -- -C 0.25 -M 2”,那么它可以正常工作:

java -classpath ./bin/weka.jar weka.classifiers.meta.AdaBoostM1 -P 100 -S 1 -I 10 -W weka.classifiers.trees.J48 \ -t ./data/inputfile.arff > ./results/output.txt &

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

看看this post:“你掉进了通常的元分类器陷阱。采用“增强”单个基分类器的元分类器让你指定类名(但不是选项! ) 使用 -W 选项。"

TL;DR“最简单的方法是在第一个分类器的类名之后插入常规选项,即从命令行运行的分类器。”

【讨论】:

【参考方案2】:

(自言自语)

正如 SO 用户 Marcelo Vinicius 所说, 你可以这样称呼它:

java -classpath ./bin/weka.jar weka.classifiers.meta.AdaBoostM1 \ 
 -t ./data/inputfile.arff -P 100 -S 1 -I 10 \
 -W weka.classifiers.trees.J48 -- -C 0.25 -M 2  > ./results/output.txt &

-t Inputfile 选项放在AdaBoostM1 之后

【讨论】:

以上是关于尝试将 AdaBostM1 weka 分类器与配置用于修剪的 J48 决策树分类器一起使用时,Weka 引发命令行错误的主要内容,如果未能解决你的问题,请参考以下文章

Weka中的实例分类

Weka 对实例进行分类

使用 Weka 进行文本分类

weka 3.7 explorer 无法对文本进行分类

如何在 Weka 中尝试使用多数投票

weka SVM 多类分类器