ทำไมเราต้องจัดการกับความไม่สมดุลของข้อมูล?


12

ฉันต้องรู้ว่าทำไมเราต้องจัดการกับความไม่สมดุลของข้อมูล ฉันรู้วิธีจัดการกับมันและวิธีการที่แตกต่างกันในการแก้ปัญหาซึ่งคือการสุ่มตัวอย่างขึ้นหรือการสุ่มตัวอย่างหรือโดยใช้ Smote

ตัวอย่างเช่นถ้าฉันมีโรคหายาก 1 เปอร์เซ็นต์จาก 100 และให้บอกว่าฉันตัดสินใจที่จะมีชุดข้อมูลที่สมดุลสำหรับชุดฝึกอบรมของฉันซึ่งก็คือ: ตัวอย่าง 50/50 จะไม่ทำให้เครื่องคิดว่า 50% ของผู้ป่วยจะมี โรค? แม้ว่าอัตราส่วนคือ 1 จาก 100 ดังนั้น

  1. ทำไมเราต้องจัดการกับความไม่สมดุลของข้อมูล?
  2. อัตราส่วนที่แนะนำให้มีการตั้งค่าสมดุลคืออะไร

ฉันชอบคำถามนั้น การทำความเข้าใจว่าทำไมจึงมีความสำคัญมาก
DaL

ดูคำถามในการตรวจสอบข้ามเกี่ยวข้องstats.stackexchange.com/questions/312780/...
Dal

คำตอบ:


8

คุณต้องจัดการกับชุดข้อมูลที่ไม่สมดุลเมื่อค่าการค้นหาคลาสของชนกลุ่มน้อยนั้นสูงกว่าการค้นหาเสียงส่วนใหญ่

สมมติว่า 1% ของประชากรมีโรคที่หายาก สมมติว่าคุณกำหนดค่าใช้จ่ายเท่ากันเพื่อบอกว่าคนที่มีสุขภาพไม่สบายหรือพูดว่าคนที่ป่วยนั้นมีสุขภาพที่ดี จัดทำแบบจำลองที่บอกว่าทุกคนมีสุขภาพดีได้รับความแม่นยำ 99% และกลับบ้านเร็ว ปัญหาของรุ่นดังกล่าวคือแม้ว่ามันจะมีความแม่นยำสูง แต่ก็อาจจะไม่ใช่สิ่งที่คุณกำลังมองหา เวลาส่วนใหญ่ที่คุณต้องการหาคนที่เป็นโรค (ให้น้ำหนักสูงถึงเนกาทีฟปลอม) มากกว่าที่คุณกลัวที่จะส่งคนที่มีสุขภาพไปสู่การทดสอบที่ไม่จำเป็น (น้ำหนักต่ำถึงผลบวกปลอม) ในปัญหาสุขภาพโลกแห่งความจริงอัตราส่วนระหว่างน้ำหนักสามารถเป็น 1 ถึง 1,000 ได้อย่างง่ายดาย

ความไม่สมดุลในการกระจายล้มเหลวอัลกอริธึมส่วนใหญ่จากการค้นหาวิธีแก้ไขปัญหาที่เหมาะสม

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

เพียงแค่ตั้งอัตราส่วนให้กับปัญหาอื่น ๆ จะไม่ทำงานเนื่องจากคุณจะมีปัญหาเดียวกัน

Smoteทำงานในลักษณะที่แตกต่างกันซึ่งไม่ได้ผลเช่นกันเมื่อฉันลองใช้ แต่อาจเหมาะกับปัญหาของคุณ


ดังนั้นที่ฉันเข้าใจดีกว่าเพื่อความสมดุลของข้อมูลเพราะอัลกอริทึมส่วนใหญ่ทำงานได้ดีกับข้อมูลที่สมดุลแม้ว่ามันจะไม่เหมาะสมกับการกระจายตามธรรมชาติ
sara

คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับประโยคนี้ได้ไหม "เมื่อค่าใช้จ่ายของข้อผิดพลาดไม่ตรงกับการแจกตัวอย่าง" ฉันไม่ได้รับมันดีมาก
sara

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

ตอบความคิดเห็นที่สอง: แน่นอนว่าจุดนั้นค่อนข้างไม่ชัดเจน ฉันแก้ไขคำตอบ ชัดเจนหรือไม่
DaL

ใช่ดังนั้นเมื่อฉันเข้าใจการฝึกอบรมและการแจกแจงการทดสอบควรเป็นแบบเดียวกันดังนั้นจะเป็นวิธีแก้ปัญหาหรือไม่ว่าหลังจากที่ฉันตั้งสมดุลการฝึกอบรมของฉันที่อัตราส่วน 50 50 แล้วฉันจะไปและตั้งค่าการทดสอบเป็น 50 50 ด้วยหรือไม่
ร่า

4
  • คำตอบสั้น ๆ :

คุณต้องจัดการกับคลาสที่ไม่สมดุลถ้า / เพราะมันทำให้โมเดลของคุณดีขึ้น (ในข้อมูลที่มองไม่เห็น) "ดีกว่า" เป็นสิ่งที่คุณต้องนิยามตนเอง มันอาจเป็นความแม่นยำอาจเป็นต้นทุนมันอาจเป็นอัตราบวกที่แท้จริงเป็นต้น

  • คำตอบยาว:

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

  1. การกระจายตัวของข้อมูลนั้นไม่สมดุลกัน

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

สิ่งสำคัญคือต้องทราบว่าการใช้รุ่นที่มีความอ่อนไหวต่อต้นทุนนั้นไม่ได้เฉพาะเจาะจงกับชุดข้อมูลที่ไม่สมดุล คุณสามารถใช้โมเดลดังกล่าวได้หากข้อมูลของคุณมีความสมดุลเช่นกัน

  1. มันไม่ได้เป็นตัวแทนของการกระจายข้อมูลที่แท้จริง

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

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

สมมติว่าฉันให้ข้อมูลการฝึกอบรมแก่คุณและเป้าหมายของคุณคือการเดาว่ามีอะไรสีแดงหรือน้ำเงิน ไม่ว่าคุณจะผิดพลาดสีน้ำเงินสำหรับสีแดงหรือสีแดงสำหรับสีน้ำเงินไม่ได้สร้างความแตกต่างมากนัก ข้อมูลการฝึกอบรมของคุณมีอินสแตนซ์สีแดง 90% ซึ่งในชีวิตจริงจะเกิดขึ้นเพียง 10% เท่านั้น คุณจะต้องจัดการกับสิ่งนั้นเพื่อทำให้แบบจำลองของคุณดีขึ้น


คำตอบที่ซับซ้อนมาก คุณสามารถอธิบายเพิ่มเติมเกี่ยวกับตัวอย่างในสิ่งที่คุณหมายถึงโดย "ถ้าแบบจำลองของคุณดีกว่าเพราะมีต้นทุนต่ำแล้วจัดการกับความไม่สมดุล" ทำไมฉันต้องจัดการกับความไม่สมดุลถ้าโมเดลมีราคาต่ำ
ร่า

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