auc(area under curve)是機器學習中二分類模型的乙個評價指標。定義為roc曲線中下的面積,但我們先不管定義。
簡單解釋,auc代表的是真陽性率(實際陽性、猜測陽性) > 偽陽性率(實際陰性、猜測陽性)的概率。
就拿**患糖尿病概率這一事例來說,對於真的患有糖尿病的人我們當然應該盡可能**為陽性,而對沒患糖尿病的人應盡可能不**為陽性,所以真陽性率應該盡可能大,偽陽性率應盡可能小。
深入解釋的話,首先來看混淆矩陣:
真陽性率 = 真陽性 / 真實陽性總數 = tp / ( tp + fn )
偽陽性率 = 偽陽性 / 真實陰性總數 = fp / ( fp + tn )
接著,我們知道,一堆資料經過分類器模型的計算後,會得到乙個0-1之間的數,這個數即樣本結果為1的概率,如下面的例子:
一般在生活中遇到這種資料,我們會習慣性地用四捨五入來歸納**的資料,即》=0.5為1,<0.5為0,如此得到的混淆矩陣如下:
計算的結果:
真陽性率 = 3 / (3+2) = 0.6
偽陽性率 = 3 / (3+4) = 0.43
這便是乙個可用的點資料。
回頭看一下,得出這組資料的前提,是我們選擇了四捨五入(0.5)來歸納**資料,這裡的0.5便是閥值。
而除了0.5,閥值還可能是從0到1的任何乙個值,一般把所有**概率結果排序得到所有閥值(如例項中的閥值就有0.2、0.3、0.4、0.5、0.6、0.7、0.9),以閥值來劃分**資料是屬於陽性還是陰性。
所以當我們把閥值設定為許多個不同的數,便能得到許多個不同的混淆矩陣,從而計算得到許多組不同的(真陽性率, 偽陽性率)的點資料,這時我們便能引入roc曲線這個東西了,所有這些點構成的曲線便是roc曲線:
資料量大時,曲線近於平滑,大概會長比如這樣子(網上隨便找的圖):
這時,我們再來看auc的定義:roc曲線中下的面積。也就是說,曲線下的陰影部分面積即為我們心心念念的auc了!
所以auc值一般是越大越好,即陰影面積越大。
放到roc曲線看,即tpr越大越好,fpr越小越好。
放到混淆矩陣中看,即真陽性率越高越好(陽性值盡可能多**為陽性),偽陽性率越低越好(陰性值盡可能少**為陽性)。
而auc描述的,就是這個「好」的大小。
對AUC的理解
auc是常見的對二類分類器的評價指標,其大小等於roc曲線下的面積。roc曲線的橫座標為false postive rate fpr 縱座標為true positive rate tpr false postive rate的計算法公式 fp r fp fp t n 其中,fp表示false pos...
ROC和AUC的理解
roc roc經常被用來評價乙個二值分類器的優劣。舉個例子,有10個樣本。分類器會計算出經過啟用函式前的score,假設score範圍是 0,1 根據score從左到右按降序排序。1,如果分類器效果很好,將樣本完美 pppppnnnnn p表示label為正,n表示label為負 2,如果分類器效果...
對buffer的簡單理解
定義了乙個bufffer byte buf new byte 0x100000 說明 首先定義乙個buffer,說白了就是申請一塊記憶體空間,new返回的是乙個指標,所以這裡的宣告有錯的,應該這樣 byte pbuf new byte 0x100000 如果申請成功,則返回了該記憶體空間的首位址,如...