แบบจำลองการจำแนกประเภทไบนารีสำหรับข้อมูลที่ไม่สมดุล


14

ฉันมีชุดข้อมูลที่มีข้อกำหนดต่อไปนี้:

  • ชุดข้อมูลการฝึกอบรมที่มีตัวอย่าง 193,176 ตัวอย่างมีผลบวก 2,821 รายการ
  • ชุดข้อมูลทดสอบ 82,887 ตัวอย่างที่มีผลบวก 673 รายการ
  • มี 10 คุณสมบัติ

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

mean square error : 0.00804710026904
Confusion matrix : [[82214   667]
                   [    0     6]]

นั่นคือเพียง 6 การค้นพบในเชิงบวกที่ถูกต้อง นี่คือการใช้การถดถอยโลจิสติก นี่คือสิ่งต่าง ๆ ที่ฉันลองด้วย:

  • อัลกอริทึมที่แตกต่างกันเช่น RandomForest, DecisionTree, SVM
  • การเปลี่ยนค่าพารามิเตอร์เพื่อเรียกใช้ฟังก์ชัน
  • คุณสมบัติทางวิศวกรรมตามสัญชาตญาณเพื่อรวมเอาคุณสมบัติที่รวมเข้าด้วยกัน

ตอนนี้คำถามของฉันคือ:

  1. ฉันจะทำอย่างไรเพื่อปรับปรุงจำนวนครั้งการค้นหาที่เป็นค่าบวก
  2. เราจะตัดสินได้อย่างไรว่ามีกรณีเกินจริงในกรณีเช่นนี้? (ฉันได้ลองพล็อตและอื่น ๆ )
  3. เมื่อถึงจุดหนึ่งอาจสรุปได้ว่านี่อาจเป็นแบบที่ดีที่สุดเท่าที่จะเป็นไปได้ (ซึ่งดูเหมือนว่าเศร้าเมื่อพิจารณาเพียง 6 ครั้งจาก 673 ครั้ง)
  4. มีวิธีที่ฉันสามารถทำให้อินสแตนซ์ตัวอย่างเชิงบวกมีน้ำหนักมากขึ้นหรือไม่เพื่อให้การจดจำรูปแบบดีขึ้นนำไปสู่ความนิยมมากขึ้น
  5. กราฟฟิคแบบใดที่สามารถช่วยตรวจจับค่าผิดปกติหรือสัญชาตญาณว่ารูปแบบใดจะเหมาะสมที่สุด

ฉันกำลังใช้ห้องสมุด scikit-Learn กับ Python และการใช้งานทั้งหมดเป็นฟังก์ชั่นห้องสมุด

แก้ไข:

นี่คือผลลัพธ์ที่มีอัลกอริธึมอื่น ๆ :

ลอจิคัลฟอเรสต์แบบสุ่ม (n_estimators = 100)

[[82211   667]
[    3     6]]

ต้นไม้ตัดสินใจ:

[[78611   635]
[ 3603    38]]

คำตอบ:


11
  1. เนื่องจากคุณทำการจำแนกประเภทไบนารีคุณลองปรับเปลี่ยนเกณฑ์การจัดหมวดหมู่หรือไม่ เนื่องจากอัลกอริทึมของคุณค่อนข้างไม่รู้สึกฉันจะลองลดลงและตรวจสอบว่ามีการปรับปรุงหรือไม่

  2. คุณสามารถใช้งานได้ตลอดเวลา Learning Curvesหรือพล็อตของพารามิเตอร์โมเดลหนึ่งเทียบกับข้อผิดพลาดในการฝึกอบรมและการตรวจสอบเพื่อตรวจสอบว่าโมเดลของคุณ overfitting หรือไม่ ดูเหมือนว่ามันจะเหมาะสมในกรณีของคุณ แต่นั่นเป็นเพียงสัญชาตญาณ

  3. ในที่สุดมันก็ขึ้นอยู่กับชุดข้อมูลของคุณและรุ่นอื่น ๆ ที่คุณได้ลอง ณ จุดนี้และหากไม่มีการทดสอบเพิ่มเติมจะไม่มีคำตอบที่แน่นอน

  4. โดยไม่อ้างว่าเป็นผู้เชี่ยวชาญในหัวข้อมีเทคนิคต่าง ๆ ที่คุณอาจติดตาม (คำแนะนำ: ลิงค์แรกบน google ) แต่ในความคิดของฉันคุณควรให้แน่ใจว่าคุณเลือกฟังก์ชั่นค่าใช้จ่ายของคุณอย่างระมัดระวังเพื่อให้มันแสดงถึงสิ่งที่ คุณกำลังมองหาจริง

  5. ไม่แน่ใจว่าสิ่งที่คุณหมายถึงโดยสัญชาตญาณแบบคุณสามารถทำอย่างละเอียด?

อย่างไรก็ตามผลลัพธ์ของคุณกับอัลกอริทึมที่แตกต่างกันที่คุณลองมาคืออะไร พวกเขาต่างกันไหม?


1
การปรับเกณฑ์สำหรับการถดถอยโลจิสติกได้ทำเคล็ดลับ ขอบคุณสำหรับรายการแหล่งที่มา
tejaskhot

บางคนสามารถวางข้อมูลโค้ดของวิธีปรับเกณฑ์การถดถอยโลจิสติกส์ได้หรือไม่
Blenz

0

เนื่องจากข้อมูลมีความเบ้มากในกรณีเช่นนี้เราจึงสามารถลองการฝึกอบรมแบบจำลองหลังจากข้อมูลการสุ่มตัวอย่างมากเกินไป

SMOTE และ ADASYNเป็นเทคนิคที่เราสามารถใช้ในการเก็บตัวอย่างข้อมูล

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