มันตลกที่คำตอบที่ได้รับการโหวตมากที่สุดนั้นไม่ได้ตอบคำถามจริงๆ :) ดังนั้นฉันคิดว่ามันคงจะดีถ้าได้สำรองไว้กับทฤษฎีอีกเล็กน้อย - ส่วนใหญ่มาจาก"Data Mining: เครื่องมือและเทคนิคการเรียนรู้ที่ใช้งานได้จริง"และTom Mitchell "เครื่องเรียนรู้"
บทนำ.
ดังนั้นเราจึงมีลักษณนามและชุดข้อมูลที่ จำกัด และข้อมูลจำนวนหนึ่งต้องเข้าสู่ชุดฝึกอบรมและส่วนที่เหลือจะใช้สำหรับการทดสอบ (หากจำเป็นจะต้องใช้ชุดย่อยที่สามสำหรับการตรวจสอบ)
Dilemma ที่เราเผชิญคือ: การค้นหา classi ที่ดีควรมี "ชุดย่อยการฝึกอบรม" ที่ใหญ่ที่สุดเท่าที่จะเป็นไปได้ แต่เพื่อให้ได้ข้อผิดพลาดที่ดีควรประเมิน "ชุดย่อยทดสอบ" ให้ใหญ่ที่สุดเท่าที่จะเป็นไปได้ สระเดียวกัน
เห็นได้ชัดว่าชุดการฝึกอบรมควรมีขนาดใหญ่กว่าชุดการทดสอบ - นั่นคือการแยกไม่ควรเป็น 1: 1 (เป้าหมายหลักคือการฝึกอบรมไม่ใช่การทดสอบ ) - แต่ไม่ชัดเจนว่าการแยกควรอยู่ที่ใด
ขั้นตอนการพัก
ขั้นตอนของการแยก "ซูเปอร์" ในส่วนย่อยที่เรียกว่าวิธีการที่ไม่ยอมอ่อนข้อ โปรดทราบว่าคุณอาจได้รับโชคไม่ดีและตัวอย่างของคลาสที่แน่นอนอาจหายไป (หรือแสดงตัวมากเกินไป) ในชุดย่อยหนึ่งชุดซึ่งสามารถแก้ไขได้ผ่าน
- การสุ่มตัวอย่างแบบสุ่มซึ่งรับประกันว่าแต่ละคลาสจะถูกนำเสนออย่างถูกต้องในชุดย่อยข้อมูลทั้งหมด - ขั้นตอนนี้เรียกว่าการถือชั้น Strati ati ed
- การสุ่มตัวอย่างแบบสุ่มด้วยกระบวนการฝึกอบรม - ทดสอบ - ตรวจสอบซ้ำแล้วซ้ำอีกซึ่งเรียกว่าการแบ่งชั้นซ้ำ
ในครั้งเดียว (nonrepeated) ขั้นตอนการยอมอ่อนข้อคุณอาจพิจารณาการสลับบทบาทของการทดสอบและการฝึกอบรมข้อมูลและค่าเฉลี่ยของทั้งสองผล แต่นี้เป็นเพียงที่เป็นไปได้กับ 1: 1 แยกระหว่างการฝึกอบรมและการทดสอบชุดซึ่งเป็นที่ยอมรับไม่ได้ (ดูบทนำ ) แต่นี่เป็นแนวคิดและวิธีการปรับปรุง (เรียกว่าการตรวจสอบความถูกต้องถูกนำมาใช้แทน) - ดูด้านล่าง!
การตรวจสอบครอส
ในการตรวจสอบความถูกต้องคุณเลือกจำนวนเท่า (ส่วนของข้อมูล) หากเราใช้สามเท่าข้อมูลจะถูกแบ่งออกเป็นสามพาร์ติชันเท่ากันและ
- เราใช้ 2/3 เพื่อการฝึกอบรมและ 1/3 สำหรับการทดสอบ
- และทำซ้ำขั้นตอนสามครั้งเพื่อที่ว่าในท้ายที่สุดทุกตัวอย่างจะถูกใช้อย่างแม่นยำเพียงครั้งเดียวสำหรับการทดสอบ
นี้เรียกว่าไตรสิกขาการตรวจสอบข้ามและถ้า Strati ไอออนบวก Fi ถูกนำมาใช้เช่นกัน (ซึ่งก็มักจะจริง) มันถูกเรียกว่าแซดไตรสิกขาการตรวจสอบข้าม
แต่แท้จริงและดูเถิดวิธีมาตรฐานไม่ได้แบ่ง 2/3: 1/3 การอ้างอิง"การทำเหมืองข้อมูล: เครื่องมือและเทคนิคการเรียนรู้ที่ใช้งานได้จริง" ,
วิธีมาตรฐาน [... ] คือการใช้การตรวจสอบความถูกต้องไขว้แบบ 10 เท่าของ strati ข้อมูลถูกแบ่งแบบสุ่มเป็น 10 ส่วนซึ่งคลาสจะแสดงในสัดส่วนประมาณเดียวกับในชุดข้อมูลแบบเต็ม แต่ละส่วนจะถูกนำออกใช้และแผนการเรียนรู้ที่ได้รับการฝึกฝนในเก้าส่วนที่เหลือ จากนั้นอัตราความผิดพลาดของมันจะถูกคำนวณในชุดที่ได้รับอนุญาต ดังนั้นขั้นตอนการเรียนรู้จะดำเนินการทั้งหมด 10 ครั้งในชุดการฝึกอบรมที่แตกต่างกัน (ซึ่งแต่ละชุดมีจำนวนมากเหมือนกัน) ในที่สุดการประมาณการข้อผิดพลาดทั้ง 10 ครั้งจะถูกนำมาเฉลี่ยเพื่อให้ได้การประเมินข้อผิดพลาดโดยรวม
ทำไม 10 เพราะ"การทดสอบ ..Extensive ในชุดข้อมูลจำนวนมากที่มีเทคนิคการเรียนรู้ที่แตกต่างกันได้แสดงให้เห็นว่า 10 เป็นเรื่องเกี่ยวกับตัวเลขทางขวาของเท่าที่จะได้รับการประมาณการที่ดีที่สุดของข้อผิดพลาดและนอกจากนี้ยังมีหลักฐานบางอย่างที่ทฤษฎีหลังนี้ขึ้น .."สวรรค์ฉัน ไม่พบการทดสอบที่ครอบคลุมและหลักฐานทางทฤษฎีที่พวกเขาต้องการ แต่นี่เป็นการเริ่มต้นที่ดีสำหรับการขุดมากขึ้น - หากคุณต้องการ
พวกเขาเพียงแค่พูดว่า
แม้ว่าข้อโต้แย้งเหล่านี้จะไม่ได้ข้อสรุปและการอภิปรายยังคงโกรธเคืองในการเรียนรู้ของเครื่องจักรและการทำเหมืองข้อมูลเกี่ยวกับสิ่งที่เป็นรูปแบบที่ดีที่สุดสำหรับการประเมินผลการตรวจสอบข้าม 10 เท่าได้กลายเป็นวิธีมาตรฐานในแง่ปฏิบัติ [... ] ยิ่งกว่านั้นไม่มีอะไรมหัศจรรย์เกี่ยวกับการตรวจสอบความถูกต้องจำนวน 10: 5-fold หรือ 20-fold มีแนวโน้มที่จะดี
Bootstrap และ - ในที่สุด! - คำตอบสำหรับคำถามเดิม
แต่เรายังไม่ได้มาถึงคำตอบว่าทำไม 2/3: 1/3 มักจะแนะนำ สิ่งที่ฉันใช้คือมันสืบทอดมาจากวิธีบูตสแตรป
มันขึ้นอยู่กับการสุ่มตัวอย่างด้วยการเปลี่ยน ก่อนหน้านี้เราใส่ตัวอย่างจาก "ชุดใหญ่" ลงในชุดย่อยหนึ่งชุด Bootstraping นั้นแตกต่างกันและตัวอย่างสามารถปรากฏได้ง่ายทั้งในชุดฝึกอบรมและชุดทดสอบ
ลองดูสถานการณ์หนึ่งโดยเฉพาะที่เราใช้ชุดข้อมูลD1ของnอินสแตนซ์และตัวอย่างมันnครั้งด้วยการแทนที่เพื่อรับชุดข้อมูลอีกD2ของอินสแตนซ์n
ตอนนี้ดูแคบ
เนื่องจากองค์ประกอบบางอย่างในD2จะทำซ้ำ (เกือบจะแน่นอน) จึงต้องมีบางกรณีในชุดข้อมูลดั้งเดิมที่ยังไม่ได้เลือก: เราจะใช้สิ่งเหล่านี้เป็นตัวอย่างการทดสอบ
โอกาสที่อินสแตนซ์บางตัวไม่ถูกเลือกสำหรับD2คืออะไร น่าจะเป็นของที่ถูกหยิบขึ้นมาในแต่ละใช้คือ1 / nเพื่อให้ตรงข้ามเป็น(1 - 1 / n)
เมื่อเราคูณความน่าจะเป็นเหล่านี้เข้าด้วยกันมันคือ(1 - 1 / n) ^ nซึ่งก็คือe ^ -1ซึ่งมีค่าประมาณ 0.3 ซึ่งหมายความว่าชุดทดสอบของเราจะอยู่ที่ประมาณ 1/3 และชุดฝึกอบรมจะอยู่ที่ประมาณ 2/3
ฉันเดาว่านี่เป็นเหตุผลว่าทำไมจึงแนะนำให้ใช้การแบ่ง 1/3: 2/3: อัตราส่วนนี้มาจากวิธีการประเมินการบูตสแตรป
ห่อมัน
ฉันต้องการจบด้วยการเสนอราคาจาก data mining book (ซึ่งฉันไม่สามารถพิสูจน์ได้ แต่ถือว่าถูกต้อง) ซึ่งโดยทั่วไปแล้วพวกเขาแนะนำให้ใช้การตรวจสอบข้ามแบบ 10 เท่า:
โพรซีเดอร์ bootstrap อาจเป็นวิธีที่ดีที่สุดในการประเมินข้อผิดพลาดสำหรับชุดข้อมูลที่มีขนาดเล็กมาก อย่างไรก็ตามเช่นเดียวกับการตรวจสอบความถูกต้องแบบ cross-one-out มันมีข้อเสียที่สามารถแสดงได้โดยพิจารณาจากสถานการณ์พิเศษ [... ] ชุดข้อมูลแบบสุ่มสมบูรณ์ที่มีสองคลาส อัตราความผิดพลาดที่แท้จริงคือ 50% สำหรับกฎการทำนายใด ๆ แต่รูปแบบที่จดจำชุดการฝึกอบรมจะให้คะแนนการรีบูทที่สมบูรณ์แบบ 100% ดังนั้นการฝึกอินสแตนซ์ = 0 และบูทสแตรป 0.632 จะผสมกับ 0.368 ให้อัตราความผิดพลาดโดยรวมเพียง 31.6% (0.632 ¥ 50% + 0.368 ¥ 0%) ซึ่งเป็นแง่ดีที่ทำให้เข้าใจผิด