การ oversampling, undersampling และ SMOTE มีปัญหาอะไรบ้าง


25

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

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

[... ] ไม่มีปัญหาในระดับต่ำเมื่อใช้ข้อมูลที่ไม่สมดุล จากประสบการณ์ของฉันคำแนะนำในการ "หลีกเลี่ยงข้อมูลที่ไม่สมดุล" เป็นข้อมูลเฉพาะของอัลกอริทึมหรือภูมิปัญญาที่สืบทอดมา ฉันเห็นด้วยกับ AdamO ว่าโดยทั่วไปแล้วข้อมูลที่ไม่สมดุลทำให้เกิดปัญหาทางแนวคิดกับโมเดลที่ระบุไว้อย่างดี

AdamO ให้เหตุผลว่า "ปัญหา" กับความสมดุลของชั้นเรียนเป็นหนึ่งในความหายากของชั้นเรียน

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

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


นั่นคือสิ่งที่ฉันเปลี่ยนไปเป็น ... ขอบคุณ มันไม่ครอบคลุมขอบเขตทั้งหมดของคำถามของคุณ แต่ชื่อไม่จำเป็นต้อง - มันชัดเจนที่จะได้รับสิ่งที่ชนิดของสิ่งที่คุณถามเกี่ยวกับ
Glen_b -Reinstate Monica

มีสถานการณ์ที่แน่นอนซึ่งวิธี bootstrap และ subsampling ที่มีประโยชน์และบางครั้งดีกว่าวิธีอื่นที่ไม่ใช่พารามิเตอร์ หนังสือบน bootstrap และ subsampling ครอบคลุมสิ่งนี้ มีการพูดคุยกันในเว็บไซต์นี้ที่กล่าวถึงเรื่องนี้รวมถึงความเหนือกว่าของ bootstrap มากกว่าการลาออกหนึ่งในการวิเคราะห์จำแนกแม้ในกลุ่มตัวอย่างที่ค่อนข้างเล็ก มีบางสถานการณ์ที่ bootstrap ล้มเหลวและถูกกล่าวถึงในหนังสือของฉันและอื่น ๆ
Michael R. Chernick

@MichaelChernick ฉันไม่ได้พูดถึง bootstrap นั่นคือสิ่งที่เกลนพูดถึง ฉันกำลังพูดถึง "การปรับสมดุลในชั้นเรียน" วิธีการที่เหมือนกันและต่ำกว่าการสุ่มตัวอย่างเพื่อให้คลาสบวกและลบเป็นตัวแทนเท่า ๆ กันในชุดข้อมูล
Matthew Drury

คุณมีตัวอย่างย่อยหรือไม่? คุณหมายถึงขนาดตัวอย่างที่ไม่เท่ากันเท่านั้น? คุณเป็นคำพูดทั่วไปแค่ไหน?
Michael R. Chernick

@MichaelChernick ฉันได้เพิ่มข้อสังเกตที่ชัดเจนในย่อหน้าแรกและย่อหน้าสุดท้ายฉันหวังว่าจะช่วยได้
แมทธิวดรูรี่

คำตอบ:


0

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


4
ทั้งหมดนี้เป็นจริง แต่วิธีการมากมายที่ฉันพูดถึงสร้างชุดข้อมูลขนาดใหญ่ขึ้น Upsampling สร้างอินสแตนซ์ของคลาสที่เป็นบวกมากขึ้นโดยการคัดลอกดาต้าพอยน์ที่มีอยู่และ SMOTE สร้างจุดข้อมูล "สังเคราะห์" ของคลาสที่หายาก สิ่งเหล่านี้จะไม่ช่วยในเรื่องประสิทธิภาพการคำนวณ
แมทธิวดรูรี่


0

