ตัวเลือกรุ่นดั้งเดิม (?) พร้อม k-fold CV


9

เมื่อใช้ k-fold CV เพื่อเลือกระหว่างโมเดลการถดถอยฉันมักจะคำนวณข้อผิดพลาด CV แยกต่างหากสำหรับแต่ละรุ่นพร้อมกับข้อผิดพลาดมาตรฐาน SE และฉันเลือกรุ่นที่ง่ายที่สุดภายใน 1 SE ของรุ่นที่มีข้อผิดพลาด CV ต่ำสุด (1 กฎข้อผิดพลาดมาตรฐานดูตัวอย่างได้ที่นี่ ) อย่างไรก็ตามเมื่อเร็ว ๆ นี้ฉันได้รับแจ้งว่าด้วยวิธีนี้ฉันประเมินค่าความแปรปรวนสูงเกินไปและในกรณีเฉพาะในการเลือกระหว่างสองรุ่น A และ B ฉันควรดำเนินการต่อไปในลักษณะที่แตกต่างกัน:

  • สำหรับแต่ละเท่าของความยาวให้คำนวณความแตกต่างจุดระหว่างทั้งสองแบบจำลองการทำนายจากนั้นคำนวณความแตกต่างของค่าเฉลี่ยกำลังสองสำหรับการพับKNK
    MSDK=i=1NK(y^Aiy^Bi)2NK
  • ค่าเฉลี่ยข้ามเท่าปกติและใช้ข้อผิดพลาดความแตกต่าง CV นี้ (พร้อมกับข้อผิดพลาดมาตรฐาน) เป็นตัวประมาณสำหรับข้อผิดพลาดทั่วไปMSDK

คำถาม:

  1. สิ่งนี้สมเหตุสมผลสำหรับคุณหรือไม่ ฉันรู้ว่ามีเหตุผลทางทฤษฎีที่อยู่เบื้องหลังการใช้ข้อผิดพลาด CV เป็นตัวประมาณข้อผิดพลาดในการวางนัยทั่วไป (ฉันไม่ทราบว่าเหตุผลเหล่านี้คืออะไร แต่ฉันรู้ว่ามีอยู่จริง!) ฉันไม่รู้ว่ามีเหตุผลทางทฤษฎีที่อยู่เบื้องหลังการใช้ข้อผิดพลาด CV "แตกต่าง" นี้หรือไม่
  2. ฉันไม่รู้ว่าสิ่งนี้สามารถนำมาเปรียบเทียบกับแบบจำลองมากกว่าสองรุ่นได้หรือไม่ การคำนวณความแตกต่างของแบบจำลองทุกคู่ดูเหมือนจะมีความเสี่ยง (การเปรียบเทียบหลายทาง): คุณจะทำอย่างไรถ้าคุณมีมากกว่าสองแบบ?

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

คำตอบ:


2

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

ตัวอย่างเช่นฉันสามารถสร้างตัวทำนายที่เป็นใบ้ได้:

y^A(x,θ)=1+x,1θ

y^B(x,θ):=1+x,1θ2

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

ฉันลองดูที่ลิงค์ แต่ฉันไม่เห็นคุณ MSDKวัดที่นั่น Andrew Gelman เป็นนักสถิติที่น่านับถือดังนั้นฉันสงสัยว่าเขารับรองบางอย่างเช่นข้างต้นซึ่งล้มเหลวอย่างเห็นได้ชัดว่าเป็นตัวประมาณข้อผิดพลาดทั่วไป บทความและลิงก์ของเขากล่าวถึงการตรวจสอบความถูกต้องของการปล่อยข้าม (One) (Cross) ซึ่งยังคงต้องการการเปรียบเทียบกับจุดข้อมูลการทดสอบ (เช่นถูกยกออกจากการฝึกอบรม) เป็นมาตรฐาน MSDK เป็นตัวชี้วัดการมอง "ภายใน" ล้วนๆที่จะไม่บอกอะไรคุณเกี่ยวกับข้อผิดพลาดในการทดสอบที่คาดหวัง (ยกเว้นบางทีว่าทั้งสองรุ่นอาจมีข้อผิดพลาดที่คล้ายกัน ... )


ตอบสนองต่อความคิดเห็น OP

สูตรที่แสดงในความคิดเห็นของคุณต้องใช้บริบทเล็กน้อย:

  1. มันคือการวัดความแม่นยำแบบเบย์ในelpdนั้นคือความหนาแน่นของการคาดคะเนที่คาดคะเนจุด - ค่อนข้างเต็มปาก แต่โดยทั่วไปแล้วมันคือผลรวมของค่าที่คาดหวังของลอการิทึมของความหนาแน่นของการคาดการณ์หลังที่ประเมินในแต่ละจุด ความหนาแน่นที่ประเมินโดยใช้การตรวจสอบข้าม
  2. การวัดข้างต้น (elpd) คำนวณโดยใช้การตรวจสอบความถูกต้องแบบข้ามครั้งเดียวโดยที่ความหนาแน่นของการคาดการณ์ถูกนำมาใช้ที่จุดที่ตัดทิ้ง
  3. สิ่งที่สูตรของพวกเขา (19) กำลังทำคือการคำนวณข้อผิดพลาดมาตรฐานของความแตกต่างในความแม่นยำในการทำนาย (วัดโดยใช้ elpd) ระหว่างสองรุ่น ความคิดคือความแตกต่างใน elpd เป็นปกติ asymptoticallly ดังนั้นข้อผิดพลาดมาตรฐานมีค่าเฉลี่ย meaninig (และสามารถนำมาใช้เพื่อทดสอบว่าความแตกต่างพื้นฐานเป็นศูนย์) หรือเป็นแบบจำลองมีข้อผิดพลาดเล็ก ๆ น้อย ๆ ทำนายรุ่นบีกว่า

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

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


ฉันเข้าใจประเด็น: เห็นได้ชัดว่าฉัน (รวมถึงเพื่อนร่วมงานของฉันที่ชี้ให้ฉันเห็นหน้ากระดาษ) ไม่เข้าใจสิ่งที่เกิดขึ้น คุณช่วยอธิบายให้ฉันฟังว่าอะไรคือคำที่ Gelman เรียกว่า "ความผิดพลาดมาตรฐานของ [ความแตกต่างของแบบจำลอง A & B]"se(elpd^LOOAelpd^LOOB)? หน้า 18 ของกระดาษที่เชื่อมโยงกัน 5.2 มันจะช่วยถ้าคุณสามารถให้ตัวอย่างง่ายๆที่คุณแสดงวิธีการคำนวณคำนี้ มีอะไรมากมายที่ฉันไม่เข้าใจที่นี่
DeltaIV

@DeltaIV ตกลง ... ฉันจะตรวจสอบส่วนอ้างอิงและพยายามที่จะแกะสูตรสำหรับคุณ

1
@DeltaIV ตกลงฉันมีการเปลี่ยนแปลงเพื่อตรวจสอบ ฉันขยายโพสต์ของฉัน สิ่งนี้ดูเหมือนจะเป็นวิธีการทดลอง (และไม่ได้ตรวจสอบ) สำหรับการเปรียบเทียบแบบจำลองการทำนายสองแบบ ฉันจะใช้อย่างระมัดระวังถ้าคุณไม่สามารถตรวจสอบประสิทธิภาพการทำงานด้วยการศึกษา Monte Carlo ของคุณเอง (เช่นสามารถเลือกแบบจำลองการทำนายได้มากขึ้นเมื่อคุณรู้คำตอบใช่ไหม)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.