วิธีสร้างโมเดลสุดท้ายและปรับเกณฑ์ความน่าจะเป็นหลังจากการตรวจสอบข้ามแบบซ้อน


17

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

ฉันจะสร้างรุ่นสุดท้ายได้อย่างไรหลังจากการตรวจสอบความถูกต้องข้ามแบบซ้อน

ฉันกำลังฝึกอบรมโมเดล glmnet อย่างง่ายด้วยการทำให้เป็นมาตรฐาน L1 และ L2 มันรวดเร็วง่ายและตีความได้ ฉันทำการเปลี่ยนคุณลักษณะกึ่งกลางปรับขนาดและแปลงบ็อกซ์ค็อกซ์เพื่อให้เห็นว่าการกระจายคุณลักษณะนั้นมีค่าเฉลี่ยอยู่ที่มาตรฐานและเป็นแบบเกาส์เซียน ฉันทำขั้นตอนนี้ภายในการตรวจสอบข้ามเพื่อป้องกันการรั่วไหลของข้อมูล อย่างแท้จริงเพราะฮาร์ดแวร์ของฉันช้าอย่างไม่น่าเชื่อและฉันไม่สามารถเข้าถึงกล้ามเนื้อ CPU ได้มากขึ้นฉันจึงทำการเลือกคุณสมบัติตัวกรองที่รวดเร็วภายใน CV หลังจากการประมวลผลคุณลักษณะล่วงหน้า ฉันใช้การค้นหากริดแบบสุ่มเพื่อเลือกพารามิเตอร์อัลฟาและแลมบ์ดา ฉันเข้าใจว่าฉันไม่ควรCV loop เพื่อรับค่าประมาณนี้ ฉันเข้าใจว่าวง CV ภายในนั้นใช้สำหรับการเลือกแบบจำลอง (ในกรณีนี้คือพารามิเตอร์ที่เหมาะสมที่สุด) และวงรอบนอกนั้นใช้สำหรับการประเมินแบบจำลองนั่นคือ CV ภายในและภายนอกให้บริการเพื่อวัตถุประสงค์ที่แตกต่างกันสองประการ (ฉันเป็นยังไงบ้าง)

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

คำแนะนำที่ฉันได้อ่านดูเหมือนจะบ่งบอกถึงสิ่งต่อไปนี้ - โปรดแก้ไขให้ฉันถ้านี่เป็นสิ่งที่ผิด: CV ภายในเป็นส่วนหนึ่งของกลไกที่ช่วยให้ฉันเลือกอัลฟาและแลมบ์ดาไฮเปอร์พารามิเตอร์ที่ดีที่สุดของโมเดล glmnet ของฉัน CV ภายนอกบอกถึงค่าประมาณที่ฉันคาดว่าจะได้รับจากตัวแบบสุดท้ายถ้าฉันใช้ขั้นตอนเหมือนกับที่ใช้ใน CV ภายในรวมถึงการปรับแต่งพารามิเตอร์และใช้ชุดข้อมูลทั้งหมดเพื่อสร้างตัวแบบสุดท้าย นั่นคือการปรับพารามิเตอร์ไฮเปอร์พารามิเตอร์เป็นส่วนหนึ่งของ "วิธีการสร้างแบบจำลอง" สิ่งนี้ถูกต้องหรือไม่? เพราะนี่คือสิ่งที่ทำให้ฉันสับสน ที่อื่นฉันได้เห็นแล้วว่าขั้นตอนการสร้างแบบจำลองสุดท้ายที่จะนำไปใช้นั้นเกี่ยวข้องกับการฝึกอบรมในชุดข้อมูลทั้งหมดโดยใช้ค่าคงที่ของไฮเปอร์พารามิเตอร์ที่เลือกใช้โดยใช้ CV ที่นี่ "วิธีการสร้างแบบจำลอง" ไม่รวมการปรับแต่ง แล้วมันคืออะไร? ในบางจุดพารามิเตอร์ที่เหมาะสมจะถูกเลือกและแก้ไขเพื่อสร้างแบบจำลองขั้นสุดท้าย! ที่ไหน? อย่างไร? ถ้าลูปด้านในของฉันคือ 5-fold CV และลูปด้านนอกของฉันคือ 5-fold CV และฉันเลือกพูด 100 คะแนนสำหรับการทดสอบซึ่งเป็นส่วนหนึ่งของการค้นหากริดแบบสุ่มใน CV ภายในฉันจะฝึก glmnet กี่ครั้ง รูปแบบ? (100 * 5 * 5) + 1 สำหรับการสร้างขั้นสุดท้ายหรือมีขั้นตอนเพิ่มเติมที่ฉันไม่ทราบหรือไม่

