การซ้อนโมเดล Super Learner Algorithm

Aug 29 2020

ฉันเพิ่งเริ่มศึกษาวงดนตรีใน ML โดยเฉพาะ Super Learner Algorithm พูดตามตรงแม้ว่าฉันได้อ่านบทความที่เกี่ยวข้องกับหัวข้อนี้หลายบทความ แต่ฉันก็ค่อนข้างสับสนเล็กน้อย ฉันต้องการไปทีละขั้นตอนและทำทุกอย่างด้วยตนเองเพื่อที่ฉันจะได้เข้าใจกระบวนการอย่างแท้จริง

โดยปกติอัลกอริทึมจะอธิบายเป็นลำดับของขั้นตอนต่อไปนี้:

  1. ฝึกอัลกอริทึมฐาน L แต่ละชุดบนชุดฝึก
  2. ดำเนินการตรวจสอบความถูกต้องข้ามแบบ k-fold ในผู้เรียนแต่ละคนและรวบรวมค่าทำนายที่ผ่านการตรวจสอบแล้วจากอัลกอริทึม L แต่ละตัว
  3. ค่าทำนายที่ผ่านการตรวจสอบข้าม N จากอัลกอริทึม L แต่ละอัลกอริทึมสามารถรวมกันเพื่อสร้างเมทริกซ์ N x L ใหม่ได้ เมทริกซ์นี้พร้อมกับเวกเตอร์การตอบสนองดั้งเดิมเรียกว่าข้อมูล "ระดับหนึ่ง" (N = จำนวนแถวในชุดฝึก)
  4. ฝึกอัลกอริทึม metalearning กับข้อมูลระดับหนึ่ง
  5. "แบบจำลองทั้งมวล" ประกอบด้วยแบบจำลองการเรียนรู้พื้นฐาน L และแบบจำลองการเรียนรู้ซึ่งสามารถใช้เพื่อสร้างการคาดการณ์ในชุดทดสอบได้

ฉันมีคำถามหลายข้อ:

  1. ทำไมขั้นตอนแรกและขั้นที่สองจึงแยกออกจากกัน? เพื่อความง่ายสมมติว่าฉันไม่จำเป็นต้องปรับแต่งพารามิเตอร์ใด ๆ หมายความว่าฉันต้องฝึกโมเดลxgbTreeเช่นใช้ k-fold CV หรือไม่? เช่น:
tc_XGB <- trainControl(method = "cv", number = 5, savePred = TRUE)

fit_XGB <- train(x = input_x, y = input_y, method = "xgbTree",
           trControl = train_control_final, tuneGrid = Grid_final)

หมายเหตุ : input_xและinput_yมาจากชุดฝึก

  1. ขั้นตอนต่อไปคือการรวบรวมค่าทำนายที่ตรวจสอบความถูกต้องข้ามกัน ฉันควรใช้fit_XGB $predและแยกการคาดการณ์ที่ผ่านการตรวจสอบความถูกต้องทั้งหมดและทำการกระทำนี้ซ้ำ L ครั้ง (L - อัลกอริทึมจำนวนหนึ่ง) หรือไม่

ฉันจะบอกว่าขั้นตอนต่อไปทั้งหมดมีความชัดเจนสำหรับฉันไม่มากก็น้อย ฉันมีข้อสงสัยบางอย่าง แต่ฉันไม่สามารถสอดนิ้วเข้าไปในสิ่งที่ผิดปกติกับแนวทางของฉัน

คำตอบ

1 BenReiniger Aug 31 2020 at 02:01

คำถามที่ 1

ฉันคิดว่าความสับสนเกิดจากการปฏิบัติทั่วไปที่ทำให้การแยกไม่ชัดเจน: "ฝึกโมเดล ... โดยใช้ k-fold CV" ไม่ใช่เรื่องจริง ก$k$-fold cross-validation ไม่ได้สร้างแบบจำลองที่ผ่านการฝึกอบรม อย่างไรก็ตามในแพ็คเกจการปรับแต่งไฮเปอร์พารามิเตอร์ส่วนใหญ่caretโมเดลขั้นสุดท้ายจะได้รับการฝึกฝนโดยอัตโนมัติในชุดการฝึกอบรมทั้งหมดหลังจากการตรวจสอบความถูกต้องข้ามเลือกชุดไฮเปอร์พารามิเตอร์ที่ดีที่สุด จากเอกสาร :

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

ดังนั้นcaretกำลังทำทั้งขั้นตอนที่ 1 และ 2 สำหรับคุณ

คำถาม 2

ใช่ว่าจะได้ผล ดูเช่นการตรวจสอบความถูกต้องข้ามในรถไฟ (คาเร็ต) ทำงานอย่างไร? .

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