MlStatkit es una biblioteca integral de Python diseñada para integrar a la perfección métodos estadísticos en proyectos de aprendizaje automático. Abarca una variedad de herramientas, incluida la prueba de Delong para comparar áreas bajo dos curvas operativas de operación del receptor correlacionado (ROC), arranque para calcular los intervalos de confianza, AUC2OR para convertir el área bajo la curva de características operativas del receptor (AUC) en varias estadísticas relacionadas como Cohen's D, RPB de Pearson, Odds-Ratio y Natural Logts-Ratio-Ratio, y Permutation, para evaluar la Dods-Ratio de Cohen, para evaluar la RPB, Odds-Ratio y Natural log-ratio, y para el Logutación de Cohen, y Permutation, y Permutation, y Permutation y Permutation, y Permutation, y Permutation, y Permutation, y Permutation, y Permutation, y Permutation, y permuten, y lo permuten, y lo permuten, y lo permuten, y lo permuten. La importancia estadística de la diferencia entre las métricas de dos modelos al barajar aleatoriamente los datos y recalcular las métricas para crear una distribución de diferencias. Con su diseño modular, MlStatkit ofrece a los investigadores y científicos de datos un conjunto de herramientas flexible y poderoso para aumentar sus análisis y evaluaciones de modelos, atendiendo a un amplio espectro de necesidades de pruebas estadísticas dentro del dominio del aprendizaje automático.
Instale mlStatkit directamente desde Pypi usando PIP:
pip install MLstatkit La función Delong_test permite una evaluación estadística de las diferencias entre las áreas bajo dos curvas operativas de operación del receptor correlacionado (ROC) derivadas de modelos distintos . Esto facilita una comprensión más profunda del rendimiento del modelo comparativo.
Verdadero : Like de forma de matriz (n_samples,)
True etiquetas binarias en el rango {0, 1}.
Prob_a : matriz de forma (n_samples,)
Probabilidades predichas por el primer modelo.
Prob_b : matriz de forma (n_samples,)
Probabilidades predichas por el segundo modelo.
Z_Score : flotante
La puntuación Z al comparar los AUC de dos modelos.
p_value : flotante
El valor de P de comparar los AUC de dos modelos.
from MLstatkit . stats import Delong_test
# Example data
true = np . array ([ 0 , 1 , 0 , 1 ])
prob_A = np . array ([ 0.1 , 0.4 , 0.35 , 0.8 ])
prob_B = np . array ([ 0.2 , 0.3 , 0.4 , 0.7 ])
# Perform DeLong's test
z_score , p_value = Delong_test ( true , prob_A , prob_B )
print ( f"Z-Score: { z_score } , P-Value: { p_value } " ) Esto demuestra el uso de Delong_test para comparar estadísticamente los AUC de dos modelos basados en sus probabilidades y las verdaderas etiquetas. El puntaje Z devuelto y el valor P ayudan a comprender si la diferencia en el rendimiento del modelo es estadísticamente significativa.
La función Bootstrapping calcula los intervalos de confianza para las métricas de rendimiento especificadas utilizando Bootstrapping, proporcionando una medida de la confiabilidad de la estimación. Admite el cálculo de AUROC (área bajo la curva ROC), AUPRC (área bajo la curva de recolección de precisión) y métricas de puntuación F1.
from MLstatkit . stats import Bootstrapping
# Example data
y_true = np . array ([ 0 , 1 , 0 , 0 , 1 , 1 , 0 , 1 , 0 ])
y_prob = np . array ([ 0.1 , 0.4 , 0.35 , 0.8 , 0.2 , 0.3 , 0.4 , 0.7 , 0.05 ])
# Calculate confidence intervals for AUROC
original_score , confidence_lower , confidence_upper = Bootstrapping ( y_true , y_prob , 'roc_auc' )
print ( f"AUROC: { original_score :.3f } , Confidence interval: [ { confidence_lower :.3f } - { confidence_upper :.3f } ]" )
# Calculate confidence intervals for AUPRC
original_score , confidence_lower , confidence_upper = Bootstrapping ( y_true , y_prob , 'pr_auc' )
print ( f"AUPRC: { original_score :.3f } , Confidence interval: [ { confidence_lower :.3f } - { confidence_upper :.3f } ]" )
# Calculate confidence intervals for F1 score with a custom threshold
original_score , confidence_lower , confidence_upper = Bootstrapping ( y_true , y_prob , 'f1' , threshold = 0.5 )
print ( f"F1 Score: { original_score :.3f } , Confidence interval: [ { confidence_lower :.3f } - { confidence_upper :.3f } ]" )
# Calculate confidence intervals for AUROC, AUPRC, F1 score
for score in [ 'roc_auc' , 'pr_auc' , 'f1' ]:
original_score , conf_lower , conf_upper = Bootstrapping ( y_true , y_prob , score , threshold = 0.5 )
print ( f" { score . upper () } original score: { original_score :.3f } , confidence interval: [ { conf_lower :.3f } - { conf_upper :.3f } ]" ) La función Permutation_test evalúa la importancia estadística de la diferencia entre las métricas de dos modelos barajando aleatoriamente los datos y recalculando las métricas para crear una distribución de diferencias. Este método no asume una distribución específica de los datos, lo que lo convierte en una opción sólida para comparar el rendimiento del modelo.
from MLstatkit . stats import Permutation_test
y_true = np . array ([ 0 , 1 , 0 , 0 , 1 , 1 , 0 , 1 , 0 ])
prob_model_A = np . array ([ 0.1 , 0.4 , 0.35 , 0.8 , 0.2 , 0.3 , 0.4 , 0.7 , 0.05 ])
prob_model_B = np . array ([ 0.2 , 0.3 , 0.25 , 0.85 , 0.15 , 0.35 , 0.45 , 0.65 , 0.01 ])
# Conduct a permutation test to compare F1 scores
metric_a , metric_b , p_value , benchmark , samples_mean , samples_std = Permutation_test (
y_true , prob_model_A , prob_model_B , 'f1'
)
print ( f"F1 Score Model A: { metric_a :.5f } , Model B: { metric_b :.5f } " )
print ( f"Observed Difference: { benchmark :.5f } , p-value: { p_value :.5f } " )
print ( f"Permuted Differences Mean: { samples_mean :.5f } , Std: { samples_std :.5f } " ) La función AUC2OR convierte un área bajo el valor de la curva (AUC) en una probabilidad (OR) y opcionalmente devuelve valores intermedios como T, Z, D y Ln_or. Esta conversión es útil para comprender la relación entre AUC, una métrica común en la clasificación binaria, y o, que a menudo se usa en análisis estadísticos.
from MLstatkit . stats import AUC2OR
AUC = 0.7 # Example AUC value
# Convert AUC to OR and retrieve all intermediate values
t , z , d , ln_OR , OR = AUC2OR ( AUC , return_all = True )
print ( f"t: { t :.5f } , z: { z :.5f } , d: { d :.5f } , ln_OR: { ln_OR :.5f } , OR: { OR :.5f } " )
# Convert AUC to OR without intermediate values
OR = AUC2OR ( AUC )
print ( f"OR: { OR :.5f } " ) La implementación de Delong_test en MlStatkit se basa en la siguiente publicación:
El método Bootstrapping para calcular los intervalos de confianza no hace referencia directamente a una sola publicación, pero es una técnica estadística ampliamente aceptada para estimar la distribución de una métrica mediante el remuestreo con reemplazo. Para obtener una descripción completa de los métodos de arranque, consulte:
Los Permutation_tests se utilizan para evaluar la importancia de la diferencia en las métricas de rendimiento entre dos modelos reasignando aleatoriamente las observaciones a los grupos y calculando la métrica. Este enfoque no hace supuestos de distribución específicos, lo que lo hace versátil para varios tipos de datos. Para una discusión fundamental sobre las pruebas de permutación, consulte:
Estas referencias sientan las bases para las pruebas y metodologías estadísticas implementadas en MlStatkit, proporcionando a los usuarios una comprensión profunda de su base científica y aplicabilidad.
La función AUR2OR convierte el área bajo la curva característica de operación del receptor (AUC) en varias estadísticas relacionadas, incluidas las D de Cohen, RPB de Pearson, relación de probabilidades y relación de probabilidades de logarítmica natural. Esta conversión es particularmente útil para interpretar el rendimiento de los modelos de clasificación. Para una explicación detallada de las fórmulas matemáticas utilizadas en esta conversión, consulte:
Estas referencias proporcionan la base matemática para la función AUR2OR, asegurando que los usuarios puedan interpretar con precisión la significación estadística y las implicaciones prácticas de las métricas de rendimiento de su modelo.
¡Agradecemos contribuciones a MlStatkit! Consulte nuestras pautas de contribución para obtener más detalles.
MlStatkit se distribuye bajo la licencia MIT. Para obtener más información, consulte el archivo de licencia en el repositorio de GitHub.
0.1.7 Actualizar README.md0.1.6 Depuración.0.1.5 Actualizar README.md , agregue la función AUC2OR .0.1.4 Actualizar README.md , agregue la función Permutation_tests , Vuelva a hacer parámetros Bootstrapping .0.1.3 Actualizar README.md .0.1.2 Agregue la pantalla de progreso del proceso de operación Bootstrapping .0.1.1 Actualizar README.md , setup.py . Agregar CONTRIBUTING.md .0.1.0 Primera edición