2012-06-30 119 views
0

我爲WEKA編寫了一個自定義分類器,除了一個實例的預測類外,它還需要提供信息。具體來說,它是一個列表,描述了每個訓練實例子集對預測類的影響有多大。WEKA輸出額外信息

additionalMeasureProducer接口不起作用,因爲我需要打印一個字符串到GUI。我希望用戶能夠選擇輸出這些信息。我曾希望「分類器評估選項」對話框中的「輸出模型」選項可以解決問題,但WEKA最終會在分類發生之前調用分類器的toString()方法。我認爲這是一個錯誤,因爲我的分類器位於weka.classifiers.lazy包中,這意味着它不會構建,直到將要分類的實例發送給它。

有沒有人有任何想法如何將更多的GUI輸出功能添加到自定義WEKA分類器?

+0

這似乎是一個相當專業的Weka問題。您可能還想在Weka郵件列表上提問:http://list.scms.waikato.ac.nz/mailman/listinfo/wekalist – Sicco

回答

2

那麼,我可以找到合適的方法來實現一個特殊的weka.classifiers.evaluation.output.prediction.AbstractOutput,它只能用於我的分類器。我globalInfo()指定它,getDisplay(),我doPrintClassification方法開始是這樣的:

@Override 
protected void doPrintClassification(Classifier classifier, Instance inst, 
     int index) throws Exception { 
    if (!(classifier instanceof MyClassifier)) 
     throw new IllegalArgumentException(
       "This output can only be used with the MyClassifier classifier"); 

    MyClassifier mc = (MyClassifier) classifier; 

這樣我就能夠調用適當的方法來獲得我的分類信息。爲CSV,HTML和純文本編寫所有內容太多,所以我只需將其留給用戶選擇即可從我的自定義輸出類獲取特殊信息,並在需要特定格式時從其他輸出類獲取常規信息。