ปัญหาที่วิธีการเหล่านี้พยายามแก้ไขคือการเพิ่มผลกระทบของชนชั้นน้อยในฟังก์ชันต้นทุน เนื่องจาก algos พยายามปรับให้เหมาะสมกับชุดข้อมูลทั้งหมดและปรับให้เข้ากับเสียงส่วนใหญ่ วิธีอื่น ๆ ก็คือการใช้ตุ้มน้ำหนักระดับและ aporoach นี้ในกรณีส่วนใหญ่ให้ผลลัพธ์ที่ดีกว่าเนื่องจากไม่มีการสูญเสียข้อมูลจากการ undersampling หรือการสูญเสียประสิทธิภาพและการแนะนำของเสียงโดย oversampling


2
ฉันไม่เข้าใจคำตอบของคุณ
Michael R. Chernick

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

0

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

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

L(xผม~,Yผม)=-α(Yผม)LN(xผม~)-β(1-Yผม)LN(1-xผม~)

β>α. ขนาดของความแตกต่าง β-α ขึ้นอยู่กับขอบเขตของการแสดงออกมากเกินไป / การแสดงน้อยไป


0

ฉันจะไม่เห็นด้วยกับหลักฐานที่ว่าข้อมูลที่ไม่สมดุลไม่ได้เป็นปัญหาในการเรียนรู้ของเครื่อง อาจจะน้อยกว่าดังนั้นในการถดถอย แต่แน่นอนอยู่ในการจัดหมวดหมู่

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

รับปัญหาการจำแนกเลขฐานสองอย่างง่าย ๆ ด้วยอัตราส่วน 25: 1 ตัวอย่างการฝึกอบรมของคลาส A 'กับ' คลาส B ' การวิจัยแสดงให้เห็นว่าความถูกต้องเกี่ยวกับการจัดหมวดหมู่ของคลาส B นั้นเป็นเรื่องง่ายเนื่องจากอัตราการลดลงของข้อมูลการฝึกอบรม เหมาะสมตามตัวอย่างการฝึกอบรมที่คุณมีน้อยกว่าตัวจําแนกของคุณที่ยากจนจะฝึกบนข้อมูลนั้น ตามที่ผู้วิจารณ์คนหนึ่งระบุไว้คุณไม่สามารถทำอะไรที่ไร้ค่า จากเอกสารที่ฉันได้เห็นในปัญหาการจำแนกประเภทหลายคลาสดูเหมือนว่าคุณจำเป็นต้องมีอัตราส่วน 10: 1 เพื่อเริ่มมีผลกระทบอย่างมีนัยสำคัญต่อความแม่นยำของกลุ่มชนกลุ่มน้อย บางทีคนที่อ่านวรรณกรรมแตกต่างจากที่ฉันเคยเห็นมีความคิดเห็นที่แตกต่างกัน

ดังนั้นการแก้ปัญหาที่เสนอคือ: การสุ่มตัวอย่างชนชั้นน้อยการ Undersampling ส่วนใหญ่หรือใช้ SMOTE ในชนกลุ่มน้อย ใช่คุณไม่สามารถสร้างข้อมูลจากที่ไหนเลย (การเรียงลำดับ SMOTE ทำ แต่ไม่ถูกต้อง) นอกเสียจากว่าคุณจะได้รับการสร้างข้อมูลสังเคราะห์สำหรับชั้นเรียนส่วนน้อย (ไม่มีวิธีง่าย ๆ ) เทคนิคอื่น ๆ เช่น MixUp และที่คล้ายกันอาจตกอยู่ในแนวคิดนี้ แต่ฉันคิดว่าพวกเขาเป็น regularizers มากกว่าโซลูชั่นความไม่สมดุลระดับ ในเอกสารที่ฉันได้อ่านการ Oversampling> SMOTE> Undersampling

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

ดังนั้นเพื่อตอบคำถาม:

TL / DR: ระดับสมดุลดำเนินการเช่นโอเวอร์ / undersampling โจมตี (และข้อมูลสังเคราะห์) ที่มีอยู่ในการปรับปรุงขั้นตอนวิธีการเรียนรู้ของเครื่อง (ลักษณนาม) ผลการดำเนินงานโดยการแก้ไขประสิทธิภาพตีอยู่ในขั้นตอนวิธีการที่เกิดจากความไม่สมดุลของตัวเอง

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