ทำไมประมาณการ CV ของข้อผิดพลาดในการทดสอบต่ำกว่าข้อผิดพลาดการทดสอบจริง?


10

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

นอกจากนี้ถูกต้องหรือไม่ที่จะบอกว่าการประเมินการตรวจสอบข้ามข้อผิดพลาดของการทดสอบนั้นมีความลำเอียงลดลง?


1
คุณเห็นสิ่งนี้ระบุไว้ที่ไหน คุณสามารถให้การอ้างอิงบางอย่าง?
horaceT

1
(+1) ฉันเห็นข้อความเดียวกันและฉันเชื่อว่าถูกต้อง แต่ฉันไม่เข้าใจตรรกะเช่นกัน
KevinKim

คำตอบ:


9

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

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

@cbeleites ชี้ให้เห็น: นี่เป็นปัญหาในกรณีที่ใช้ข้อผิดพลาด k-fold CV เพื่อรับ a) เลือกโมเดลที่ดีที่สุดจากหลาย ๆ โมเดลจากการใช้เช่นพารามิเตอร์ที่แตกต่างกันซึ่งเป็นส่วนหนึ่งของกระบวนการฝึกอบรมและ b) จากนั้น รายงานข้อผิดพลาดเดียวกับข้อผิดพลาดในการทดสอบแทนที่จะใช้ชุดการทดสอบที่แยกกันและค้างไว้ด้านหลัง หากคุณตั้งใจจะถามหาข้อผิดพลาด CV ล้วนๆโดยไม่ต้องใช้มันเพื่อเลือกรูปแบบใด ๆคำตอบของ @cbeleitesมีโอกาสมากขึ้นที่คุณกำลังค้นหา


อีกครั้งปัญหาที่นี่คือการรายงานข้อผิดพลาดการฝึกอบรม (การฝึกอบรมใน: ประมาณการนี้จะใช้ในกระบวนการของการได้รับหนึ่งรุ่นสุดท้าย) ประมาณการข้อผิดพลาดทั่วไป - ไม่ว่าข้อผิดพลาดนี้ถูกคำนวณผ่านการตรวจสอบข้ามถือออกหรืออะไรก็ตาม วิธีการประเมินข้อผิดพลาดอื่น ๆ
cbeleites ไม่มีความสุขกับ SX

1
@cbeleites อีกครั้งจุดที่แท้จริง - ฉันมักจะคิดว่าผลลัพธ์ CV จะถูกนำมาใช้สำหรับการเลือกแบบจำลอง (ซึ่งสำหรับบางคนเป็นเหตุผลของการใช้ CV ในตอนแรก) - ดังนั้นชี้ให้เห็น ฉันอัพเดตคำตอบแล้ว
geekoverdose

9

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

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

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

นี่คือตัวอย่างของข้อผิดพลาดที่พบบ่อยที่สุดในการแยกที่ฉันเห็น:

  • คำตอบของ @ geekoverdoseให้ตัวอย่างของโจ๋งครึ่มโดยใช้การประมาณข้อผิดพลาดการฝึกอบรมภายใน (!) เป็นข้อผิดพลาดในการทดสอบ
    โดยทั่วไปแล้วการประมาณข้อผิดพลาดทุกประเภทที่ใช้สำหรับการเพิ่มประสิทธิภาพตัวแบบข้อมูลเป็นข้อผิดพลาดในการฝึกอบรม
  • ตัวแปรที่ไม่ได้คำนึงถึงในการแยก
    แถวหนึ่งในเมทริกซ์ข้อมูลไม่จำเป็นต้องประกอบด้วยกรณีที่เป็นอิสระเช่น
    • การรักษาการวัดซ้ำของกรณี / เรื่อง / ผู้ป่วยเดียวกันกับ "อิสระ"
    • โดยทั่วไปสามารถมองเห็น / เพิกเฉยกลุ่มที่แข็งแกร่งในข้อมูล
    • ไม่ทราบว่าจะมีการดริฟท์อย่างต่อเนื่องในกระบวนการสร้างข้อมูล (กรณีที่ไม่รู้จักในอนาคตกับกรณีที่ไม่รู้จัก), ...


0

ก่อนอื่นให้ฉันล้างเงื่อนไขที่ใช้ในคำถามตามที่ฉันเข้าใจ โดยปกติเราเริ่มต้นด้วยชุดข้อมูลการฝึกอบรมหนึ่งชุดใช้การตรวจสอบความถูกต้องของ k-fold เพื่อทดสอบแบบจำลองต่างๆ ดังนั้น 'การตรวจสอบข้ามข้อผิดพลาดในการทดสอบ' หมายถึงการใช้ข้อผิดพลาด CV ต่ำสุดเป็นข้อผิดพลาดในการทดสอบไม่ใช่แค่ข้อผิดพลาด CV ของโมเดลแบบสุ่ม (ซึ่งกรณีที่กล่าวถึงโดย cbeleites แต่ไม่ใช่สิ่งที่เราทำตามปกติ) 'ข้อผิดพลาดการทดสอบจริง' ในคำถามคือข้อผิดพลาดที่เราได้รับเมื่อใช้โมเดล CV ที่ดีที่สุดกับชุดข้อมูลการทดสอบที่ไม่มีที่สิ้นสุดโดยสมมติว่าเราสามารถรับได้ ข้อผิดพลาด CV ขึ้นอยู่กับชุดข้อมูลเฉพาะที่เรามีและข้อผิดพลาดในการทดสอบจริงนั้นขึ้นอยู่กับรูปแบบ CV ที่ดีที่สุดที่เลือกซึ่งยังขึ้นอยู่กับชุดข้อมูลการฝึกอบรม ดังนั้นความแตกต่างระหว่างข้อผิดพลาด CV และข้อผิดพลาดในการทดสอบจึงขึ้นอยู่กับชุดข้อมูลการฝึกอบรมที่แตกต่างกัน จากนั้นคำถามก็คือถ้าเราทำซ้ำขั้นตอนข้างต้นหลายครั้งด้วยชุดข้อมูลการฝึกอบรมที่แตกต่างกันและค่าเฉลี่ยของข้อผิดพลาดทั้งสองตามลำดับสาเหตุที่ข้อผิดพลาด CV เฉลี่ยต่ำกว่าข้อผิดพลาดการทดสอบโดยเฉลี่ยคือข้อผิดพลาด CV แต่ก่อนหน้านี้สิ่งนี้จะเกิดขึ้นเสมอหรือไม่

