命令行中的java WEKA分类器参数
我正在运行Ubuntu14.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本身并不完全是一个模型,但它说明了我尝试的每个分类器
# 1 楼答案
当加载分类器时,-K参数似乎不起作用,而是在从命令提示符训练模型时起作用。这可能是因为kNN模型已经用k=1进行了训练,所以改变k会改变已经生成的模型
如果您使用参数-K、-t和-t,您应该能够在指定的训练集上生成具有所需K的新模型,并根据给定的测试数据进行评估
我不认为你的问题在于命令行参数(你做得对!),而是在你的特定情况下,这个论点是无效的
附加问题:已训练模型的参数可能不是必需的,因为它们用于训练,在保存之前已完成训练。还需要其他参数(如用于评估的测试数据)
希望这有帮助