2014-12-07 68 views
3

我正在運行ubuntu 14.10,並且通過GUI創建並保存了一個模型。現在我有一些測試數據,我想從命令行運行。這工作正常,只要我不嘗試並通過任何分類器特定的選項。當我這樣做時,我收到一個「無效的選項」消息。來自命令行的WEKA分類參數

例如,以下工作:

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並不完全是一個模型,本身,但它說明了我嘗試的每個分類器。

回答

2

當加載分類器時,-K參數似乎不起作用,而是在從命令提示符處訓練模型時看起來不起作用。這可能是由於kNN模型已經用k = 1進行訓練的事實,所以改變k將會改變已經生成的模型。

如果您使用的參數-K,-t和-T,你應該能夠產生與提名訓練集合適的K一種新的模式,並給出檢測數據進行評估。

我不認爲你的問題是使用命令行參數(你做得很對!),而是說在你給定的情況下參數是無效的。

附加問題:被訓練的模型的參數可能不需要,因爲它們用於訓練,在保存之前完成。其他參數仍然需要(如測試數據進行評估)。

希望這有助於!

+0

謝謝..因此,在本質上,該模型的「參數」保存與模型,因爲生成的模型取決於參數。我不確定在加載/測試模型時是否必須指定相同的參數......現在我說大聲/不合理。嗯。只需加載模型就足夠了。 – clemej 2014-12-08 01:45:39

+0

沒錯。一旦它的訓練,你不會再重新訓練它,這樣的模型參數將不再需要,除非它們與評估有關。 – 2014-12-08 01:47:36