ใครสามารถบอกฉันได้ว่าการวิเคราะห์การตรวจสอบความถูกต้องเป็นสิ่งที่ให้ผลลัพธ์ มันเป็นเพียงความแม่นยำเฉลี่ยหรือให้รุ่นใด ๆ ที่มีการปรับพารามิเตอร์?
เพราะฉันได้ยินบางที่การตรวจสอบความถูกต้องไขว้ใช้สำหรับการปรับพารามิเตอร์
ใครสามารถบอกฉันได้ว่าการวิเคราะห์การตรวจสอบความถูกต้องเป็นสิ่งที่ให้ผลลัพธ์ มันเป็นเพียงความแม่นยำเฉลี่ยหรือให้รุ่นใด ๆ ที่มีการปรับพารามิเตอร์?
เพราะฉันได้ยินบางที่การตรวจสอบความถูกต้องไขว้ใช้สำหรับการปรับพารามิเตอร์
คำตอบ:
การตรวจสอบความถูกต้องระหว่างกันเป็นการวัดความแม่นยำนอกตัวอย่างโดยการหาค่าเฉลี่ยของพาร์ติชั่นสุ่มหลาย ๆ ส่วนของข้อมูลในการฝึกอบรมและตัวอย่างการทดสอบ มันมักจะใช้สำหรับการปรับพารามิเตอร์โดยทำการตรวจสอบข้ามสำหรับค่าที่เป็นไปได้หลาย ๆ (หรือหลาย) ของพารามิเตอร์และการเลือกค่าพารามิเตอร์ที่ให้ข้อผิดพลาดเฉลี่ยข้ามการตรวจสอบต่ำสุด
ดังนั้นกระบวนการจึงไม่ได้ให้แบบจำลองหรือการประมาณพารามิเตอร์ให้คุณ แต่คุณสามารถใช้มันเพื่อช่วยเลือกระหว่างทางเลือก
เพื่อเพิ่มคำตอบของโจนาธาน
อย่างไรก็ตามถ้าคุณใช้การตรวจสอบความถูกต้องไขว้สำหรับการปรับแต่งพารามิเตอร์จริง ๆ แล้วตัวอย่างจะกลายเป็นส่วนหนึ่งของแบบจำลองของคุณ ดังนั้นคุณต้องมีตัวอย่างอิสระอื่นเพื่อวัดประสิทธิภาพของรุ่นสุดท้ายอย่างถูกต้อง
การตรวจสอบความถูกต้องไขว้สามารถวัดได้มากกว่าความถูกต้องเฉลี่ย:
สิ่งที่สองที่คุณสามารถวัดด้วยการตรวจสอบความถูกต้องไขว้ได้คือความเสถียรของตัวแบบที่เกี่ยวกับการเปลี่ยนแปลงข้อมูลการฝึกอบรม: การตรวจสอบความถูกต้อง ชุดการฝึกอบรมที่แตกต่างกันเล็กน้อย ถ้าแบบจำลองมีความเสถียรโมเดลตัวแทนเสมือนเหล่านี้ทั้งหมดจะเทียบเท่ากันหากการฝึกอบรมไม่เสถียรโมเดลตัวแทนจะแตกต่างกันมาก คุณสามารถหาจำนวนนี้ "แตกต่างกันมาก" เช่นความแปรปรวนของการทำนายของตัวแบบตัวแทนที่แตกต่างกันสำหรับตัวอย่างเดียวกัน (ในการตรวจสอบความถูกต้องแบบข้ามซ้ำ / ซ้ำ) หรือตัวอย่างเช่นความแปรปรวนของพารามิเตอร์ของตัวแบบตัวแทน
หากต้องการเพิ่มคำตอบก่อนหน้าเราจะเริ่มจากจุดเริ่มต้น:
มีสองสามวิธีที่คุณสามารถปรับโมเดลของคุณให้พอดีกับข้อมูลการฝึกอบรมได้บางวิธีเห็นได้ชัดและน้อยกว่านั้น ข้อแรกและที่สำคัญที่สุดคือการกำหนดพารามิเตอร์การฝึกอบรม (น้ำหนัก) ให้กับข้อมูลมากเกินไป (พารามิเตอร์การปรับโค้งในการถดถอยโลจิสติกน้ำหนักเครือข่ายในเครือข่ายประสาทเทียมเป็นต้น) จากนั้นคุณจะสร้างแบบจำลองสัญญาณรบกวนในข้อมูล - ถ้าคุณมีมากเกินไปคุณจะไม่เพียง แต่จับฟังก์ชั่นการสร้างพื้นฐาน แต่ยังรวมถึงการสุ่มเนื่องจากขนาดตัวอย่างและความจริงที่ว่ากลุ่มตัวอย่างไม่ใช่ตัวแทนที่สมบูรณ์แบบของประชากร การ overfitting นี้สามารถบรรเทาได้ในระดับหนึ่งโดยการลงโทษคุณลักษณะบางอย่าง (โดยทั่วไปซับซ้อน) ของโมเดล สิ่งนี้สามารถทำได้โดยหยุดการฝึกอบรมเมื่อประสิทธิภาพของตัวอย่างรถไฟไม่ดีขึ้นอย่างมีนัยสำคัญอีกต่อไปโดยการเอาเซลล์ประสาทบางส่วนออกจากเครือข่ายประสาท (เรียกว่าการออกกลางคัน)https://ieeexplore.ieee.org/document/614177/ ) ฯลฯ ) อย่างไรก็ตามกลยุทธ์การทำให้เป็นมาตรฐานเหล่านี้เป็นสิ่งที่ต้องห้ามตัวเอง (เมื่อไหร่ที่คุณจะหยุด?, มีเซลล์ประสาทกี่เซลล์ที่จะเอาออก? ฯลฯ ) นอกจากนี้โมเดลการเรียนรู้ของเครื่องส่วนใหญ่ยังมีพารามิเตอร์ไฮเปอร์หลายตัวที่ต้องตั้งค่าก่อนการฝึกอบรมจะเริ่มขึ้น และพารามิเตอร์ไฮเปอร์เหล่านี้จะถูกปรับในเฟสการปรับพารามิเตอร์
สิ่งนี้นำเราไปสู่ประเภทที่สองและมีความหมายที่ลึกซึ้งยิ่งขึ้นของการ overfitting: การไฮเปอร์พารามิเตอร์แบบไฮเปอร์ การตรวจสอบความถูกต้องไขว้สามารถใช้เพื่อค้นหาพารามิเตอร์ไฮเปอร์ "ที่ดีที่สุด" โดยการฝึกอบรมแบบจำลองของคุณซ้ำ ๆ ตั้งแต่เริ่มต้นบนตัวอย่าง k-1 และการทดสอบในการพับครั้งสุดท้าย
แล้วมันจะทำยังไงกันแน่? ขึ้นอยู่กับกลยุทธ์การค้นหา (กำหนดโดย tenshi) คุณตั้งค่าพารามิเตอร์ไฮเปอร์ของโมเดลและฝึกโมเดล k ของคุณทุกครั้งที่ใช้การทดสอบการพับที่แตกต่างกัน คุณ "จดจำ" ประสิทธิภาพโดยเฉลี่ยของโมเดลในการทดสอบการพับทั้งหมดและทำซ้ำขั้นตอนทั้งหมดสำหรับชุดพารามิเตอร์ไฮเปอร์ชุดอื่น จากนั้นคุณเลือกชุดของพารามิเตอร์ไฮเปอร์ที่สอดคล้องกับประสิทธิภาพที่ดีที่สุดระหว่างการตรวจสอบความถูกต้องข้าม อย่างที่คุณเห็นค่าใช้จ่ายในการคำนวณของขั้นตอนนี้จะขึ้นอยู่กับจำนวนชุดพารามิเตอร์ไฮเปอร์ที่ต้องพิจารณา นั่นเป็นสาเหตุที่ทำให้กลยุทธ์บางอย่างสำหรับการเลือกชุดนี้ได้รับการพัฒนา (ที่นี่ฉันจะพูดถึงสิ่งที่ tenhi พูด):
อย่างไรก็ตามนี่ไม่ใช่จุดจบของเรื่องราวเนื่องจากพารามิเตอร์ไฮเปอร์สามารถ (และจะ) ยังเหมาะกับข้อมูลมากเกินไป สำหรับกรณีส่วนใหญ่คุณสามารถอยู่กับมันได้ แต่ถ้าคุณต้องการเพิ่มประสิทธิภาพการวางนัยทั่วไปของแบบจำลองของคุณคุณอาจต้องการลองและทำให้พารามิเตอร์ไฮเปอร์เป็นปกติเช่นกัน ครั้งแรกที่คุณสามารถประเมินประสิทธิภาพการทำงานบนออกจากตัวอย่างข้อมูลได้ดีขึ้นเล็กน้อยโดยใช้การค้นหาตารางที่ซ้อนกัน (รายละเอียด: http://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.htmlอภิปราย: การตรวจสอบข้ามซ้อน สำหรับการเลือกรูปแบบ) หรือเพียงแค่ใช้ชุดการตรวจสอบความถูกต้องที่ไม่ได้ใช้สำหรับการปรับค่าพารามิเตอร์มากเกินไป สำหรับการทำให้เป็นปกติในพื้นที่ของพารามิเตอร์ไฮเปอร์มันเป็นคำถามเปิดไม่มากก็น้อย แนวคิดบางอย่างรวมถึงการเลือกไม่ใช่ชุดค่าพารามิเตอร์ไฮเปอร์ที่ดีที่สุด แต่มีบางอย่างที่ใกล้เคียงกับกลาง เหตุผลมีดังนี้: ค่าพารามิเตอร์ไฮเปอร์ที่ดีที่สุดน่าจะเกินข้อมูลเพราะประสิทธิภาพที่ดีกว่าข้อมูลอื่น ๆ ของรถไฟพารามิเตอร์ที่ไม่ดีนั้นแย่มาก แต่คนที่อยู่ตรงกลางอาจจะได้รับการสรุปที่ดีกว่าคนที่ดีที่สุด . Andrew Ng เขียนบทความเกี่ยวกับเรื่องนี้ ตัวเลือกอื่นกำลัง จำกัด พื้นที่การค้นหาของคุณ (คุณกำลังทำให้เป็นปกติโดยแนะนำอคติที่แข็งแกร่งที่นี่ - ค่าที่อยู่นอกพื้นที่การค้นหาจะไม่ถูกเลือกอย่างชัดเจน)
คำพูดด้านข้าง: การใช้ความแม่นยำเป็นตัวชี้วัดประสิทธิภาพในกรณีส่วนใหญ่เป็นแนวคิดที่ไม่ดีมากพิจารณาเป็นคะแนน f1 และ f_beta - เมตริกเหล่านี้ในกรณีส่วนใหญ่จะสะท้อนให้เห็นถึงสิ่งที่คุณกำลังพยายามปรับให้เหมาะสมในปัญหาการจำแนกไบนารี
ในการสรุป: การตรวจสอบความถูกต้องด้วยตัวเองนั้นใช้เพื่อประเมินประสิทธิภาพของแบบจำลองในข้อมูลที่ไม่อยู่ในกลุ่มตัวอย่าง แต่ยังสามารถใช้เพื่อปรับแต่งพารามิเตอร์แบบไฮเปอร์ร่วมกับหนึ่งในกลยุทธ์การค้นหาในพื้นที่พารามิเตอร์แบบไฮเปอร์ การค้นหาพารามิเตอร์ไฮเปอร์ที่ดีช่วยให้สามารถหลีกเลี่ยงหรืออย่างน้อยก็ลดการ overfitting ได้ แต่โปรดจำไว้ว่าไฮเปอร์พารามิเตอร์สามารถทำให้ข้อมูลมีค่ามากเกินไป
หากคุณมาจากภูมิหลังของการเรียนรู้ Scikit คำตอบนี้อาจเป็นประโยชน์
การตรวจสอบความถูกต้องไขว้ของ k-fold ใช้เพื่อแบ่งข้อมูลออกเป็นk
พาร์ติชั่นตัวประมาณจะถูกฝึกบนk-1
พาร์ติชั่นแล้วทดสอบบนkth
พาร์ติชัน เช่นนี้การเลือกพาร์ติชันที่ควรเป็นkth
พาร์ติชันมีk
ความเป็นไปได้ ดังนั้นคุณจะได้รับk
ผลลัพธ์ทั้งหมดk
ความเป็นไปได้ของตัวประมาณของคุณ
นี่เป็นวิธีการคำนวณที่มีราคาแพง แต่ถ้าคุณจะลองใช้ตัวประมาณค่าต่างกันคุณสามารถลองทั้งสามวิธีนี้เพื่อทำการปรับจูนพารามิเตอร์พร้อมกับ CV:
ผม. GridSearchCV - รายการครบถ้วนสมบูรณ์ของ P และ C ที่เป็นไปได้ทั้งหมดสำหรับพารามิเตอร์หลายมิติสำหรับตัวประมาณทั้งหมด ในท้ายที่สุดให้พารามิเตอร์ที่ดีที่สุดโดยใช้ค่าเฉลี่ยของค่าประมาณ CV
ii RandomizedSearchCV - ไม่ทำ P และ C ทั้งหมดของพารามิเตอร์หลายมิติ แต่ในวิธีการสุ่มให้ค่าประมาณที่แม่นยำที่สุดที่เป็นไปได้ช่วยประหยัดมากขึ้นในการคำนวณ
สาม. BayesSearchCV - ไม่ได้เป็นส่วนหนึ่งของscikit-learn
การเพิ่มประสิทธิภาพแบบเบย์สำหรับการค้นหาแบบสุ่มและผลลัพธ์ที่เหมาะสม
tl: dr : CV ใช้เพื่อหลีกเลี่ยงความเอนเอียงสูงและความแปรปรวนสูงสำหรับตัวประเมินเนื่องจากข้อมูลที่คุณส่งผ่าน หวังว่ามันจะเป็นประโยชน์