MlStatkit ist eine umfassende Python -Bibliothek, mit der etablierte statistische Methoden nahtlos in Projekte für maschinelles Lernen integriert werden können. It encompasses a variety of tools, including Delong's test for comparing areas under two correlated Receiver Operating Characteristic (ROC) curves, Bootstrapping for calculating confidence intervals, AUC2OR for converting the Area Under the Receiver Operating Characteristic Curve (AUC) into several related statistics such as Cohen's d, Pearson's rpb, odds-ratio, and natural log odds-ratio, and Permutation_test for Bewertung der statistischen Signifikanz des Unterschieds zwischen den Metriken zweier Modelle, indem die Daten zufällig gemischt werden und die Metriken neu berechnet, um eine Verteilung der Unterschiede zu erzeugen. Mit seinem modularen Design bietet MLStatkit Forschern und Datenwissenschaftlern ein flexibles und leistungsstarkes Toolkit, um ihre Analysen und Modellbewertungen zu erweitern und ein breites Spektrum statistischer Testbedürfnisse innerhalb des Bereichs des maschinellen Lernens zu erfüllen.
Installieren Sie MLStatkit direkt von PYPI mit PIP:
pip install MLstatkit Die Funktion Delong_test ermöglicht eine statistische Bewertung der Unterschiede zwischen den Bereichen unter zwei korrelierten Empfänger -Betriebsschriften (ROC), die aus verschiedenen Modellen stammen . Dies erleichtert ein tieferes Verständnis der vergleichenden Modellleistung.
Richtig : Array-ähnlich der Form (n_samples,)
Wahre binäre Beschriftungen im Bereich {0, 1}.
prob_a : Array-ähnlich von Form (n_samples,)
Vorhergesagte Wahrscheinlichkeiten durch das erste Modell.
prob_b : Array-ähnlich der Form (N_samples,)
Vorhergesagte Wahrscheinlichkeiten durch das zweite Modell.
Z_SCORE : Float
Der Z -Score vom Vergleich der Aucs zweier Modelle.
P_Value : Float
Der P -Wert aus dem Vergleich der AUCs von zwei Modellen.
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 } " ) Dies zeigt die Verwendung von Delong_test , um die AUCs zweier Modelle statistisch basierend auf ihren Wahrscheinlichkeiten und den wahren Beschriftungen zu vergleichen. Der zurückgegebene Z-Score- und P-Wert helfen beim Verständnis, ob der Unterschied in den Modellleistungen statistisch signifikant ist.
Die Bootstrapping -Funktion berechnet Konfidenzintervalle für bestimmte Leistungsmetriken mithilfe von Bootstrapping und liefert ein Maß für die Zuverlässigkeit der Schätzung. Es unterstützt die Berechnung von AUROC (Fläche unter der ROC-Kurve), AUPRC (Bereich unter der Präzisionsrecall-Kurve) und F1-Score-Metriken.
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 } ]" ) Die Funktion Permutation_test bewertet die statistische Signifikanz der Differenz zwischen den Metriken zweier Modelle, indem sie die Daten zufällig mischt und die Metriken neu berechnet, um eine Verteilung der Unterschiede zu erzeugen. Diese Methode übernimmt keine spezifische Verteilung der Daten und macht sie zu einer robusten Wahl für den Vergleich der Modellleistung.
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 } " ) Die AUC2OR -Funktion wandelt einen Bereich unter dem Kurve (AUC) -Wert in ein Quotenverhältnis (OR) um und gibt optional Zwischenwerte wie t, z, d und ln_or zurück. Diese Konvertierung ist nützlich, um die Beziehung zwischen AUC, einer gemeinsamen Metrik in der binären Klassifizierung zu verstehen und oder, die häufig in statistischen Analysen verwendet wird.
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 } " ) Die Implementierung von Delong_test in mlstatkit basiert auf der folgenden Veröffentlichung:
Die Bootstrapping -Methode zur Berechnung von Konfidenzintervallen verweist nicht direkt auf eine einzelne Veröffentlichung, sondern ist eine weit verbreitete statistische Technik zur Schätzung der Verteilung einer Metrik durch Resampling mit dem Austausch. Eine umfassende Übersicht über Bootstrapping -Methoden finden Sie unter:
Die Permutation_tests werden verwendet, um die Bedeutung des Unterschieds in den Leistungsmetriken zwischen zwei Modellen zu bewerten, indem Beobachtungen für Gruppen nach dem Zufallsprinzip und berechnet die Metrik. Dieser Ansatz stellt keine spezifischen Verteilungsannahmen aus und macht es für verschiedene Datentypen vielseitig. Eine grundlegende Diskussion über Permutationstests finden Sie unter:
Diese Referenzen basieren die Grundlage für die in MLStatKit implementierten statistischen Tests und Methoden, um den Benutzern ein tiefes Verständnis ihrer wissenschaftlichen Grundlage und Anwendbarkeit zu vermitteln.
Die AUR2OR -Funktion wandelt den Bereich unter der Empfängerbetriebscharakteristische Kurve (AUC) in mehrere verwandte Statistiken um, darunter Cohens D, Pearson's RPB, Odds-Ratio und natürliches Log-Odds-Verhältnis. Diese Konvertierung ist besonders nützlich bei der Interpretation der Leistung von Klassifizierungsmodellen. Eine detaillierte Erklärung der in dieser Umwandlung verwendeten mathematischen Formeln finden Sie unter:
Diese Referenzen bieten die mathematische Grundlage für die AUR2OR -Funktion und stellen sicher, dass Benutzer die statistische Signifikanz und die praktischen Auswirkungen ihrer Modellleistungskennzahlen genau interpretieren können.
Wir begrüßen Beiträge zu MlStatkit! Weitere Informationen finden Sie in unseren Beitragsrichtlinien.
MlStatkit wird unter der MIT -Lizenz verteilt. Weitere Informationen finden Sie in der Lizenzdatei im Github -Repository.
0.1.7 Update README.md0.1.6 Debug.0.1.5 Aktualisieren Sie README.md , fügen Sie die AUC2OR -Funktion hinzu.0.1.4 Aktualisieren Sie README.md , Fügen Sie Permutation_tests -Funktion, neu-Do-Do Bootstrapping Parameter hinzu.0.1.3 Update README.md .0.1.2 Bootstrapping -Betriebsprozessanzeige.0.1.1 Update README.md , setup.py . Fügen Sie CONTRIBUTING.md hinzu.0.1.0 Erstausgabe