logloss vs gini / auc


15

ฉันได้ฝึกสองรุ่น (ตัวแยกประเภทไบนารีโดยใช้ h2o AutoML) และฉันต้องการเลือกหนึ่งตัวที่จะใช้ ฉันมีผลลัพธ์ต่อไปนี้:

 model_id        auc     logloss    logloss_train   logloss_valid   gini_train  gini_valid

DL_grid_1   0.542694    0.287469         0.092717        0.211956     0.872932    0.312975
DL_grid_2   0.543685    0.251431         0.082616        0.186196     0.900955    0.312662

aucและloglossคอลัมน์ที่เป็นตัวชี้วัดการตรวจสอบข้าม (การตรวจสอบข้ามใช้เฉพาะข้อมูลการฝึกอบรม) พบ..._trainและ..._validตัวชี้วัดโดยการเรียกใช้การฝึกอบรมและการตรวจสอบความถูกต้องผ่านรูปแบบตามลำดับ ฉันต้องการใช้logloss_validหรือgini_validเพื่อเลือกรุ่นที่ดีที่สุด

รุ่น 1 มี gini ที่ดีกว่า (เช่น AUC ที่ดีขึ้น) แต่รุ่นที่สองมี logloss ที่ดีกว่า คำถามของฉันคือแบบใดที่ฉันจะเลือกซึ่งฉันคิดว่าจะเป็นคำถามอะไรคือข้อดี / ข้อเสียของการใช้ gini (AUC) หรือ logloss เพื่อการตัดสินใจ


1
วิดีโอนี้มีคำอธิบายที่ดีว่าเหตุใดจึงเป็นที่ต้องการของ logloss หากคุณสนใจในความน่าจะเป็นไม่ใช่แค่การจัดหมวดหมู่ โปรดทราบว่าสำหรับการจำแนกเลขฐานสองนั้น logloss จะเท่ากับคะแนน brier
Dan

คำตอบ:


11

ในขณะที่ AUC คำนวณโดยคำนึงถึงการจำแนกเลขฐานสองด้วยเกณฑ์การตัดสินใจที่แตกต่างกัน logloss ใช้การจัดหมวดหมู่ "แน่นอน" จริง ๆ เข้ามาในบัญชี

ดังนั้นเพื่อความเข้าใจของฉัน logloss จึงมีแนวคิดเกินกว่า AUC และมีความเกี่ยวข้องโดยเฉพาะอย่างยิ่งในกรณีที่มีข้อมูลที่ไม่สมดุลหรือในกรณีที่มีค่าความผิดพลาดกระจายอย่างไม่เท่าเทียมกัน (ตัวอย่างเช่นการตรวจหาโรคร้ายแรง)

นอกเหนือจากคำตอบพื้นฐานนี้คุณอาจต้องการดูการเพิ่มประสิทธิภาพ auc vs logloss ในปัญหาการจำแนกประเภทไบนารี

ตัวอย่างง่ายๆของการคำนวณ logloss และแนวคิดพื้นฐานถูกกล่าวถึงในคำถามล่าสุดนี้ ฟังก์ชั่นบันทึกการสูญเสียใน scikit - เรียนรู้ส่งกลับค่าที่แตกต่าง

นอกจากนี้ยังมีจุดที่ดีมากในstackoverflow

เราจะต้องเข้าใจถึงความแตกต่างที่สำคัญระหว่าง AUC ROC และตัวชี้วัด "จุดฉลาด" เช่นความแม่นยำ / ความแม่นยำเป็นต้น ROC เป็นฟังก์ชันของเกณฑ์ ด้วยรูปแบบ (ลักษณนาม) ที่แสดงความน่าจะเป็นของแต่ละคลาสเรามักจะจำแนกองค์ประกอบให้กับคลาสด้วยการสนับสนุนสูงสุด อย่างไรก็ตามบางครั้งเราสามารถได้คะแนนที่ดีขึ้นโดยการเปลี่ยนกฎนี้และต้องการการสนับสนุนหนึ่งครั้งจะใหญ่กว่าอีก 2 เท่าเพื่อจัดประเภทตามชั้นเรียนจริง ซึ่งมักเป็นจริงสำหรับชุดข้อมูลที่ไม่สมดุล วิธีนี้คุณปรับเปลี่ยนการเรียนรู้ก่อนเรียนจริงเพื่อให้พอดีกับข้อมูลของคุณ ROC ดูที่ "จะเกิดอะไรขึ้นถ้าฉันเปลี่ยนเกณฑ์นี้เป็นค่าที่เป็นไปได้ทั้งหมด" จากนั้น AUC ROC จะคำนวณอินทิกรัลของส่วนโค้งดังกล่าว


ลิงค์แรกของคุณมี"AUC ช่วยเพิ่มความสามารถของโมเดลในการแยกแยะระหว่างคลาสขณะที่ logloss ลงโทษความแตกต่างระหว่างความเป็นจริงและความน่าจะเป็นโดยประมาณ"ดังนั้นฉันจึงถามว่าฉันจะเลือกระหว่างวัตถุประสงค์ทั้งสองได้อย่างไร เป็นกรณีที่ถ้าฉันทำงานโดยตรงกับผลลัพธ์ 'ความน่าจะเป็น' ของแบบจำลองที่ฉันควรเพิ่มประสิทธิภาพ logloss (และจากนั้นอาจทำการสอบเทียบความน่าจะเป็น) ซึ่งถ้าฉันใช้มันเป็นตัวจําแนกเพื่อตัดสินใจอย่างหนัก เป็นหนึ่ง calss หรืออื่น ๆ ที่ฉันควรไปกับ AUC?
Dan

2
หากคุณสนใจเกี่ยวกับการตัดสินใจที่ถูกหรือผิด -> ใช้ AUC - ถ้าคุณสนใจว่า "ถูกต้อง" หรือ "ผิด" เท่าไหร่ -> ใช้ logloss
Nikolas Rieble

ตัวเลือกการวัดประสิทธิภาพเพิ่มเติมใด ๆ ที่ไม่สามารถสรุปได้ แต่ขึ้นอยู่กับโดเมน / แอปพลิเคชัน
Nikolas Rieble
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.