ฉันมีชุดข้อมูลที่มีข้อกำหนดต่อไปนี้:
- ชุดข้อมูลการฝึกอบรมที่มีตัวอย่าง 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
- การเปลี่ยนค่าพารามิเตอร์เพื่อเรียกใช้ฟังก์ชัน
- คุณสมบัติทางวิศวกรรมตามสัญชาตญาณเพื่อรวมเอาคุณสมบัติที่รวมเข้าด้วยกัน
ตอนนี้คำถามของฉันคือ:
- ฉันจะทำอย่างไรเพื่อปรับปรุงจำนวนครั้งการค้นหาที่เป็นค่าบวก
- เราจะตัดสินได้อย่างไรว่ามีกรณีเกินจริงในกรณีเช่นนี้? (ฉันได้ลองพล็อตและอื่น ๆ )
- เมื่อถึงจุดหนึ่งอาจสรุปได้ว่านี่อาจเป็นแบบที่ดีที่สุดเท่าที่จะเป็นไปได้ (ซึ่งดูเหมือนว่าเศร้าเมื่อพิจารณาเพียง 6 ครั้งจาก 673 ครั้ง)
- มีวิธีที่ฉันสามารถทำให้อินสแตนซ์ตัวอย่างเชิงบวกมีน้ำหนักมากขึ้นหรือไม่เพื่อให้การจดจำรูปแบบดีขึ้นนำไปสู่ความนิยมมากขึ้น
- กราฟฟิคแบบใดที่สามารถช่วยตรวจจับค่าผิดปกติหรือสัญชาตญาณว่ารูปแบบใดจะเหมาะสมที่สุด
ฉันกำลังใช้ห้องสมุด scikit-Learn กับ Python และการใช้งานทั้งหมดเป็นฟังก์ชั่นห้องสมุด
แก้ไข:
นี่คือผลลัพธ์ที่มีอัลกอริธึมอื่น ๆ :
ลอจิคัลฟอเรสต์แบบสุ่ม (n_estimators = 100)
[[82211 667]
[ 3 6]]
ต้นไม้ตัดสินใจ:
[[78611 635]
[ 3603 38]]