คลาสที่ไม่สมดุล - วิธีการลดเชิงลบที่ผิดพลาดให้น้อยที่สุดได้อย่างไร


11

ฉันมีชุดข้อมูลที่มีคุณลักษณะคลาสไบนารี มีอินสแตนซ์ 623 คลาส +1 (บวกมะเร็ง) และ 101,671 อินสแตนซ์กับคลาส -1 (ลบมะเร็ง)

ฉันได้ลองอัลกอริธึมที่หลากหลาย (Naive Bayes, Random Forest, AODE, C4.5) และทั้งหมดนั้นมีอัตราส่วนลบติดลบที่ยอมรับไม่ได้ ป่าสุ่มมีความแม่นยำในการทำนายโดยรวมสูงสุด (99.5%) และอัตราส่วนลบติดลบต่ำสุด แต่ก็ยังพลาด 79% ของคลาสบวก (เช่นไม่สามารถตรวจจับ 79% ของเนื้องอกมะเร็ง)

ความคิดใดที่ฉันสามารถปรับปรุงสถานการณ์นี้ได้?

ขอบคุณ!


คุณสามารถดูคำถามนี้ที่ฉันได้รับคำตอบที่น่าสนใจสำหรับปัญหานี้ ขอแสดงความนับถือ
Michael Hooreman

คำตอบ:


9

ความไม่สมดุลของคลาสเป็นปัญหาที่พบบ่อยมาก คุณสามารถลองคลาสบวก (หรือขีดล่างเชิงลบ) หรือเพิ่มน้ำหนักคลาสได้

สิ่งที่ต้องจำในกรณีนี้ก็คือความแม่นยำนั้นไม่ใช่ตัวชี้วัดที่มีประโยชน์มาก คุณอาจพิจารณาAUCหรือF1 คะแนน

การเปลี่ยนเกณฑ์การตัดสินใจของคุณอาจดูน่าดึงดูด แต่เห็นได้ชัดว่าจะนำไปสู่ ​​(ในกรณีนี้น่าจะรุนแรง) เพิ่มผลบวกปลอม (แม้ว่า FPs อาจไม่ดีเท่า FN ในกรณีของการวินิจฉัยทางการแพทย์หากการทดสอบไม่แพงมาก)

การวิเคราะห์เพิ่มเติมในเชิงลึกของตัวเลือกในกรณีของความไม่สมดุลของระดับที่มีให้ที่นี่


3

แม้ว่าคำตอบในความเป็นจริงจะเป็นตลอดเวลาtrueหรือfalseคุณสามารถสร้างแอตทริบิวต์คลาสของคุณไม่ใช่ป้ายกำกับ แต่เป็นตัวเลขทศนิยมเช่น 1.0 และ 0.0 (หรือ 100 และ 0) นั่นคือคุณสามารถวางกรอบมันเป็นปัญหาการถดถอยไม่ใช่ปัญหาการจำแนก

จากนั้นผลลัพธ์ที่ทำนายไว้ก็จะเป็นตัวเลขในสเปกตรัมนั้นเช่นความน่าจะเป็นไม่ใช่ฉลาก การใช้งานในปัจจุบันของคุณนั้นเทียบเท่ากับแบบจำลองการถดถอยที่มีขีด จำกัด 0.5

ด้วยผลลัพธ์เช่นนี้คุณหรือลูกค้าของคุณสามารถกำหนดเกณฑ์ที่ยอมรับได้ (เช่น 0.3) แน่นอนว่าจะมีผลบวกที่ผิดพลาดมากขึ้น แต่สำหรับบางแอปพลิเคชันเช่นการตรวจจับมะเร็งนั้นเหมาะสมที่สุด

Oversampling (บวก) หรือ undersampling (เชิงลบ) ก็เป็นวิธีที่จะแก้ไขปัญหานี้ แต่ต้องทำอย่างรอบคอบสามารถเสียสละความถูกต้องแม่นยำและยังคงเสียสละควบคุมเพื่อย้ายเกณฑ์หลังจากสร้างข้อมูลและการฝึกอบรม


0

เทคนิคการสุ่มตัวอย่างต่ำกว่าและมากเกินไปได้ถูกกล่าวถึงแล้ว แต่ฉันคิดว่าฉันจะชี้ไปที่ตัวแปรที่ใช้กันทั่วไป:

SMOTE : เทคนิคการสุ่มตัวอย่างแบบกลุ่มน้อยสังเคราะห์

มันถูกนำเสนอในบทความนี้ในปี 2002 นี่คือตัวอย่างจากนามธรรม:

กระดาษนี้แสดงให้เห็นว่าการรวมกันของวิธีการของเราในการสุ่มตัวอย่างชนกลุ่มน้อย (ผิดปกติ) และการสุ่มตัวอย่างส่วนใหญ่ (ปกติ) คลาสสามารถบรรลุประสิทธิภาพของตัวจําแนกที่ดีขึ้น (ใน ROC space) มากกว่าการสุ่มตัวอย่าง


คุณสามารถใช้มันได้อย่างง่ายดายในหลามใช้แพคเกจที่มีอยู่ในcontribโมดูล Scikit เรียนรู้และจะต้องติดตั้งแยกต่างหากimbalanced-learn

im บาลานซ์-learn เป็นแพ็คเกจ python ที่เสนอเทคนิคการสุ่มตัวอย่างจำนวนมากที่ใช้กันทั่วไปในชุดข้อมูลที่แสดงถึงความไม่สมดุลระหว่างคลาสที่แข็งแกร่ง

แพคเกจนั้นรวมถึงวิธีการรวมเกิน / ต่ำกว่าการสุ่มตัวอย่างเช่นเดียวกับชุดของสาธารณูปโภคเพื่อสร้างชุดข้อมูลที่สามารถไหลเข้าสู่ Keras / Tensorflow

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