title: How to get the optimal threshold from ROC curve in Python?
body: <p>I want to get the optimal threshold from ROC curve using Python. I know how to do it in R with the coords function but I can't seem to find a similar one in Python.</p>
  
  <p>This is the way I'm displaying the ROC curve</p>
  
  <pre><code>def plot_roc_curve(fpr,tpr, thresholds):
      plt.figure()
      plt.plot(fpr, tpr, color='darkorange', label='ROC curve (area = %0.2f)' % metrics.auc(fpr, tpr))
      plt.plot([0, 1], [0, 1], color='navy', linestyle='--')
      plt.xlim([0.0, 1.0])
      plt.ylim([0.0, 1.05])
      plt.xlabel('False Positive Rate')
      plt.ylabel('True Positive Rate')
      plt.legend(loc="lower right")
  
      # create the axis of thresholds (scores)
      ax2 = plt.gca().twinx()
      ax2.plot(fpr, thresholds, markeredgecolor='r',linestyle='dashed', color='r')
      ax2.set_ylabel('Threshold',color='r')
      ax2.set_ylim([thresholds[-1],thresholds[0]])
      ax2.set_xlim([fpr[0],fpr[-1]])
  
      plt.savefig('roc_and_threshold.png')
      plt.close()
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/NxL3s.png" rel="noreferrer"><img src="https://i.stack.imgur.com/NxL3s.png" alt="enter image description here"></a></p>