Advertisement
Guest User

Untitled

a guest
Jul 20th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. import matplotlib.pyplot as plt
  2. import sklearn.metrics as skm
  3.  
  4. PROJPATH = ...
  5.  
  6. def statistics_for_classifiers(gt, decision_function_value, WPS):
  7. dfv, gt = decision_function_value.ravel(), gt.ravel()
  8. failures, successes, cutoffs = skm.roc_curve(gt, dfv)
  9. cutoffs = cutoffs.reshape(-1, 1)
  10. predictions_given_cutoff = dfv >= cutoffs
  11. scores = {}
  12. scores["auroc"] = skm.roc_auc_score(gt, dfv)
  13. scores["lift"] = ...
  14. recovery_rates = predictions_given_cutoff * WPS / (gt * WPS)
  15. recovery_rates = (predictions_given_cutoff == 0).mean(0)
  16. plt.ioff()
  17. plt.plot(failures, successes, "") # plot a line plot
  18. plt.title("ROC")
  19. plt.ylabel("True positive rate")
  20. plt.xlabel("False positive rate")
  21. plt.savefig("roc.png")
  22. plt.plot(successes[:-1], cutoff)
  23. plt.title("Success cumulative rate")
  24. plt.ylabel("Success rate")
  25. plt.xlabel("Cutoff")
  26. plt.savefig("success.png")
  27. plt.plot(failures[:-1], cutoff)
  28. plt.title("Failure cumulative rate")
  29. plt.ylabel("Failure rate")
  30. plt.xlabel("Cutoff")
  31. plt.savefig("failure.png")
  32. plt.plot(recovery_rates, cutoff)
  33. plt.title("Recovery rate characteristic")
  34. plt.ylabel("Recovery rate")
  35. plt.xlabel("Cutoff")
  36. plt.savefig("recovery.png")
  37. plt.plot(rejection_rates, cutoff)
  38. plt.title("Rejection rate characteristic")
  39. plt.ylabel("Recovery rate")
  40. plt.xlabel("Cutoff")
  41. plt.savefig("rejection.png")
  42. plt.ion()
  43. return scores
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement