PageRenderTime 43ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/score.py

https://github.com/KateDavis/CauseEffectPairsChallenge
Python | 34 lines | 26 code | 8 blank | 0 comment | 8 complexity | 8ae96b05ee01e9d373d10c3b14bb0ddf MD5 | raw file
  1. import ml_metrics as metrics
  2. def forward_auc(labels, predictions):
  3. target_one = [1 if x==1 else 0 for x in labels]
  4. score = metrics.auc(target_one, predictions)
  5. return score
  6. def reverse_auc(labels, predictions):
  7. target_neg_one = [1 if x==-1 else 0 for x in labels]
  8. neg_predictions = [-x for x in predictions]
  9. score = metrics.auc(target_neg_one, neg_predictions)
  10. return score
  11. def bidirectional_auc(labels, predictions):
  12. score_forward = forward_auc(labels, predictions)
  13. score_reverse = reverse_auc(labels, predictions)
  14. score = (score_forward + score_reverse) / 2.0
  15. return score
  16. if __name__=="__main__":
  17. import pandas as pd
  18. import data_io
  19. solution = data_io.read_solution()
  20. submission = data_io.read_submission()
  21. score_forward = forward_auc(solution.Target, submission.Target)
  22. print("Forward Auc: %0.6f" % score_forward)
  23. score_reverse = reverse_auc(solution.Target, submission.Target)
  24. print("Reverse Auc: %0.6f" % score_reverse)
  25. score = bidirectional_auc(solution.Target, submission.Target)
  26. print("Bidirectional AUC: %0.6f" % score)