การตรวจสอบความถูกต้องไขว้ (ข้อผิดพลาดทั่วไป) หลังจากการเลือกรูปแบบ


21

หมายเหตุ: เคสคือ n >> p

ฉันกำลังอ่านองค์ประกอบของการเรียนรู้ทางสถิติและมีหลายสิ่งที่กล่าวถึงวิธี "ถูกต้อง" ในการตรวจสอบข้าม (เช่นหน้า 60, หน้า 245) โดยเฉพาะคำถามของฉันคือวิธีการประเมินรุ่นสุดท้าย (ไม่มีชุดทดสอบแยก) โดยใช้ k-fold CV หรือ bootstrapping เมื่อมีการค้นหารูปแบบ? ดูเหมือนว่าในกรณีส่วนใหญ่ (อัลกอริทึม ML ที่ไม่มีการเลือกคุณสมบัติแบบฝัง) จะมี

  1. ขั้นตอนการเลือกคุณสมบัติ
  2. ขั้นตอนการเลือกพารามิเตอร์ meta (เช่นพารามิเตอร์ต้นทุนใน SVM)

คำถามของฉัน:

  1. ฉันได้เห็นแล้วว่าขั้นตอนการเลือกคุณสมบัติสามารถทำได้เมื่อการเลือกคุณสมบัติเสร็จสิ้นในชุดฝึกอบรมทั้งหมด จากนั้นใช้ k-fold CV อัลกอริทึมการเลือกคุณลักษณะจะใช้ในแต่ละเท่า (รับคุณลักษณะที่แตกต่างกันซึ่งอาจเลือกได้ในแต่ละครั้ง) และข้อผิดพลาดเฉลี่ย จากนั้นคุณจะใช้คุณสมบัติที่เลือกโดยใช้ข้อมูลทั้งหมด (ที่ถูกตั้งค่าไว้) เพื่อฝึกโหมดสุดท้าย แต่ใช้ข้อผิดพลาดจากการตรวจสอบความถูกต้องของข้อมูลเพื่อประเมินประสิทธิภาพในอนาคตของโมเดล ถูกต้องหรือไม่
  2. เมื่อคุณใช้การตรวจสอบความถูกต้องไขว้กันเพื่อเลือกพารามิเตอร์โมเดลแล้วจะประเมินประสิทธิภาพของโมเดลได้อย่างไร? มันเป็นกระบวนการที่เหมือนกันกับ # 1 ข้างต้นหรือคุณควรใช้ CV CV ที่มีลักษณะเหมือนการแสดงบนหน้า 54 ( pdf ) หรืออื่น ๆ
  3. เมื่อคุณทำทั้งสองขั้นตอน (การตั้งค่าคุณสมบัติและพารามิเตอร์) ..... แล้วคุณจะทำอย่างไร? ซับซ้อนซ้อนกันลูป?
  4. หากคุณมีตัวอย่างการระงับแยกต่างหากข้อกังวลหายไปและคุณสามารถใช้การตรวจสอบความถูกต้องแบบไขว้เพื่อเลือกคุณสมบัติและพารามิเตอร์ (ไม่ต้องกังวลเนื่องจากการประเมินประสิทธิภาพของคุณจะมาจากชุดการระงับ)

@ user2040 (+1) คำถามเหล่านั้นเป็นคำถามที่ดีมากแน่นอน! คำถามที่เกี่ยวข้องบ้างที่สามารถพบได้ที่นี่: การเลือกคุณลักษณะสำหรับ“สุดท้าย” รูปแบบเมื่อดำเนินการตรวจสอบข้ามในการเรียนรู้เครื่อง
chl

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

คำตอบ:


18

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

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

คำตอบสำหรับคำถามเฉพาะ:

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

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

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

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


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

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

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

เราไม่สามารถประเมินประสิทธิภาพของรุ่นเฉพาะได้โดยตรงโดยไม่ต้องมีชุดทดสอบภายนอก ประสิทธิภาพของวิธีการสร้างแบบจำลองนั้นเป็นพร็อกซีที่สมเหตุสมผลสำหรับประสิทธิภาพของแบบจำลองเองหากเป็นวิธีทั้งหมดที่ผ่านการตรวจสอบความถูกต้อง ฉันเห็นด้วยกับบทสรุปในประโยคสุดท้ายของคุณ!
Dikran Marsupial

5

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

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


@ user2643: คุณมีการอ้างอิงใด ๆ ที่จะแบ่งปันวิธีสร้าง CV ที่ซ้อนกันหรือไม่ มันเป็นไปตามบรรทัดเดียวกับ pdf ที่ฉันเชื่อมโยงกับคำถามของฉันหรือไม่ ..... ข้อมูลนี้เป็นข้อมูลทางการตลาดโดยบังเอิญหรือไม่?
B_Miner

@ user2643 ปัญหาเกี่ยวกับวิธีการนั้น (ซึ่งถูกต้อง) คือมันให้เพียงเกณฑ์เดียวสำหรับความถูกต้อง (การจำแนก) หรือความแม่นยำ (การถดถอย); คุณจะไม่สามารถพูดว่า "สิ่งเหล่านี้เป็นคุณสมบัติที่น่าสนใจที่สุด" เนื่องจากคุณสมบัติเหล่านี้มีความหลากหลายตั้งแต่แบบเดี่ยวไปจนถึงแบบอื่น ฉันทำงานกับข้อมูลทางพันธุกรรม (ตัวแปร 600k) ที่เราใช้ CV แบบ 10 เท่าพร้อมการเลือกคุณสมบัติแบบฝังตัวภายใต้แผนการเปลี่ยนแปลง (k = 1,000 เพื่อความสะดวกสบายในระดับ 5%) เพื่อประเมินความน่าเชื่อถือของผลการวิจัย ด้วยวิธีนี้เราสามารถพูดได้ว่า: "แบบจำลองของเราสรุปได้ดีหรือไม่" ไม่มีอะไรเพิ่มเติม
chl

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

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

@ user2040: ขออภัยสำหรับการตอบกลับล่าช้า ฉันสร้างการใช้งานซอฟต์แวร์ของตัวเองสำหรับวิธี CV แบบซ้อนกัน เนื่องจากการวิจัยของฉันเกี่ยวข้องกับชีวสารสนเทศศาสตร์ฉันกำลังวางแผนที่จะส่งคำอธิบายของซอฟต์แวร์ในเร็ว ๆ นี้ลงในวารสารชีวสารสนเทศศาสตร์ แต่มันสามารถใช้ในโดเมนการวิจัยใด ๆ หากคุณสนใจที่จะลองใช้โปรดแจ้งให้เราทราบ goldfish1434 ที่ yahoo dot com
2643
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.