【问题标题】:WEKA classifier arguments from the command line来自命令行的 WEKA 分类器参数
【发布时间】:2015-02-05 13:15:10
【问题描述】:

我正在运行 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 本身并不完全是一个模型,但它说明了我尝试的每个分类器。

【问题讨论】:

    标签: java weka


    【解决方案1】:

    -K 参数在加载分类器时似乎不起作用,而是在从命令提示符训练模型时起作用。这可能是因为 kNN 模型已经使用 k=1 进行训练,因此更改 k 会更改已经生成的模型。

    如果您使用参数 -K、-t 和 -T,您应该能够在指定的训练集上生成具有所需 k 的新模型,并在给定的测试数据上进行评估。

    我不认为您遇到的问题与命令行参数有关(您做得对!),而是该参数在您的给定情况下无效。

    附加问题:已训练模型的参数可能不是必需的,因为它们用于训练,在保存之前已完成。仍然需要其他参数(例如用于评估的测试数据)。

    希望对您有所帮助!

    【讨论】:

    • 谢谢.. 所以,本质上,模型的“参数”是和模型一起保存的,因为生成的模型依赖于参数。我不确定在加载/测试模型时是否必须指定相同的参数......现在我大声说/没有/没有多大意义。唔。只需加载模型就足够了。
    • 没错。训练完成后,您将不会再次对其进行重新训练,因此将不再需要模型参数,除非它们与评估有关。
    猜你喜欢
    • 2018-07-08
    • 1970-01-01
    • 2018-11-29
    • 2013-01-29
    • 2021-03-26
    • 2012-07-21
    • 2016-06-12
    • 2011-07-27
    • 2011-04-21
    相关资源
    最近更新 更多