import matplotlib.pyplot as plt
import numpy as np
score = np.array([0.9, 0.8, 0.7, 0.6, 0.55, 0.54, 0.53, 0.52, 0.51, 0.505, 0.4, 0.39, 0.38, 0.37, 0.36, 0.35, 0.34, 0.33, 0.30, 0.1])
y = np.array([1,1,0, 1, 1, 1, 0, 0, 1, 0, 1,0, 1, 0, 0, 0, 1 , 0, 1, 0])
roc_x = []
roc_y = []
min_score = min(score)
max_score = max(score)
thr = np.linspace(min_score, max_score, 30)
FP=0
TP=0
N = sum(y)
P = len(y) - N
for (i, T) in enumerate(thr):
for i in range(0, len(score)):
if (score[i] > T):
if (y[i]==1):
TP = TP + 1
if (y[i]==0):
FP = FP + 1
roc_x.append(FP/float(N))
roc_y.append(TP/float(P))
FP=0
TP=0
plt.scatter(roc_x, roc_y)
plt.show()