โดยปกติแล้วเป็นไปไม่ได้ที่จะได้รับชุดข้อมูลการฝึกอบรมจำนวนมากและชุดข้อมูลการทดสอบที่มีแถวที่ไม่มีที่สิ้นสุด แต่เป็นไปได้ที่จะใช้ข้อมูลที่สร้างขึ้นโดยการจำลอง ใน "บทที่ 7 การประเมินรูปแบบและการคัดเลือก" ของหนังสือ "องค์ประกอบของการเรียนรู้ทางสถิติ" โดย Trevor Hastie, et al. มันรวมถึงการทดลองจำลอง

บทสรุปคือการใช้ CV หรือ bootstrap "... การประเมินข้อผิดพลาดการทดสอบสำหรับชุดการฝึกอบรมเฉพาะนั้นไม่ใช่เรื่องง่ายโดยทั่วไปเพียงแค่ได้รับข้อมูลจากชุดฝึกอบรมเดียวกันนั้น" โดย 'ไม่ใช่เรื่องง่าย' พวกเขาหมายถึงข้อผิดพลาด CV อาจดูเบาหรือประเมินค่าสูงเกินไปข้อผิดพลาดการทดสอบจริงขึ้นอยู่กับชุดข้อมูลการฝึกอบรมที่แตกต่างกันเช่นความแปรปรวนที่เกิดจากชุดข้อมูลการฝึกอบรมที่แตกต่างกันค่อนข้างใหญ่ แล้วความลำเอียงล่ะ kNN และโมเดลเชิงเส้นที่ทดสอบเกือบจะไม่ลำเอียง: ข้อผิดพลาด CV ประเมินค่าสูงกว่าข้อผิดพลาดการทดสอบจริงโดย 0-4% แต่บางรุ่น "เช่นต้นไม้การตรวจสอบความถูกต้องข้าม การค้นหาต้นไม้ที่ดีที่สุดได้รับผลกระทบอย่างมากจากชุดการตรวจสอบความถูกต้อง "

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

เหตุผลสำหรับการประเมินต่ำสุดดังกล่าวข้างต้นคือการเลือกพารามิเตอร์สำหรับรูปแบบที่ดีที่สุดนั้นขึ้นอยู่กับชุดการฝึกอบรมที่เราได้รับในท้ายที่สุด รายละเอียดเล็กน้อยปล่อยให้พารามิเตอร์ที่ดีที่สุดเป็น M1 ในชุดการฝึกอบรมนี้โดยเฉพาะ แต่ M1 อาจไม่ใช่พารามิเตอร์ที่ดีที่สุดในชุดข้อมูลการฝึกอบรมอื่น ๆ ซึ่งหมายความว่าข้อผิดพลาด CV ขั้นต่ำน้อยกว่าข้อผิดพลาด CV จาก M1 ดังนั้นข้อผิดพลาด CV ที่คาดหวังที่เราได้รับจากกระบวนการฝึกอบรมมีโอกาสน้อยกว่าข้อผิดพลาด CV ที่คาดหวังของ M1 ครั้งเดียวที่ข้อผิดพลาด CV ขั้นต่ำจากชุดข้อมูลการฝึกอบรมเฉพาะนั้นไม่ได้ลำเอียงคือเมื่อตัวแบบที่ดีที่สุดมักจะเป็นชุดข้อมูลการฝึกอบรมที่ดีที่สุดเสมอ ในทางกลับกันข้อผิดพลาด CV อาจประเมินค่าความผิดพลาดการทดสอบจริงเล็กน้อยได้ดังที่ cbeleites พูดถึง นี่เป็นเพราะข้อผิดพลาด k fold CV นั้นได้มาจากการใช้ข้อมูลการฝึกอบรมน้อยลงเล็กน้อยในการฝึกอบรมแบบจำลอง (สำหรับ 10 เท่า cv ใช้ข้อมูล 90%) มันมีอคติต่อข้อผิดพลาดจริง แต่ไม่มาก ดังนั้นจึงมีอคติสองทิศทางที่แตกต่างกัน สำหรับวิธีการสร้างแบบจำลองมีแนวโน้มที่จะเกิด overfit โดยใช้ CV แบบโฟลตน้อยเช่น 5-fold เทียบกับ 10-fold อาจส่งผลให้มีอคติน้อยลง

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

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