4
我的問題與此one有關,用table()
函數在R中產生混淆矩陣。我正在尋找一個解決方案,而不使用包裝(例如脫字符號)。R創建2 * 2混淆矩陣的一般解決方案
比方說,這些都是我們predictions
,並在二元分類問題labels
:
predictions <- c(0.61, 0.36, 0.43, 0.14, 0.38, 0.24, 0.97, 0.89, 0.78, 0.86, 0.15, 0.52, 0.74, 0.24)
labels <- c(1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0)
對於這些值,下面的解決方案能很好地創建一個2 * 2混淆矩陣,讓我們說,閾值= 0.5 :
# Confusion matrix for threshold = 0.5
conf_matrix <- as.matrix(table(predictions>0.5,labels))
conf_matrix
labels
0 1
FALSE 4 3
TRUE 2 5
但是,我沒有得到一個2×2矩陣,如果我選擇是小於min(predictions)
或大於max(predictions)
任何價值,因爲數據不會有任何一個或真或假的發生。例如:
conf_matrix <- as.matrix(table(predictions>0.05,labels))
conf_matrix
labels
0 1
TRUE 6 8
我需要一致地產生2×2的混淆矩陣爲0和1之間的所有可能的閾值(決策邊界),如我使用這個作爲一個優化的輸入的方法。有什麼辦法可以調整table
函數,所以它總是返回一個2 * 2的矩陣嗎?
是的,謝謝!我試着玩'table()'參數,比如'dnn','exclude'。但相反,我應該已經形成了一個新的因素,說明不存在的階級。 – Rhubarb 2014-09-11 13:52:26