R / caret: ชุดรถไฟและชุดทดสอบเทียบกับการตรวจสอบข้าม


9

นี่อาจเป็นคำถามที่งี่เง่า แต่เมื่อสร้างแบบจำลองที่มีเครื่องหมายรูปหมวกและใช้บางอย่างเช่นLOOCVหรือ (ยิ่งไปกว่านั้น) LGOCVสิ่งที่เป็นประโยชน์ของการแยกข้อมูลออกเป็นชุดรถไฟและชุดทดสอบถ้านี่คือขั้นตอนการตรวจสอบความถูกต้อง ทำอย่างไร

ผมอ่านบางส่วนของคำถามที่เกี่ยวข้องและพวกเขาชี้ให้เห็นว่าบางส่วนของวิธีการตรวจสอบข้าม (เช่นสิ่งที่อธิบายนี่ที่เว็บไซต์ของลูกศร ) เป็นเพื่อวัตถุประสงค์ในการเลือกคุณลักษณะ แต่ในกรณีของฉันฉันกำลังใช้randomForest( method = "rf") และkernlab( method = svmRadial) ซึ่งไม่ได้อยู่ในกลุ่มที่พยายามล้างคำทำนาย

ดังนั้นคำถามของฉันคือถ้าฉันใช้สิ่งที่ชอบcross_val <- trainControl(method = "LGOCV", p = 0.8)ไม่เหมือนกับการฝึกอบรมที่ 80% ของข้อมูลของฉันทดสอบแบบจำลองผลลัพธ์ในส่วนที่เหลืออีก 20% และทำสิ่งนั้นซ้ำไปซ้ำมาเพื่อให้ได้แนวคิดว่า รูปแบบการทำงานหรือไม่

ถ้าเป็นเช่นนั้นมีความจำเป็นที่จะต้องแยกข้อมูลของฉันออกเป็นชุดรถไฟ / ชุดทดสอบหรือไม่?

PS ฉันถามบางส่วนในขณะที่ฉันกำลังทำแบบจำลองเกี่ยวกับต้นแบบ DOE ที่สร้างขึ้นเชิงประจักษ์ (คิดว่าสินค้าหนักที่เราปรับแต่งอินพุตและจากนั้นใช้วิธีการทดสอบเพื่อวัดคุณลักษณะต่างๆเกี่ยวกับต้นแบบ)

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


แก้ไข:เพื่อตอบสนองต่อคำถามของ @ topepo ฉันกำลังสร้างแบบจำลองคุณสมบัติทางกายภาพที่วัดได้ของสารประกอบตามการปรับอินพุตทางเคมีของสูตร ฉันไม่สามารถพูดคุยเกี่ยวกับการใช้งานจริงของฉัน แต่ฉันจะทำตัวอย่างจากการกำหนดสีน้ำยางภายใน ฉันกำลังทดลองออกแบบที่เราผสมสารเคมี 4-5 ตัวอาจจะเล่นกับ% ของแข็งและระยะเวลาในการให้ความร้อนแก่โซลูชันพอลิเมอร์เพื่อปรับระดับการเกิดพอลิเมอร์

จากนั้นเราอาจทำการวัดการไหล, น้ำหนักโมเลกุล, ความแข็งของการเคลือบสี, การกันน้ำและอื่น ๆ

เรามีการจำลองแบบที่ดีของตัวแปรหลายตัว แต่มีการจำลองแบบจริงเพียงเล็กน้อยในแง่ที่ว่าทุกระดับ DOE เหมือนกันทุกประการ ชุดข้อมูลทั้งหมดคือ 80 การสังเกตและอาจจะซ้ำกัน 4-5 รายการ เราได้ทำการทดสอบ 15 ครั้งและเราอาจทำการทดสอบได้ 5-6 ครั้งสำหรับการสังเกตทุกครั้ง คำตอบบางส่วนมีอยู่ 25-50% ของข้อมูล

จากที่นี่เราต้องการจำลองผลกระทบของตัวทำนาย 7 ตัวของเราต่อคุณสมบัติของเอาต์พุตและปรับให้เหมาะสมเพื่อกำหนดเป้าหมายพื้นที่การออกแบบใหม่ที่น่าจะให้คุณสมบัติที่ต้องการมากที่สุด

(ดังนั้นคำถามของฉันที่นี่เมื่อฉันมีรูปแบบการฝึกอบรมมันจะดีที่จะทำ "ย้อนกลับ" และฟีดในการตอบสนองที่ต้องการเพื่อให้ได้เดาที่ดีที่สุดในระดับการป้อนข้อมูลที่เป็นไปได้ที่จะลองต่อไป)


