2017-06-01 128 views
1

我使用的是h2o 3.10.4.8版本。如何解釋H2O的混淆矩陣?

library(magrittr) 
library(h2o) 

h2o.init(nthreads = -1, max_mem_size = "6g") 

data.url <- "https://raw.githubusercontent.com/DarrenCook/h2o/bk/datasets/" 

iris.hex <- paste0(data.url, "iris_wheader.csv") %>% 
    h2o.importFile(destination_frame = "iris.hex") 

y <- "class" 
x <- setdiff(names(iris.hex), y) 


model.glm <- h2o.glm(x, y, iris.hex, family = "multinomial") 

preds <- h2o.predict(model.glm, iris.hex) 

h2o.confusionMatrix(model.glm) 
h2o.table(preds["predict"]) 

這是h2o.confusionMatrix(model.glm)輸出:

Confusion Matrix: vertical: actual; across: predicted 
       Iris-setosa Iris-versicolor Iris-virginica Error  Rate 
Iris-setosa    50    0    0 0.0000 = 0/50 
Iris-versicolor   0    48    2 0.0400 = 2/50 
Iris-virginica   0    1    49 0.0200 = 1/50 
Totals     50    49    51 0.0200 = 3/150 

由於它說跨:預測,我解釋這意味着,該模型由50(0 + 48 + 2)的預測是IRIS-雲芝。

這是h2o.table(preds["predict"])輸出:

  predict Count 
1  Iris-setosa 50 
2 Iris-versicolor 49 
3 Iris-virginica 51 

這告訴我,對模型所做的預測,49是虹膜雲芝。

混淆矩陣是否錯誤標記或我在解釋結果時犯了錯誤?

+0

這是另一種方式:實際標籤是垂直的(行名稱),預測的標籤是橫跨的(列名稱)。這有點令人困惑,但是看錯誤率,反過來也沒有意義 – HubertL

回答

0

你沒有犯錯;標籤混亂(並且導致人們認爲行和列被切換)。這是fixed recently,並將包含在下一版本的H2O中。

2

行名(垂直)是實際的標籤。

列名(跨)是預測的標籤。