from:http://kubicode.me/2016/09/19/Machine%20Learning/AUC-Calculation-by-Python/python
AUC
(Area Under Curve)是機器學習二分類模型中很是經常使用的評估指標,相比於F1-Score
對項目的不平衡有更大的容忍性,目前常見的機器學習庫中(好比scikit-learn)通常也都是集成該指標的計算,其計算原理能夠參考這個ROC和AUC介紹以及如何計算AUC ,可是有時候模型是單獨的或者本身編寫的,此時想要評估訓練模型的好壞就得本身搞一個AUC
計算模塊,本文在查詢資料時發現libsvm-tools
1有一個很是通俗易懂的auc
計算,所以摳出來用做往後之用。
app
AUC
的計算分爲下面三個步驟:機器學習
evaluate
)通常就能夠直接計算了,數據的格式通常就是須要預測得分以及其目標類別(注意是目標類別,不是預測獲得的類別)False Positive Rate
)以及縱(Y:True Positive Rate
)點AUC
的值直接上python代碼學習
1 |
#! -*- coding=utf-8 -*- |
輸入的數據集能夠參考svm預測結果
其格式爲:lua
nonclk \t clk \t score
其中:spa
nonclick
:未點擊的數據,能夠看作負樣本的數量clk
:點擊的數量,能夠看作正樣本的數量score
:預測的分數,以該分數爲group進行正負樣本的預統計能夠減小AUC
的計算量運行的結果爲:code
若是本機沒安裝
pylab
能夠直接註釋依賴以及畫圖部分blog
上面貼的代碼:ip
score
都作了一次閾值,其實這樣效率是至關低的,能夠對樣本進行採樣或者在計算橫軸座標時進行等分計算