อะไรคือวิธีที่เหมาะสมกว่าในการสร้างชุดการค้างเอาไว้: เพื่อลบบางวิชาหรือเพื่อลบการสังเกตออกจากแต่ละวิชา


11

ฉันมีชุดข้อมูลที่มี 26 คุณสมบัติและ 31,000 แถว มันเป็นชุดข้อมูลของ 38 วิชา มันเป็นระบบไบโอเมตริกซ์ ดังนั้นฉันต้องการที่จะสามารถระบุวิชา

เพื่อให้มีชุดทดสอบฉันรู้ว่าฉันต้องลบค่าบางอย่าง

แล้วจะทำอย่างไรดีและทำไม

  1. (a) รักษา 30 ชุดของชุดฝึกอบรมและลบ 8 ชุดเป็นชุดทดสอบ

  2. (b) รักษาอาสาสมัคร 38 คน แต่ลบบางแถวออกจากกัน ในตอนท้ายฉันจะจบด้วยชุดฝึกอบรม: 24800 แถวจาก 38 วิชาและชุดทดสอบ: 6200 แถวจาก 38 วิชา


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

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

เมื่อคุณฝึกระบบแล้วจะนำไปใช้งานอย่างไร เป็นเป้าหมายที่จะใช้กับคนที่ไม่ได้อยู่ในชุดฝึกอบรมหรือไม่? ข้อมูลใหม่จะมาจาก 38 วิชาเดียวกันหรือไม่ ฉันพยายามที่จะเข้าใจว่าควรใช้ระบบอย่างไรและไม่ว่าคุณจะอยู่ในกรณี (1) หรือกรณี (2) ของคำตอบของ @ AmiTavory
Matthew Gunn

@ amoeba ฉันไม่ได้มีประสบการณ์มาก :( ฉันถามคำถามเพราะแนะนำให้แบ่งข้อมูล (การฝึกอบรมการตรวจสอบและการทดสอบ) ดังนั้นจึงเป็นการลบบางวิชาหรือการสังเกตของแต่ละคนหรือใช้ชุดข้อมูลที่มีอยู่ทางออนไลน์ดังนั้น 1) ฉันต้องการที่จะสามารถระบุวิชา คุณลักษณะนี้เป็นของใคร 2) ฉันใช้ EEG (เช่นอนุกรมเวลา) 3) ฉันใช้ Stratified-fold แต่เป็นเพราะฉันมีความแม่นยำสูงกว่าด้วย kfold ฉันรู้แค่ k-fold, แบ่งเป็นชั้น ๆ และออกไปหนึ่งออก อย่างที่ฉันคิดเสมอว่ามันคือการชดเชยความไม่สมดุลของข้อมูล แต่ฉันเปิดรับข้อเสนอแนะ
Aizzaac

@ MatthunGunn ฉันคิดว่ามันคงเป็นไปไม่ได้ที่จะใช้กับคนที่ไม่ได้อยู่ในชุดข้อมูล นั่นจะยากมาก แต่ก็น่าสนใจมากถ้าทำได้ ดังนั้นฉันจะพูดกรณีที่ 1
Aizzaac

คำตอบ:


9

ฉันคิดว่าคำตอบของ Matthew Gunn นั้นถูกต้อง แต่สำหรับฉันแล้ว CV ที่ "ฉลาด" สามารถครอบคลุมแนวคิดที่แตกต่างกันสองประการ:

  1. บันทึกจะถูกแบ่งเป็นส่วนย่อยโดยไม่คำนึงถึงเรื่องหรือเวลา

  2. บันทึกจะถูกแบ่งพาร์ติชั่นลงในโฟลด์ตามเวลาโดยไม่ต้องใช้โฟลด์สำหรับการฝึกอบรมที่มีข้อมูลจากหลังการเริ่มต้นของโฟลด์การทดสอบ

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

บางทีความสัมพันธ์ของอนุกรมเวลาอัตโนมัติอาจทำให้ตัวเลือก # 2 ล้มเหลว บางทีองค์ประกอบเวลาของตัวแบบอาจไม่สำคัญและการสังเกต "ในอดีต" และ "ในอนาคต" ก็น่าจะเหมือนกัน ในกรณีเหล่านี้ # 1 หรือ # 2 ไม่ใช่วิธีที่จะไป

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

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


