MlStatkit est une bibliothèque Python complète conçue pour intégrer de manière transparente les méthodes statistiques établies dans les projets d'apprentissage automatique. Il englobe une variété d'outils, notamment le test de DeLong pour comparer les zones dans deux courbes caractéristiques de fonctionnement du récepteur corrélé (ROC), bootstrap pour calculer les intervalles de confiance, Auc2or pour convertir la zone sous la courbe caractéristique opérationnelle du récepteur (AUC) en statistiques connexes telles que le D, le RPB de Cohen, le ratio des cotes et la permanente pour les cotes et la permutation . Signification statistique de la différence entre les mesures de deux modèles en mélangeant aléatoirement les données et en recalculant les mesures pour créer une distribution des différences. Avec sa conception modulaire, MLStatkit offre aux chercheurs et aux scientifiques des données une boîte à outils flexible et puissante pour augmenter leurs analyses et leurs évaluations de modèles, répondant à un large éventail de besoins de test statistiques dans le domaine de l'apprentissage automatique.
Installez MlStatkit directement à partir de PYPI à l'aide de PIP:
pip install MLstatkit La fonction Delong_test permet une évaluation statistique des différences entre les zones sous deux courbes caractéristiques de fonctionnement du récepteur corrélé (ROC) dérivées de modèles distincts . Cela facilite une compréhension plus profonde des performances comparatives du modèle.
Vrai : Tableau de forme (n_s échantillons,)
True Binary Labels dans Range {0, 1}.
Prob_a : forme de forme de forme (n_sample,)
Probabilités prédites par le premier modèle.
Prob_b : en forme de forme de forme (n_sample,)
Probabilités prédites par le deuxième modèle.
z_score : flotter
Le score Z de la comparaison des AUC de deux modèles.
p_value : flotter
La valeur p de la comparaison des AUC de deux modèles.
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 } " ) Cela démontre l'utilisation de Delong_test pour comparer statistiquement les AUC de deux modèles en fonction de leurs probabilités et des véritables étiquettes. Le score Z retourné et la valeur p aident à comprendre si la différence dans les performances du modèle est statistiquement significative.
La fonction Bootstrapping calcule les intervalles de confiance pour des mesures de performances spécifiées à l'aide de bootstrap, fournissant une mesure de la fiabilité de l'estimation. Il prend en charge le calcul de l'AUROC (zone sous la courbe ROC), de l'AUPRC (zone sous la courbe de précision-recueil) et des mesures de score 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 fonction Permutation_test évalue la signification statistique de la différence entre les métriques de deux modèles en mélangeant au hasard les données et en recalculant les mesures pour créer une distribution des différences. Cette méthode n'assume pas une distribution spécifique des données, ce qui en fait un choix robuste pour comparer les performances du modèle.
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 fonction AUC2OR convertit une zone sous la valeur de la courbe (AUC) en un rapport de cotes (OR) et renvoie éventuellement des valeurs intermédiaires telles que T, Z, D et LN_OR. Cette conversion est utile pour comprendre la relation entre l'ASC, une métrique commune dans la classification binaire, et ou, qui est souvent utilisée dans les analyses statistiques.
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 } " ) L'implémentation de Delong_test dans MlStatkit est basée sur la publication suivante:
La méthode Bootstrapping pour calculer les intervalles de confiance ne fait pas référence directement une seule publication mais est une technique statistique largement acceptée pour estimer la distribution d'une métrique en rééchantillonnant avec remplacement. Pour un aperçu complet des méthodes de bootstrap, voir:
Les Permutation_tests sont utilisés pour évaluer la signification de la différence de métriques de performance entre deux modèles en réallant au hasard les observations aux groupes et en calculant la métrique. Cette approche ne fait pas d'hypothèses de distribution spécifiques, ce qui le rend polyvalent pour divers types de données. Pour une discussion fondamentale sur les tests de permutation, reportez-vous à:
Ces références jettent les bases des tests et méthodologies statistiques mis en œuvre dans MLSTATKIT, offrant aux utilisateurs une compréhension approfondie de leur base scientifique et de leur applicabilité.
La fonction AUR2OR convertit la zone sous la courbe caractéristique de fonctionnement du récepteur (AUC) en plusieurs statistiques connexes, notamment le RPB de Cohen, le RPB de Pearson, le rapport de cotes et le ratio de cotes logarithmiques. Cette conversion est particulièrement utile pour interpréter les performances des modèles de classification. Pour une explication détaillée des formules mathématiques utilisées dans cette conversion, reportez-vous à:
Ces références fournissent le fondement mathématique de la fonction AUR2OR, garantissant que les utilisateurs peuvent interpréter avec précision la signification statistique et les implications pratiques de leurs métriques de performance de leur modèle.
Nous saluons les contributions à MlStatkit! Veuillez consulter nos directives de contribution pour plus de détails.
MlStatkit est distribué sous la licence du MIT. Pour plus d'informations, consultez le fichier de licence dans le référentiel GitHub.
0.1.7 Mise à jour README.md0.1.6 Débogage.0.1.5 Mettre à jour README.md , ajouter la fonction AUC2OR .0.1.4 Mettre à jour README.md , Ajouter la fonction Permutation_tests , refaire des paramètres Bootstrapping .0.1.3 Mise à jour README.md .0.1.2 Ajouter l'affichage de progression du processus d'opération Bootstrapping .0.1.1 Mettre à jour README.md , setup.py . Ajouter CONTRIBUTING.md .0.1.0 Première édition