ชุดการตรวจสอบและชุดทดสอบเป็นสองสิ่งที่แตกต่างกัน! ดูstats.stackexchange.com/questions/19048/…และen.wikipedia.org/wiki/Test_set
sashkello

@sashkello ขอบคุณสำหรับสิ่งนั้น สิ่งนี้อาจถูกปิดซ้ำซ้อนและฉันก็พลาดคำถามนั้นไปอย่างสิ้นเชิง หนึ่งบิตที่ขาดหายไปอาจเป็น: ถ้าฉันฝึกด้วยdata_set1ฉันจะพิจารณาขั้นตอนที่ดำเนินการโดยLGOCVการตรวจสอบข้ามได้อย่างไร จากการอ่านของฉันฉันสมมติว่า 1) caretวนซ้ำผ่านการปรับพารามิเตอร์data_set1แล้ว 2) เก็บ params เหล่านั้นคงที่และ 3) สร้าง "sub model" โดยใช้ params จาก # 1 สำหรับp = 0.8ตัวอย่างแต่ละตัวอย่างdata_set1และทดสอบการทำนายที่เหลือ 0.2 เพื่อวัดความแม่นยำ . นั่นเป็นบทสรุปที่สมเหตุสมผลหรือไม่?
Hendy

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

ด้วยกลยุทธ์การค้นหาที่ดีขึ้นนี้เป็น anoter หนึ่งที่เป็นประโยชน์: stats.stackexchange.com/questions/9357/... โดยเฉพาะอย่างยิ่ง"ฉันคิดว่าปัจจัย จำกัด ที่นี่คือจำนวนข้อมูลที่คุณมีส่วนใหญ่เราไม่ต้องการแยกข้อมูลออกเป็นพาร์ติชันคงที่เลย CV ดังนั้น" . ผมคิดว่านี้ได้รับในคำถามของฉัน (ซึ่งอาจจะเป็นเฉพาะกับธรรมชาติ จำกัด ของข้อมูลของฉัน (เฉพาะ 80 ข้อสังเกต) ดูเหมือนว่าการลงคะแนนเสียงไม่แยกในกรณีเหล่านี้หรือไม่
Hendy

คำตอบ:


7

ความคิดทั่วไปของฉัน:

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

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

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

ฉันตกหลุมค่ายสอง แต่คนแรกไม่ผิดเลย

หากคุณมีข้อมูลมากมายมันไม่สำคัญมากนัก (เว้นแต่คุณจะมีอัตราการจัดงานเล็ก ๆ )

สำหรับคุณ:

คุณมี DOE ประเภทของการออกแบบจะช่วยตอบคำถาม คุณพยายามที่จะสอดแทรกระหว่างจุดการออกแบบหรือทำนายจุดการออกแบบที่ยังไม่ได้ทดสอบ?

คุณมีหนึ่งซ้ำ ฉันรู้สึกเหมือนป่าที่สุ่มกำลังตอกตะปูด้วยค้อนเลื่อนและอาจส่งผลให้กระชับ ฉันจะลองใช้บางอย่างที่ราบรื่นกว่าเช่นเครือข่ายประสาท SVM หรือ (gasp)

แม็กซ์


ฉันเพิ่มการอัปเดตสำหรับคุณด้านบน ผมเคยมีเส้นโค้งสวยดี (ผมเดาว่าเป็นอัตนัย) method = "svmRadial"ด้วย ฉันหวังว่าจะประเมินคนอื่นรวมถึงmethod = neuralnetแม้ว่าในความพยายามที่ผ่านมาฉันพบเครือข่ายประสาทสัมผัสที่มีความอ่อนไหวมากกับ `set.seed () ในระยะสั้นเรากำลังพยายาม 1) เข้าใจความสัมพันธ์ระหว่างอินพุต / การตอบกลับที่หลากหลายและ 2) คาดเดาได้ดีที่สุดในพื้นที่การออกแบบที่มีแนวโน้มมากที่สุดเพื่อให้ได้คุณสมบัติที่ต้องการเพื่อให้เราสามารถเรียกใช้ DOE ที่เน้นใหม่ วิธีการไพศาล / ปืนลูกซองในแง่ของการป้อนข้อมูลระดับต่ำสุด / สูงสุดที่จะลอง
Hendy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.