Guest User

Untitled

a guest
Jan 24th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. import sklearn
  2. from keras import callbacks
  3.  
  4. class RocAucCallback(callbacks.Callback):
  5. def __init__(self,training_data,validation_data):
  6. self.x = training_data[0]
  7. self.y = training_data[1]
  8. self.x_val = validation_data[0]
  9. self.y_val = validation_data[1]
  10.  
  11. def on_train_begin(self, logs={}):
  12. return self
  13.  
  14. def on_train_end(self, logs={}):
  15. return self
  16.  
  17. def on_epoch_begin(self, epoch, logs={}):
  18. return self
  19.  
  20. def on_epoch_end(self, epoch, logs={}):
  21. # y_pred = self.model.predict_proba(self.x, verbose=0)
  22. # roc = sklearn.metrics.roc_auc_score(self.y, y_pred)
  23. # logs['roc_auc'] = sklearn.metrics.roc_auc_score(self.y, y_pred)
  24. # logs['norm_gini'] = ( sklearn_metrics.roc_auc_score(self.y, y_pred) * 2 ) - 1
  25.  
  26. y_pred_val = self.model.predict_proba(self.x_val, verbose=0)
  27. roc_val = sklearn.metrics.roc_auc_score(self.y_val, y_pred_val)
  28. logs['roc_auc_val'] = sklearn.metrics.roc_auc_score(self.y_val, y_pred_val)
  29. logs['norm_gini_val'] = ( sklearn.metrics.roc_auc_score(self.y_val, y_pred_val) * 2 ) - 1
  30.  
  31. #print('\rroc_auc: %s - roc_auc_val: %s - norm_gini: %s - norm_gini_val: %s' % (str(round(roc,5)),str(round(roc_val,5)),str(round((roc*2-1),5)),str(round((roc_val*2-1),5))), end=10*' '+'\n')
  32. print('roc_auc_val: {}- norm_gini_val: {}'.format(str(round(roc_val,5)),str(round((roc_val*2-1),5))), end=10*' '+'\n')
  33. return self
  34.  
  35. def on_batch_begin(self, batch, logs={}):
  36. return self
  37.  
  38. def on_batch_end(self, batch, logs={}):
  39. return self
Add Comment
Please, Sign In to add comment