我正在运行ubuntu 14.10,并且我已经通过GUI创建并保存了一个模型。现在我有一些测试数据,我想从命令行运行。只要我不尝试传递任何分类器特定选项,这样就可以正常工作。当我这样做时,我会收到一个"无效选项"消息。
例如,以下作品:
java -Xmx1g -cp /usr/share/java/weka.jar weka.classifiers.lazy.IBk -l ibk1-full.model -T testdata.arff
但是,以下情况并非如此:
java -Xmx1g -cp /usr/share/java/weka.jar weka.classifiers.lazy.IBk -l ibk1-full.model -T testdata.arff -K 3
Weka exception: Illegal options: -K 3
General options:
-h or -help
Output help information.
-synopsis or -info
...
如何将命令行参数传递给分类器?
附加问题:生成随模型保存的模型时使用的默认参数,以便当有人使用' -l foo.model'从命令行加载它,不需要在命令行上指定其余的参数? weka CLI入门文档尚不清楚。
注意:我知道IBk本身并不是一个模型,但它是我尝试的每个分类器的说明。
答案 0 :(得分:2)
-K参数在加载分类器时似乎不起作用,而是在从命令提示符训练模型时起作用。这可能是因为kNN模型已经训练过,例如k = 1,所以改变k会改变已经生成的模型。
如果使用参数-K,-t和-T,您应该能够在指定的训练集上生成具有所需k的新模型,并在给定的测试数据上进行评估。
我不相信你遇到的问题是命令行参数(你正确地做对了!),而是在你给定的情况下参数无效。
附加问题:培训模型的参数不太可能,因为它们用于培训,在保存之前已完成。仍然需要其他参数(如测试数据以进行评估)。
希望这有帮助!