MLSTATKIT เป็นห้องสมุด Python ที่ครอบคลุมซึ่งออกแบบมาเพื่อรวมวิธีการทางสถิติที่จัดตั้งขึ้นอย่างราบรื่นเข้ากับโครงการการเรียนรู้ของเครื่อง มันครอบคลุมเครื่องมือที่หลากหลายรวมถึง การทดสอบของ DeLong สำหรับการเปรียบเทียบพื้นที่ภายใต้เส้นโค้งการทำงานของตัวรับสัญญาณที่สัมพันธ์กันสองแบบ (ROC), bootstrapping สำหรับการคำนวณช่วงความเชื่อมั่น, AUC2or สำหรับการ แปลง พื้นที่ภายใต้การประเมินลักษณะการใช้งานของตัวรับสัญญาณ นัยสำคัญทางสถิติของความแตกต่างระหว่างตัวชี้วัดของสองรุ่นโดยการสับข้อมูลแบบสุ่มและคำนวณตัวชี้วัดใหม่เพื่อสร้างการกระจายความแตกต่าง ด้วยการออกแบบแบบแยกส่วน 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 (พื้นที่ภายใต้เส้นโค้งการตั้งค่าความแม่นยำ) และการวัดคะแนน 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, RPB ของ Pearson, อัตราต่อรองและอัตราต่อรองบันทึกตามธรรมชาติ การแปลงนี้มีประโยชน์อย่างยิ่งในการตีความประสิทธิภาพของแบบจำลองการจำแนกประเภท สำหรับคำอธิบายโดยละเอียดของสูตรทางคณิตศาสตร์ที่ใช้ในการแปลงนี้โปรดดู:
การอ้างอิงเหล่านี้ให้รากฐานทางคณิตศาสตร์สำหรับฟังก์ชั่น Aur2or เพื่อให้แน่ใจว่าผู้ใช้สามารถตีความความสำคัญทางสถิติและผลกระทบเชิงปฏิบัติของตัวชี้วัดประสิทธิภาพของแบบจำลองได้อย่างถูกต้อง
เรายินดีต้อนรับการมีส่วนร่วมของ MlStatkit! โปรดดูแนวทางการบริจาคของเราสำหรับรายละเอียดเพิ่มเติม
MLStatKit มีการแจกจ่ายภายใต้ใบอนุญาต MIT สำหรับข้อมูลเพิ่มเติมดูไฟล์ใบอนุญาตในที่เก็บ GitHub
0.1.7 อัปเดต README.md0.1.6 การดีบัก0.1.5 อัปเดต README.md , เพิ่มฟังก์ชั่น AUC2OR0.1.4 อัปเดต README.md , เพิ่มฟังก์ชั่น Permutation_tests , พารามิเตอร์ Bootstrapping ซ้ำ0.1.3 อัปเดต README.md0.1.2 เพิ่มความคืบหน้าของกระบวนการดำเนินการ Bootstrapping0.1.1 อัปเดต README.md , setup.py เพิ่ม CONTRIBUTING.md0.1.0 ฉบับพิมพ์ครั้งแรก