โดยพื้นฐานแล้วฉันต้องการคำอธิบายที่ชัดเจนมากเกี่ยวกับวิธีตีความการประเมินประสิทธิภาพจาก CV ที่ซ้อนกันและวิธีการสร้างแบบจำลองขั้นสุดท้าย

ฉันต้องการทราบขั้นตอนที่เหมาะสมสำหรับการเลือกเกณฑ์ความน่าจะเป็นสำหรับการแปลงคะแนนความน่าจะเป็นจากโมเดล glmnet สุดท้ายของฉันไปเป็นเลเบลคลาส (ไบนารี) --- ต้องการ CV อีกวงหนึ่งหรือไม่

คำตอบ:


8

การตรวจสอบความถูกต้องไขว้แบบซ้อนอธิบายโดยไม่มีการซ้อน

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

model = f (training data)

ฟังก์ชั่นการฝึกอบรมรุ่น "ฉัน" f ไม่จำเป็นต้อง hyperparameters ใด ๆเพราะภายในไม่ปรับแต่ง hyperparameter ทั้งหมด (เช่นของคุณalpha, lambdaและthreshold)

ในคำอื่น ๆ ฟังก์ชั่นการฝึกอบรมของฉันอาจมีการตรวจสอบความถูกต้องไขว้ด้านใน (หรือนอกถุงหรือจำนวนที่คาดการณ์ไว้ว่ามีประโยชน์) อย่างไรก็ตามโปรดทราบว่าความแตกต่างระหว่างพารามิเตอร์และพารามิเตอร์มากเกินไปคือ hyperparameters จำเป็นต้องปรับให้เหมาะกับชุดข้อมูล / แอปพลิเคชั่นในขณะที่พารามิเตอร์สามารถปรับให้เหมาะสมโดยไม่คำนึงว่าเป็นข้อมูลอะไร ดังนั้นจากมุมมองของผู้พัฒนาอัลกอริธึมการจัดหมวดหมู่ใหม่มันสมเหตุสมผลที่จะจัดเตรียมเฉพาะฟังก์ชัน "เปล่า" ( g (training data, hyperparameters)) ที่เหมาะสมกับพารามิเตอร์ถ้าได้รับข้อมูลและพารามิเตอร์หลายมิติ

จุดของการมี "นอก" ฟังก์ชั่นการฝึกอบรมfคือว่าหลังจากที่คุณทำของคุณทำงานได้ตรวจสอบข้ามจะช่วยให้คุณวิธีที่ตรงไปตรงมากับขบวนรถไฟ "ในชุดข้อมูลทั้ง": เพียงแค่ใช้f (whole data set)แทนการโทรf (cv split training data)สำหรับรุ่นตัวแทนตรวจสอบข้าม

ดังนั้นในตัวอย่างของคุณคุณจะมี 5 + 1 โทรไปfและแต่ละสายไปfจะมีเช่น 100 * 5 gโทรไป


เกณฑ์ความน่าจะเป็น

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

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

แต่สำหรับคำถามที่นี่คุณสามารถทำสิ่งนี้ภายในfและเช่นใช้การคาดคะเนที่ได้รับระหว่างการตรวจสอบความถูกต้องของการไขว้ด้านในเพื่อคำนวณ ROC จากนั้นหาจุด / เกณฑ์การทำงานของคุณตามนั้น


ความเห็นเฉพาะส่วนของคำถาม

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

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

ฉันเข้าใจว่าวง CV ภายในใช้สำหรับการเลือกแบบจำลอง

การปรับรูปแบบใด ๆ ที่ขับเคลื่อนด้วยข้อมูลจริง ๆ -> ที่มีการปรับแต่ง cutoff-threshold ของคุณ

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

ใช่.

นั่นคือการปรับพารามิเตอร์ไฮเปอร์พารามิเตอร์เป็นส่วนหนึ่งของ "วิธีการสร้างแบบจำลอง"

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

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