2016-09-01 38 views
0

我加入我的數據集的類的屬性等以下(同樣爲列列車─和測試集):在Weka的預測分佈的類值的錯誤排序

ArrayList<String> nomValues = new ArrayList<>(); 
nomValues.add("1"); 
nomValues.add("0"); 
datasetBinary_train.insertAttributeAt(new Attribute("class", nomValues), datasetBinary_train.numAttributes()); 

所以我假定值1是在位置0和在位置值0 1

因此我假定double[]我與NominalPrediction.distribution()獲得將在位置0

檢查分類-結果它似乎是爲類「1」之類的概率反之亦然。

One Prediction看起來像這樣。

NOM:1.0 0.0 1.0 0.6081479321383793 0.3918520678616207

其中1是實際的類和0的預測類(然後重量和下一次的分配)。我認爲,對於標籤的「0」的概率更高,觀察到,這意味着對於標記爲「0」的實例的概率是在索引中所示0

評價頭說

@attribute( ...)

@attribute類{1,0}

所以,直到它有正確的順序。

有人能告訴我如何在評估中對屬性值進行排序嗎?如何確保選擇正確的一個?

回答

1

你混淆與標籤標籤指數(Weka中使用基於0的指數中在內部表示標籤):

NOM: <actual label index> <predicted label index> <weight> <distribution>

實際的標籤指數1.0(「0」),預測指數0.0(「1」),權重爲1.0,分佈爲「0.61 0.39」。基於分佈,第一個標籤被預測(0.0或「1」)。

+0

非常感謝!這真是令人困惑..但是,這是有道理的......這是否記錄在某處?我沒有在api中找到輸出的格式。國際海事組織(IMO)值得在toString() - 提名預測的方法說明中提及 – Jan

+0

Prediction類(數字和名義)不具有對數據集結構的訪問權限,因此不幸的是不能輸出標籤。對於其他任何情況,此輸出更多用於調試目的。順便說一句,使用數字作爲標籤首先增加了很多混亂。 ;-) – fracpete

+0

我認爲通常有「0」爲假,「1」爲真。不幸的是,這會造成這種困惑。雖然它是絕對有意義的,並且比輸出標籤本身更容易(因爲它可以是任何可能難以閱讀的字符序列)..你只需要知道它...... :) – Jan