def evalData(z,test_set_y):
" z- prediction test_set_y is the truth "
diff=z-test_set_y
fpr, tpr, thresholds = metrics.roc_curve(test_set_y.ravel(), z.ravel(), pos_label=1)
auc=metrics.auc(fpr, tpr)
ap=metrics.average_precision_score(test_set_y.ravel(), z.ravel())
Q=test_set_y.shape[0]
Pk10=0
Pk20=0
Pk30=0
Pk50=0
Pk37=0
for i in range(Q):
Pk10+=ranking_precision_score(test_set_y[i], z[i], k=10)
Pk20+=ranking_precision_score(test_set_y[i], z[i], k=20)
Pk30+=ranking_precision_score(test_set_y[i], z[i], k=30)
Pk37+=ranking_precision_score(test_set_y[i], z[i], k=37)
Pk50+=ranking_precision_score(test_set_y[i], z[i], k=30)
Pk10=Pk10/Q
Pk20=Pk20/Q
Pk30=Pk30/Q
Pk50=Pk50/Q
Pk37=Pk37/Q
cross=metrics.log_loss(test_set_y,z)
print '\n'
print 'AUC',auc,'MSE',np.mean((diff)**2),'Cross-entropy:',cross
print 'Precision at k=10: ',Pk10,' k=20: ',Pk20,' k=30: ',Pk30,' k=50: ',Pk50, ' k=37: ',Pk37
return Pk37
评论列表
文章目录