1
+1 นั่นเป็นจุดสำคัญมากที่ถ้ามีโครงสร้างอนุกรมเวลาคุณไม่ควรใช้อนาคตเพื่อทำนายอดีต! นี่คือความผิดพลาดที่พบบ่อยและเป็นอันตรายในด้านการเงินโดยใช้ข้อมูลที่ไม่สามารถใช้งานได้ตลอดเวลา (เพราะมันไม่เป็นที่รู้จักจนถึงอนาคต) ที่จะคาดการณ์ผลตอบแทนเป็นค่าเริ่มต้น ฯลฯ ... ในเวลาทีด้วยโครงการที่ซับซ้อนและข้อมูลจำนวนมากมันเป็นเรื่องง่ายมากที่จะทำผิดพลาดและให้อัลกอริทึมการฝึกอบรมของคุณมีประสิทธิภาพสูงสุดในอนาคตบรรลุผลที่เป็นไปไม่ได้ในความเป็นจริง ttt
Matthew Gunn

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

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

16

สำคัญแตกต่างคือไม่ว่าคุณต้องการที่จะ:

  1. [กรณีที่พบบ่อยที่สุด]: สร้างการประมาณประสิทธิภาพของวิชาใหม่ (ดึงมาจากประชากรเดียวกับข้อมูลของคุณ)
  2. สร้างการประมาณประสิทธิภาพของการสังเกตใหม่จากวัตถุเดียวกันในตัวอย่างของคุณ

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

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

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

ทำไมการตรวจสอบข้ามเรื่องที่ชาญฉลาดมากกว่าการบันทึกที่ชาญฉลาด?

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

ตัวอย่างเช่นบทความล่าสุดนี้เรียกการตรวจสอบข้ามการบันทึกอย่างชาญฉลาด `` การเรียนรู้ของเครื่องวูดู '

จะทำอย่างไรกับวิชาไม่กี่แม้ว่า ...

บางทีผู้แสดงความคิดเห็นบางคนอาจเคยมีประสบการณ์ในการตรวจสอบไขว้มากกว่าที่ฉันจะพูดสอด แต่สำหรับฉันแล้วดูเหมือนว่าผู้สมัครที่เป็นไปได้สำหรับ (หรือที่รู้จักกันว่าk=n

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

หากวิชาทั้งหมดแตกต่างกันมากคุณอาจมีค่าใกล้เคียงกับและอาจต้องการเพิ่มวิชาอิสระจำนวนมากในชุดฝึกอบรมn=38


ฉันรู้ว่าชุดข้อมูลจะต้องแบ่งออกเป็น 3: การฝึกอบรมการตรวจสอบและการทดสอบ ในการตรวจสอบข้าม "การฝึกอบรมและการตรวจสอบ" จะใช้ ชุดที่ค้างไว้คือ "การทดสอบ" ดังนั้นคุณแนะนำให้: สำหรับการฝึกอบรมและการตรวจสอบใช้ 37 วิชาและทดสอบใน 1 วิชา? และฉันสามารถทำการตรวจสอบข้ามชนิดใดก็ได้: k-fold, แบ่งชั้น, ฯลฯ ?
Aizzaac

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

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

3

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

  1. เป็นไปได้ว่าในอนาคตแต่ละวิชาจะเข้ามาในห้องทดลองการนอนหลับและให้คุณภาพการนอนหลับไม่กี่คืน ต่อไปนี้ที่คุณจะต้องคาดการณ์ในอนาคตคุณภาพการนอนหลับคืนสำหรับวิชาเหล่านี้ ในกรณีนี้คุณจะใช้ตัวเลือกของคุณ b) ในsklearnคุณสามารถใช้sklearn.model_selection.StratifiedShuffleSplit

  2. เป็นไปได้ว่าในอนาคตอาสาสมัครบางคนจะเข้ามาในห้องทดลองการนอนหลับและให้คุณภาพการนอนหลับไม่กี่คืน ต่อไปนี้ที่คุณจะ ned ในการทำนายอนาคตคุณภาพการนอนหลับคืนสำหรับวิชาอื่นในกรณีนี้คุณจะใช้ตัวเลือกของคุณ ในsklearnคุณสามารถใช้sklearn.cross_validation.LeavePLabelOut


