機器學習中的度量指標:ROC曲線,AUC值,K-S曲線
首先,回顧一下二分類問題的一些定義:
預測 1 0
實 1 TP FN
際 0 FP TN
上表中,四個項分別爲:TP真陽性;FN假陰性;FP假陽性;TN真陰性
注意,真假表示預測的對錯,後面的陽性和陰性表示預測結果,因此結合預測結果和預測結果的對錯,可以知道對應的實際結果是什麼。比如FN假陰性,預測爲陰性,但是預測結果爲假,所以真實答案應該是個陽性。預示對應第一行第二列。
下面介紹幾個定義:
sensitivity:靈敏度,定義是TP/P = TP/(TP+FN),等價於召回率(recall)。表示真正例中有多少被召回了。
specificity:特異度,定義爲TN/N = TN/(TN+FP),表示真陰性裏面有多少被檢出了。
1-sensitivity:FN/(TP+FN),說的是陽性中有多少被誤判成了陰性,也就是漏檢,或者說是Type II error
1-specificity:FP/(FP+TN),說的是陰性裏有多少被當成了陽性,也就是虛警,就是Type I error
ROC曲線的定義和AUC值
ROC(Receiver Operating Characteristic)曲線橫軸爲虛警,縱軸是召回(靈敏度)。這一點可以這樣理解:爲了儘可能多的召回,最極端的方式就是把所有的都報告成陽性,但是這樣一來,虛警就會變多。隨着虛警的變多,召回的情況也越來越好,我們希望的是,儘量在虛警很低的時候,正樣本都能儘可能全部被召回。因此,ROC下面圍成的面積越大越好,這個面積就是AUC(Area Under Curve),翻譯過來就是『曲線底下的面積』,非常簡單直接粗暴。
K-S曲線
K-S曲線實際上就是把閾值作爲橫座標,TPR和FPR,也就是召回率和虛警率,其實也就是ROC曲線的那兩個變量,同時作爲縱座標,隨着閾值的變化,召回和虛警都從0到1,這時候,兩者距離最遠的地方就是KS值。代表在某個閾值的時候,召回和虛警差距最大,也就意味着能用最少的虛警換來最多的召回,這個位置是我們需要的閾值。
其實可以想象一下,把虛警那條曲線拉直,然後讓召回隨着虛警也對應地變化,那麼得到的其實就是ROC曲線。
2019-07-31 21:17:17
用科技讓複雜的世界更簡單。