Je travaille sur un problème de classification binaire où il est beaucoup plus important de ne pas avoir de faux positifs; beaucoup de faux négatifs sont ok. J'ai utilisé un tas de classificateurs dans sklearn par exemple, mais je pense qu'aucun d'entre eux n'a la capacité d'ajuster explicitement le compromis précision-rappel (ils produisent de très bons résultats mais pas ajustables).
Quels classificateurs ont une précision / rappel réglable? Existe-t-il un moyen d'influencer le compromis précision / rappel sur les classificateurs standard, par exemple Random Forest ou AdaBoost?
precision_recall_curve
calculer la F1 entière. Comment calculer uniquement les négatifs?Je viens de résoudre ce problème pour moi-même avant de tomber sur ce Q, j'ai donc décidé de partager ma solution.
Il utilise la même approche que celle proposée par Marc Claesen mais répond à la question actuall sur la façon d'ajuster le classificateur pour se déplacer plus haut sur un axe de précision en échange du rappel.
X_test est les données et y_test sont les vraies étiquettes. Le classificateur doit déjà être installé.
Et c'est ainsi que vous utiliseriez le seuil minimal nouvellement appris pour ajuster votre prédiction (que vous obtiendriez autrement simplement appeler predire (X_test))
Ce serait formidable d'entendre vos commentaires sur cette recette d'ajustement.
la source
Voici la fonction
http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html#sklearn.ensemble.RandomForestClassifier.predict_proba
ce qui produit des probabilités de classe. Ensuite, utilisez diverses métriques pour ajuster le seuil, P, que vous utilisez dans la décision en suivant le pseudo-code
si p (y)> P, alors y = 1 sinon y = 0 endif
la source