這個問題是關於ROC曲線的,但它可以推廣到Precision-Recall曲線。ROC和Precision-Recall中的零分母?
TPR = tp/(tp + fn) // tp= true positives, fn = false negatives
FPR = fp/(fp + tn) // fp = false positives, tn = true negatives
但是,如果分母之一就是0:
正如你可能知道,該行曲線使用誤報率(FPR
)和真陽性率(TPR
),其中繪製的? TPR
的最佳值是1,而FPR
是0(實際上ROC空間中的最佳點是(0,1)
)。
如果我們使用ROC曲線來計算分類系統中的最優閾值,這一點尤爲重要。
例如,在我的情況,我的特定配置系統永遠不會返回fp
或tn
,所以FPR
始終0作爲分母澄清
更新:
我使用的TF/PN和ROC曲線來確定我的分類器的閾值。特別是,我計算了數據集w.r.t中最相似元素頂部給定截斷點的這些值。給定的查詢。因此,如果我們只考慮頂部元素,T-F/P-N只能計算在非常相似的物體上,所以分類器不返回負值是非常現實的。因此,閾值非常嚴格,但分類器非常精確。就像「我不知道多少次應該回答什麼,但是當我這樣做時,我幾乎100%的時間給出了正確答案」。
當然,如果我們增加k
出現負值並且閾值增加。結果,分類器的答案更頻繁,但錯誤結果的概率更高。
所以我想我會繼續k
作爲調整參數,取決於所考慮的應用:如果我們希望有一個非常精確的分類,我們將設置一個小k
,否則,如果我們考慮誤報,我們可以選擇一個更大的k
。
我的應用程序:
我的應用程序是圖像的相似性緩存:當接收到查詢時,系統檢查,如果有一個「非常相似」緩存的圖片。如果是,則返回相同的結果,否則查詢後端系統。 「足夠相似」是門檻。爲了確定一個好的閾值,我們選擇一個數據集圖像的子集,這個問題就是所謂的「查詢」。如上所述,爲了確定閾值,作爲第一種方法,我選擇頂部1
元素,即最相似的圖像w.r.t.整個數據集中的查詢(設置圖像之一)。這是爲每個查詢完成的。從那裏,我使用上面解釋的ROC曲線計算閾值。所以,如果我們使用n
查詢,我們獲得n
預測。
如果我們使用這種方法,由此產生的閾值是非常嚴格的,因爲我們考慮頂部元素,平均距離非常小(並且非常精確),所以我們獲得了一個嚴格的閾值。
如果我們使用top-k
的方法(比如k=10
),我們選擇頂部的k
最相似的圖片,我們採用與上面相同的方法。閾值變大,我們有更多的緩存命中,但也有誤報的可能性更高。在這種情況下,我們獲得k*n
預測。如果我們將k
設置爲大小爲m
的整個數據集,則我們獲得k*m
預測。
我希望這澄清了我以前UPDATE
沒有FP和沒有TN表明你沒有負面的例子,只有積極的。我不太清楚在這種情況下還有哪些優化工作可以完成......只是用一個虛擬分類器預測一切都是正面的? – Calimo
所以基本上你實際上有一種三元分類器,可以說「正面」,「負面」或「沒有電話」,這是否正確? – Calimo
實際上,我沒有得到「我計算了數據集中前k個最相似元素的給定截斷值的這些值」。截止值在決策門檻上,而不是在數據點上。 – Calimo