Estoy trabajando en un problema de clasificación binaria en el que es mucho más importante no tener falsos positivos; bastantes falsos negativos está bien. Por ejemplo, he usado un montón de clasificadores en sklearn, pero creo que ninguno de ellos tiene la capacidad de ajustar explícitamente la compensación de recuperación de precisión (producen resultados bastante buenos pero no ajustables).
¿Qué clasificadores tienen precisión ajustable / recuperación? ¿Hay alguna manera de influir en la compensación de precisión / recuperación en clasificadores estándar, por ejemplo, Random Forest o AdaBoost?
fuente
precision_recall_curve
calcula la F1 completa. ¿Cómo calcular solo los negativos?Acabo de resolver esto por mí mismo antes de toparme con esta Q, así que decidí compartir mi solución.
Utiliza el mismo enfoque que Marc Claesen ha propuesto, pero responde a la pregunta real sobre cómo ajustar el clasificador para moverse más arriba en el eje de precisión que se retira del retiro.
X_test son los datos y y_test son las etiquetas verdaderas. El clasificador ya debe estar instalado.
Y así es como usaría el umbral mínimo recién aprendido para ajustar su predicción (que de otro modo solo obtendría llamar a predic (X_test))
Sería genial escuchar sus comentarios sobre esta receta de ajuste.
fuente
Aquí está la función
http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html#sklearn.ensemble.RandomForestClassifier.predict_proba
que produce probabilidades de clase. Luego use varias métricas para ajustar el umbral, P, que usa en la decisión siguiendo el seudocódigo
si p (y)> P, entonces y = 1 más y = 0 endif
fuente