Courbe de Roc et point de coupure. Python.
Je suis en cours d'exécution à un modèle logistique et j'ai prédit le logit valeurs. J'ai utilisé :
from sklearn import metrics
fpr, tpr, thresholds = metrics.roc_curve(Y_test,p)
Je sais métrique.roc_auc_score donnera l'aire sous la courbe, mais quelqu'un Peut-il me faire savoir quelle est la commande pour trouver le meilleur point de coupure( valeur seuil).
source d'informationauteur Shiva Prakash
Vous devez vous connecter pour publier un commentaire.
Si son retard pour répondre, il pourrait être utile. Vous pouvez faire cela en utilisant la
epi
paquet dans la R (ici!)cependant je ne pouvais pas trouver emballage similaire ou un exemple en python.Optimale point de coupure serait où
true positive rate
est haute et lafalse positive rate
est faible. Basé sur cette logique, j'ai tiré un exemple ci-dessous pour trouver du seuil optimal.Code Python:
Optimale point de coupure est 0.317628, donc rien au-dessus de ce qui peut être étiqueté comme 1, 0 sinon. Vous pouvez voir à partir de la sortie/graphique où tpr est de passage 1-fpr le tpr est de 63%, le fpr est de 36% et de tpr-(1-pf) est le plus proche de zéro dans l'exemple actuel.
De sortie:
Espère que cela est utile.
Modifier
De les simplifier et de les amener dans la ré-utilisabilité, j'ai fait une fonction pour trouver le meilleur probabilité de point de coupure.
Code Python:
Donné tpr, fpr, les seuils de votre question, la réponse pour le seuil optimal est juste:
Vanille Python de mise en Œuvre de Youden est J-Score