MLStatkit هي مكتبة Python شاملة مصممة لدمج الأساليب الإحصائية المعمول بها بسلاسة في مشاريع التعلم الآلي. ويشمل مجموعة متنوعة من الأدوات ، بما في ذلك اختبار Delong لمقارنة المناطق تحت اثنين من المنحنيات المميزة للتشغيل (ROC) المخصصة للمستقبل ، و bootstrapping لحساب فترات الثقة ، AUC2OR لتحويل المنطقة تحت المنحنى المميز للمستقبل ( AUC ) في العديد من الإحصائيات ذات الصلة مثل CHEN D ، Pearson's RPB ، الأهمية الإحصائية للفرق بين مقاييس النموذجين عن طريق خلط البيانات بشكل عشوائي وإعادة حساب المقاييس لإنشاء توزيع الاختلافات. بفضل تصميمه المعياري ، تقدم MLStatkit للباحثين وعلماء البيانات مجموعة أدوات مرنة وقوية لزيادة تحليلاتهم وتقييمات النماذج ، والتي تلبي مجموعة واسعة من احتياجات الاختبار الإحصائية في مجال التعلم الآلي.
تثبيت mlstatkit مباشرة من pypi باستخدام PIP:
pip install MLstatkit تتيح دالة Delong_test التقييم الإحصائي للاختلافات بين المناطق التي تقع في ظل اثنين من منحنيات تشغيل المتلقي (ROC) المرتبطة المستمدة من نماذج متميزة . هذا يسهل فهم أعمق للأداء النموذج المقارن.
صحيح : صفيف يشبه الشكل (n_samples ،)
التسميات الثنائية الحقيقية في المدى {0 ، 1}.
prob_a : صفيف يشبه الشكل (n_samples ،)
الاحتمالات المتوقعة من قبل النموذج الأول.
prob_b : صفيف يشبه الشكل (n_samples ،)
الاحتمالات المتوقعة من قبل النموذج الثاني.
Z_Score : تعويم
درجة Z من مقارنة AUCs من نموذجين.
p_value : تعويم
قيمة P من مقارنة AUCs من نموذجين.
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 } " ) يوضح هذا استخدام Delong_test لمقارنة AUCs من النموذجين من النماذج بناءً على احتمالاتهما والعلامات الحقيقية. تساعد درجة Z و P-value التي تم إرجاعها في فهم ما إذا كان الفرق في العروض النموذجية ذات دلالة إحصائية.
تقوم وظيفة Bootstrapping بحساب فترات الثقة لمقاييس الأداء المحددة باستخدام bootstrapping ، مما يوفر مقياسًا لموثونة التقدير. وهو يدعم حساب AUROC (المساحة تحت منحنى ROC) ، AUPRC (المساحة تحت منحنى Recall Precision) ، ومقاييس نقاط 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 } ]" ) تقوم دالة Permutation_test بتقييم الأهمية الإحصائية للفرق بين مقاييس النموذجين عن طريق خلط البيانات بشكل عشوائي وإعادة حساب المقاييس لإنشاء توزيع الاختلافات. لا تفترض هذه الطريقة توزيعًا محددًا للبيانات ، مما يجعلها خيارًا قويًا لمقارنة أداء النموذج.
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 } " ) تقوم دالة AUC2OR بتحويل منطقة تحت قيمة المنحنى (AUC) إلى نسبة الأرجحية (OR) وإرجاع القيم الوسيطة اختياريًا مثل T و Z و D و LN_OR. يعد هذا التحويل مفيدًا لفهم العلاقة بين AUC ، وهو مقياس مشترك في التصنيف الثنائي ، أو ، والذي يتم استخدامه غالبًا في التحليلات الإحصائية.
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 } " ) يعتمد تنفيذ Delong_test في MlStatkit على المنشور التالي:
لا تشير طريقة Bootstrapping لحساب فترات الثقة مباشرة إلى منشور واحد ولكنه تقنية إحصائية مقبولة على نطاق واسع لتقدير توزيع مقياس عن طريق إعادة التشكيل مع الاستبدال. للحصول على نظرة عامة شاملة على طرق bootstrapping ، راجع:
يتم استخدام Permutation_tests لتقييم أهمية الفرق في مقاييس الأداء بين نموذجين من خلال إعادة تخصيص الملاحظات عشوائيا للمجموعات وحساب المقياس. لا يجعل هذا النهج افتراضات توزيعة محددة ، مما يجعله متعدد الاستخدامات لأنواع البيانات المختلفة. للمناقشة التأسيسية حول اختبارات التقليب ، راجع:
تضع هذه المراجع الأساس للاختبارات والمنهجيات الإحصائية التي تم تنفيذها في MLSTATKIT ، مما يوفر للمستخدمين فهمًا عميقًا للأساس العلمي وتطبيقه.
تقوم وظيفة AUR2OR بتحويل المنطقة الموجودة تحت منحنى مميزة تشغيل المتلقي (AUC) إلى العديد من الإحصاءات ذات الصلة بما في ذلك Cohen's D و Pearson's RPB و RATIO و RATIO الطبيعي. هذا التحويل مفيد بشكل خاص في تفسير أداء نماذج التصنيف. للحصول على شرح مفصل للصيغ الرياضية المستخدمة في هذا التحويل ، راجع:
توفر هذه المراجع الأساس الرياضي لوظيفة AUR2OR ، مما يضمن أن يمكن للمستخدمين تفسير الأهمية الإحصائية بدقة والآثار العملية لمقاييس الأداء النموذجية الخاصة بهم.
نرحب بالمساهمات في mlstatkit! يرجى الاطلاع على إرشادات المساهمة لدينا لمزيد من التفاصيل.
يتم توزيع MlStatkit بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. لمزيد من المعلومات ، راجع ملف الترخيص في مستودع GitHub.
0.1.7 تحديث README.md0.1.6 تصحيح.0.1.5 تحديث README.md ، إضافة وظيفة AUC2OR .0.1.4 تحديث README.md ، إضافة وظيفة Permutation_tests ، إعادة استخدام معلمات Bootstrapping .0.1.3 تحديث README.md .0.1.2 إضافة Bootstrapping عملية عملية التقدم.0.1.1 تحديث README.md ، setup.py . إضافة CONTRIBUTING.md .0.1.0 الطبعة الأولى