ROC曲線計算過程例子

2021-08-16 06:29:31 字數 2436 閱讀 1477

三個類別:

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...