1
แม้ว่าในความเป็นจริงคำถามนั้นเกือบจะแน่นอนกรณีของคุณ (2) และตัวเลือก (a) เช่นการตรวจสอบข้ามเรื่องที่ชาญฉลาดเป็นสิ่งที่เหมาะสม
Matthew Gunn

1
@MatthewGunn คุณพูดถูก กรณีที่ 2 เป็นเรื่องธรรมดามาก ฉันต้องบอกว่าฉันได้พบกับกรณีในชีวิตจริงที่ 1 คือตัวเลือกที่ถูก
Ami Tavory

1
น่าสนใจ ฉันเห็นว่า (1) ถูกต้องสำหรับการคาดการณ์ข้อสังเกตใหม่สำหรับฐานลูกค้าขนาดใหญ่ที่จัดตั้งขึ้น จุดที่ถ่าย บางทีฉันอาจตอบสนองอย่างรุนแรงเพราะฉันเพิ่งอ่านบทความนี้ในทางที่ผิดอย่างกว้างขวางของการตรวจสอบข้ามที่ชาญฉลาดบันทึกในพื้นที่ทางการแพทย์
Matthew Gunn

คุณคิดอย่างไรเกี่ยวกับเรื่องนี้: ฉันใช้ 38 วิชากับการตรวจสอบความถูกต้องแบบไขว้ทุกประเภท และเพื่อทดสอบว่าโมเดลของฉันสามารถใช้กับหัวเรื่องที่แตกต่างกันได้หรือไม่ ฉันใช้ชุดข้อมูลออนไลน์หรือไม่ ฉันคิดว่าความคิดของชุดที่ถูกจัดไว้คือมีชุดข้อมูล "ใหม่" เพื่อทดสอบโมเดล
Aizzaac

3

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

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

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

  • อย่าได้ทำลาหนึ่งในเรื่องออก มันไม่อนุญาตให้วัดความมั่นคงของแบบจำลองหรือลด นอกจากนี้ยังมีสถานการณ์ที่มีอคติในแง่ร้ายขนาดใหญ่เนื่องจากมีขนาดตัวอย่างเล็ก ๆ (เมื่อเทียบกับอคติน้อยในแง่ร้ายที่คาดหวัง)

  • หากคุณใช้ตัวเลขการจำแนกประเภททั่วไปของบุญเช่นความถูกต้องความไวความจำเพาะ ฯลฯ และงานคือการจัดหมวดหมู่อย่างถูกต้อง: ระวังว่าปัญหาที่สำคัญคือการวัดประสิทธิภาพเนื่องจากความไม่แน่นอนของผลการทดสอบขึ้นอยู่กับจำนวนที่แน่นอน ของกรณีทดสอบ ยกตัวอย่างเช่นการสังเกตการคาดการณ์ที่ถูกต้อง 17 ครั้งจาก 17 วิชาที่เป็นบวกอย่างแท้จริงนั้นสอดคล้องกับช่วงความเชื่อมั่น 95% สำหรับความอ่อนไหวตั้งแต่ประมาณ 80% ถึง 100%
    กล่าวอีกนัยหนึ่งคุณจะไม่สามารถเพิ่มประสิทธิภาพโมเดลที่ขับเคลื่อนด้วยข้อมูลตามนั้น

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

  • การคำนวณเดียวกันสำหรับช่วงความเชื่อมั่นทวินามสำหรับวิชา 5/3 การทดสอบ / การเพิ่มประสิทธิภาพ / การตรวจสอบความถูกต้องให้ผลตอบแทน 95% ci สำหรับการแก้ไขที่ถูกต้องทั้งหมดจนถึง 50% (30%) ดังนั้นจากผลการทดสอบที่สมบูรณ์แบบ 50 เดา!

เอกสารบางอย่างที่เราเขียนเกี่ยวกับวิชาเหล่านี้:

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