Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import matplotlib.pyplot as plt
- import sklearn.metrics as skm
- PROJPATH = ...
- def statistics_for_classifiers(gt, decision_function_value, WPS):
- dfv, gt = decision_function_value.ravel(), gt.ravel()
- failures, successes, cutoffs = skm.roc_curve(gt, dfv)
- cutoffs = cutoffs.reshape(-1, 1)
- predictions_given_cutoff = dfv >= cutoffs
- scores = {}
- scores["auroc"] = skm.roc_auc_score(gt, dfv)
- scores["lift"] = ...
- recovery_rates = predictions_given_cutoff * WPS / (gt * WPS)
- recovery_rates = (predictions_given_cutoff == 0).mean(0)
- plt.ioff()
- plt.plot(failures, successes, "") # plot a line plot
- plt.title("ROC")
- plt.ylabel("True positive rate")
- plt.xlabel("False positive rate")
- plt.savefig("roc.png")
- plt.plot(successes[:-1], cutoff)
- plt.title("Success cumulative rate")
- plt.ylabel("Success rate")
- plt.xlabel("Cutoff")
- plt.savefig("success.png")
- plt.plot(failures[:-1], cutoff)
- plt.title("Failure cumulative rate")
- plt.ylabel("Failure rate")
- plt.xlabel("Cutoff")
- plt.savefig("failure.png")
- plt.plot(recovery_rates, cutoff)
- plt.title("Recovery rate characteristic")
- plt.ylabel("Recovery rate")
- plt.xlabel("Cutoff")
- plt.savefig("recovery.png")
- plt.plot(rejection_rates, cutoff)
- plt.title("Rejection rate characteristic")
- plt.ylabel("Recovery rate")
- plt.xlabel("Cutoff")
- plt.savefig("rejection.png")
- plt.ion()
- return scores
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement