2016-08-13 193 views
0

想我已經格式化的模型下面的分類結果:瞭解如何繪製ROC曲線

actual.class score.actual.class 
A   1 
A   1 
A   0.6 
A   0.1 
B   0.5 
B   0.3 
.   . 
.   . 

1 - 如果我沒理解好,ROC曲線繪製真陽性之間的權衡和誤報。這意味着我需要改變一個班級(真正的班級)的分數閾值,而不是兩個,對嗎?我的意思是,如果我選擇A作爲真正的課程,那麼我將只使用subset(results,actual.class="A")繪製ROC曲線?

2 - 如果我想手動生成曲線(沒有庫),那麼閾值是否會來自該子集的每個可能得分?

3 - 爲了繪製ROC曲線的目的,是否從上述數據中正確生成了以下幾點? (我正在使用A級作爲真實課程)

threshold fpr tpr 
1   1 0 
0.6  1/2 1/2 
0.1  1/4 3/4  
0   0 1 

難道這些要構成我的ROC?

回答

2

「這意味着我需要改變 一個類別(真實類別)的分數閾值,而不是兩個,對不對?」

似乎有一個誤解,因爲沒有這樣的事情作爲一個單獨的正面或負面的門檻。 ROC曲線用於評估二進制分類算法的上下文中。在這樣的算法中,不屬於一種類型(TRUE)的元素被自動識別爲另一種類型的元素(FALSE)。

閾值的選擇只能改變平衡,這樣更多的觀察被分配到一種類型而不是另一種。閾值的這種變化是允許繪製ROC曲線的參數。否則它只是一個點。

關於你的第三點:是的,就我的例子而言,我可以說這種數據通常構成ROC曲線。

+0

您不能獨立改變特異性和靈敏度。混淆矩陣的這些特徵來源於二進制分類算法中使用的(單個)閾值。 – RHertel

+0

@lmerith您發佈的數據可能代表ROC曲線的四個點。只需將每個tpr/fpr對在一個正方形中獲得的每個閾值繪製在一個正方形中,其中fpr在x軸上,tpr在y軸上並連接這些點。您分析的閾值越多,您將擁有的點越多,如果模型足夠複雜,曲線將變得更加平滑。 – RHertel

+0

@lmerith是的,特異性和敏感性一般取決於閾值的選擇。像ROC曲線一樣,這些特徵用於評估模型的質量。與閾值不同,這些不是模型的輸入值。 – RHertel