MLSTATKIT adalah perpustakaan Python yang komprehensif yang dirancang untuk mengintegrasikan metode statistik yang mapan ke dalam proyek pembelajaran mesin. 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 assessing the Signifikansi statistik dari perbedaan antara metrik dua model dengan secara acak mengocok data dan menghitung ulang metrik untuk membuat distribusi perbedaan. Dengan desain modularnya, MLStatKit menawarkan para peneliti dan ilmuwan data toolkit yang fleksibel dan kuat untuk menambah analisis dan evaluasi model, melayani spektrum luas kebutuhan pengujian statistik dalam domain pembelajaran mesin.
Instal MLStatKit langsung dari PYPI menggunakan PIP:
pip install MLstatkit Fungsi Delong_test memungkinkan evaluasi statistik dari perbedaan antara area di bawah dua kurva Korelasi Penerima Karakteristik Operasi (ROC) yang berasal dari model yang berbeda . Ini memfasilitasi pemahaman yang lebih dalam tentang kinerja model komparatif.
Benar : seperti array bentuk (n_samples,)
True Binary Labels in Range {0, 1}.
prob_a : seperti array bentuk (n_samples,)
Probabilitas yang diprediksi oleh model pertama.
Prob_B : Array-Like of Shape (n_samples,)
Probabilitas yang diprediksi oleh model kedua.
z_score : float
Skor Z dari membandingkan AUC dari dua model.
P_VALUE : Mengapung
Nilai P dari membandingkan AUC dari dua model.
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 } " ) Ini menunjukkan penggunaan Delong_test dengan secara statistik membandingkan AUC dari dua model berdasarkan probabilitas mereka dan label yang sebenarnya. SCORE Z yang dikembalikan dan nilai-P membantu dalam memahami jika perbedaan dalam kinerja model signifikan secara statistik.
Fungsi Bootstrapping menghitung interval kepercayaan untuk metrik kinerja tertentu menggunakan bootstrap, memberikan ukuran keandalan estimasi. Ini mendukung perhitungan untuk AUROC (area di bawah kurva ROC), AUPRC (area di bawah kurva presisi-ulang), dan metrik skor 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 } ]" ) Fungsi Permutation_test menilai signifikansi statistik dari perbedaan antara metrik dua model dengan secara acak mengocok data dan menghitung ulang metrik untuk membuat distribusi perbedaan. Metode ini tidak mengasumsikan distribusi data tertentu, menjadikannya pilihan yang kuat untuk membandingkan kinerja model.
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 } " ) Fungsi AUC2OR mengkonversi area di bawah nilai kurva (AUC) menjadi rasio odds (OR) dan secara opsional mengembalikan nilai -nilai menengah seperti t, z, d, dan ln_or. Konversi ini berguna untuk memahami hubungan antara AUC, metrik umum dalam klasifikasi biner, dan atau, yang sering digunakan dalam analisis statistik.
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 } " ) Implementasi Delong_test di mlstatkit didasarkan pada publikasi berikut:
Metode Bootstrapping untuk menghitung interval kepercayaan tidak secara langsung merujuk satu publikasi tunggal tetapi merupakan teknik statistik yang diterima secara luas untuk memperkirakan distribusi metrik dengan resampling dengan penggantian. Untuk tinjauan komprehensif metode bootstrap, lihat:
Permutation_tests digunakan untuk menilai signifikansi perbedaan dalam metrik kinerja antara dua model dengan mengamati pengamatan secara acak terhadap kelompok dan menghitung metrik. Pendekatan ini tidak membuat asumsi distribusi spesifik, menjadikannya serbaguna untuk berbagai tipe data. Untuk diskusi mendasar tentang tes permutasi, lihat:
Referensi ini meletakkan dasar untuk tes statistik dan metodologi yang diimplementasikan di MLSTATKIT, memberikan pengguna pemahaman yang mendalam tentang dasar ilmiah dan penerapannya.
Fungsi AUR2OR mengubah area di bawah Kurva Karakteristik Operasi Penerima (AUC) menjadi beberapa statistik terkait termasuk Cohen's D, RPB Pearson, Odds-Ratio, dan Natural Log Odds-Ratio. Konversi ini sangat berguna dalam menafsirkan kinerja model klasifikasi. Untuk penjelasan terperinci tentang rumus matematika yang digunakan dalam konversi ini, lihat:
Referensi ini memberikan landasan matematika untuk fungsi AUR2OR, memastikan bahwa pengguna dapat secara akurat menafsirkan signifikansi statistik dan implikasi praktis dari metrik kinerja model mereka.
Kami menyambut kontribusi untuk MLSTATKIT! Silakan lihat Pedoman Kontribusi kami untuk lebih jelasnya.
MLSTATKIT didistribusikan di bawah lisensi MIT. Untuk informasi lebih lanjut, lihat file lisensi di repositori GitHub.
0.1.7 Perbarui README.md0.1.6 Debug.0.1.5 Perbarui README.md , tambahkan fungsi AUC2OR .0.1.4 Perbarui README.md , tambahkan fungsi Permutation_tests , lakukan parameter Bootstrapping .0.1.3 UPDATE README.md .0.1.2 Tambahkan tampilan proses proses operasi Bootstrapping .0.1.1 Perbarui README.md , setup.py . Tambahkan CONTRIBUTING.md .0.1.0