三個類別:
sample
true
predict
1[0 0 1]
[0.1 0.2 0.7]
2[0 1 0]
[0.1 0.6 0.3]
3[1 0 0]
[0.5 0.2 0.3]
4[0 0 1]
[0.1 0.1 0.8]
5[1 0 0]
[0.4 0.2 0.4]
6[0 1 0]
[0.6 0.3 0.1]
7[0 1 0]
[0.4 0.2 0.4]
8[0 1 0]
[0.4 0.1 0.5]
9[0 0 1]
[0.1 0.1 0.8]
10[0 1 0]
[0.1 0.8 0.1]
roc曲線一般是針對二分類問題的,那對於多分類問題roc曲線該怎麼繪製?
也是one vs. rest原則,將其中一類看做正例,其它看做負例。比如我們有三個類別,那我們就可以繪製3條roc曲線。
以第乙個類別為例,將類別一看做正例,其它看做負例,得到下面的表:
sample
true
score1n
0.12
n0.1
3p0.54n
0.15
p0.46n
0.67
n0.48n
0.49
n0.110n
0.1
按score從小到大排序,得到:
sample
true
score6n
0.63
p0.5
5p0.47n
0.48
n0.41n
0.12
n0.14n
0.19
n0.110n
0.1
得到tpr和fpr:
sample
true
score
tprfpr6n
0.60/2
0/83
p0.5
1/21/8
5p0.4
2/23/87n
0.48
n0.41n
0.12/2
8/82
n0.14n
0.19
n0.110n
0.1
以fpr為橫座標,tpr為縱座標,就可以繪製roc曲線。
我們用scikit-learn進行fpr和tpr的計算,並用matplotlib繪製roc曲線如下:
遞迴計算過程和迭代計算過程
這次主要想通過幾個sicp的題目來說明遞迴計算過程和迭代計算過程。1 階乘 遞迴計算過程 define factorial n if n 1 1 factorial n 1 n 迭代計算過程 define fact iter counter result if counter 1 result fa...
PinBlock計算過程
引數 密碼,賬號,leftpinkey,rightpinkey out data 該引數為了帶出計算出來的pinblock 1先將密碼轉換為bcd碼 注意,轉碼後長度會變化,eg ascii碼的6位密碼轉成bcd碼後會縮短 放入pinblock定義好的16個長度的空字元陣列中 2再將賬號轉換為bcd...
ROC曲線與AUC計算總結
橫軸 負正類率 false postive rate,fpr 特異度,劃分例項中所有負例佔所有負例的比例 1 specificity 縱軸 真正類率 true postive rate,tpr 靈敏度,sensitivity 正類覆蓋率 1 若乙個例項是正類並且被 為正類,即為真正類 true po...