การใส่ร้ายก่อนหรือหลังแยกออกเป็นรถไฟและทดสอบ?


18

ฉันมีชุดข้อมูลที่มี N ~ 5,000 และประมาณ 1/2 หายไปกับตัวแปรสำคัญอย่างน้อยหนึ่งตัว วิธีการวิเคราะห์หลักจะเป็นอันตรายตามสัดส่วนของคอคส์

ฉันวางแผนที่จะใช้การใส่หลายแบบ ฉันจะแยกเป็นชุดรถไฟและชุดทดสอบ

ฉันควรแยกข้อมูลแล้วใส่ข้อมูลแยกต่างหากหรือใส่ร้ายแล้วแยก?

ถ้ามันเป็นเรื่องสำคัญผมจะใช้ในPROC MISAS


2
ค่าที่หายไป 50% สำหรับตัวแปรสำคัญหรือไม่ ฮึ. แทนที่จะเป็นข้ออ้างทำไมไม่สร้างหมวดหมู่ 'ที่หายไป' สำหรับตัวแปร?
RobertF

ไม่มีตัวแปรใดขาดหายไป 50% แต่ขาดหายไปอย่างน้อย 50% นอกจากนี้พวกมันยังต่อเนื่องดังนั้น "หายไป" จะทำให้เรื่องยุ่งเหยิง
Peter Flom - Reinstate Monica

อา. ฉันรู้สึกประหม่าโดยใช้การใส่ความ ฉันสงสัยเกี่ยวกับข้อดีของการมีตัวแปรต่อเนื่องที่มีค่า 50% ซึ่งเทียบกับการแปลงเงื่อนไข แปรเปลี่ยนเป็นหมวดหมู่ที่มีหมวดหมู่ 'ที่หายไป' บวกกับถังขยะเพียงพอที่จะจับพฤติกรรมที่มีค่าไม่พลาดหรือไม่
RobertF

ฉันไม่ชอบ binning ตัวแปรต่อเนื่อง
Peter Flom - Reinstate Monica

คำตอบ:


20

คุณควรแยกก่อนการประมวลผลล่วงหน้าหรือการใส่ข้อมูล

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

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

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


เมื่อคุณพูดว่า "คุณทำแบบเดียวกันทั้งสองชุด" คุณหมายถึง: "ใช้วิธีการเดียวกันเพื่อใส่ข้อมูลที่ขาดหายไปในชุดทดสอบ แต่ไม่ใช่ข้อมูลเดียวกัน"
timwiz

@colorlace ใช้การเปรียบเทียบในอดีต / อนาคต คุณใช้ชุดการฝึกอบรมในอดีตและใส่ค่าบางอย่าง ตอนนี้คุณจะได้รับชุดทดสอบในอนาคตและต้องการกำหนดค่าบางอย่าง คุณน่าจะใช้วิธีการเดียวกันกับที่เคยนำไปใช้กับข้อมูลการทดสอบ (แม้ว่าคุณจะมีอิสระในการรวมสิ่งที่คุณเรียนรู้จากข้อมูลการฝึกอบรม)
Henry

หากคุณ "มีอิสระที่จะรวมสิ่งที่คุณเรียนรู้จากข้อมูลการฝึกอบรม" แล้วความแตกต่างจากการไม่แยกก่อนที่จะใส่เข้าไป
timwiz

1
@ colorlace: จุดสุดท้ายนั้นเป็นสิ่งที่ฉันกำลังพูดอย่างแม่นยำ: ไม่มีอะไรที่คุณจะทำกับข้อมูลการฝึกอบรมที่ควรได้รับการแจ้งจากข้อมูลการทดสอบ (การเปรียบเทียบคืออนาคตไม่ควรส่งผลกระทบต่ออดีต) แต่สิ่งที่คุณทำกับข้อมูลการทดสอบ สามารถทราบได้จากข้อมูลการฝึกอบรม (การเปรียบเทียบคือคุณสามารถใช้อดีตเพื่อช่วยทำนายอนาคต)
Henry

1
@colorlace - หากคุณใช้ข้อมูลทดสอบเพื่อส่งผลกระทบต่อข้อมูลการฝึกอบรมข้อมูลการทดสอบจะถูกใช้ในการสร้างแบบจำลองของคุณดังนั้นมันจะกลายเป็นข้อมูลการทดสอบและจะไม่ให้แบบทดสอบที่เป็นธรรมของคุณ คุณมีความเสี่ยงที่จะได้รับข้อมูลมากเกินไปและเป็นการกีดกันสิ่งนี้ที่ทำให้คุณแยกข้อมูลการทดสอบออกมาตั้งแต่แรก
เฮนรี่

1

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

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


0

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

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

ฉันคิดว่าชุดอักขระคาเร็ตใน r มีประโยชน์มากในการตั้งค่านั้น ฉันพบว่าโพสต์นั้นมีประโยชน์อย่างยิ่งhttps://topepo.github.io/caret/model-training-and-tuning.html

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