Soy totalmente nuevo en el aprendizaje automático y estoy tratando de usar scikit-learn para hacer un modelo de regresión logística simple con 1 variable de entrada (X) y un resultado binario (Y). Mis datos consisten en 325 muestras, con 39 aciertos y 286 fallos. Los datos se han dividido en un conjunto de entrenamiento y otro de prueba (30%).
Mi objetivo es, en realidad, obtener las probabilidades de éxito predichas para una X determinada a partir de mis datos, no la predicción de la clasificación en sí. Es decir, tomaré las probabilidades predichas para utilizarlas en un modelo separado que estoy construyendo y no utilizaré la regresión logística como clasificador en absoluto. Así que es importante que las probabilidades predichas se ajusten realmente a los datos.
Sin embargo, me cuesta entender si mi modelo se ajusta bien a los datos o si las probabilidades calculadas son realmente exactas.
Estoy obteniendo las siguientes métricas:
-
Precisión de la clasificación: metrics.accuracy_score(Y_test, predicted) \= 0.92. Según entiendo esta métrica, el modelo tiene una alta probabilidad de hacer predicciones correctas, por lo que me parece que el modelo se ajusta bien.
-
Pérdida logarítmica: cross_val_score(LogisticRegression(), X, Y, scoring='neg_log_loss', cv=10) \= -0.26 Esta es probablemente la métrica más confusa para mí, y aparentemente la más importante, ya que es la precisión de las probabilidades predichas. Sé que cuanto más se acerque a cero la puntuación, mejor, pero ¿cuánto se acerca?
-
AUC: metrics.roc_auc_score(Y_test, probs[:, 1]) \= 0.9. Una vez más, esto tiene buena pinta, ya que cuanto más se acerque la puntuación ROC a 1, mejor.
-
Matriz de confusión: metrics.confusion_matrix(Y_test, predicted) \=
[ 88, 0] [8, 2]
Entiendo que la diagonal da el número de predicciones correctas en el conjunto de entrenamiento, así que esto parece correcto.
-
Informe: metrics.classification_report(Y_test, predicted) \=
precision recall f1-score support 0.0 0.92 1.00 0.96 88 1.0 1.00 0.20 0.33 10 avg / total 0.93 0.92 0.89 98
Según este informe de clasificación, el modelo tiene una buena precisión, por lo que es un buen ajuste. No estoy seguro de cómo interpretar la recuperación o si este informe es una mala noticia para mi modelo: la documentación de sklearn indica que la recuperación es la capacidad de un modelo para encontrar todas las muestras positivas, por lo que una puntuación de 0,2 para una predicción de 1 significaría que sólo encuentra los positivos el 20% de las veces. Eso suena como un ajuste realmente malo a los datos.
Agradecería mucho que alguien me aclarara si estoy interpretando estas métricas de la manera correcta, y tal vez me aclare si mi modelo es bueno o falso. Además, si hay alguna otra prueba que pueda hacer para determinar si las probabilidades calculadas son exactas, por favor hágamelo saber.
Si no se trata de buenas puntuaciones métricas, agradecería que se me indicara por dónde seguir en términos de mejora.
¡Gracias!