ชุดข้อมูลคือคอลเล็กชันตัวอย่าง
ชุดข้อมูลจํานวนมากจัดเก็บข้อมูลไว้ในตาราง (ตารางกริด) เช่น เป็นค่าที่คั่นด้วยคอมมา (CSV) หรือจากสเปรดชีตหรือตารางฐานข้อมูลโดยตรง ตารางเป็นรูปแบบอินพุตที่ใช้งานง่ายสําหรับโมเดลแมชชีนเลิร์นนิง คุณอาจจินตนาการว่าแต่ละแถวของตารางเป็นตัวอย่าง และแต่ละคอลัมน์เป็นฟีเจอร์หรือป้ายกำกับที่เป็นไปได้ อย่างไรก็ตาม ชุดข้อมูลอาจมาจากรูปแบบอื่นๆ ด้วย ซึ่งรวมถึงไฟล์บันทึกและบัฟเฟอร์โปรโตคอล
ไม่ว่ารูปแบบจะเป็นอย่างไร โมเดล ML จะมีประสิทธิภาพดีเพียงใดก็ขึ้นอยู่กับข้อมูลที่ใช้ฝึก ส่วนนี้จะตรวจสอบลักษณะข้อมูลหลัก
ประเภทข้อมูล
ชุดข้อมูลอาจมีประเภทข้อมูลหลายประเภท ซึ่งรวมถึงแต่ไม่จํากัดเพียงประเภทข้อมูลต่อไปนี้
- ข้อมูลตัวเลข ซึ่งอยู่ในหน่วยแยกต่างหาก
- ข้อมูลเชิงหมวดหมู่ ซึ่งอยู่ในหน่วยแยกต่างหาก
- ภาษามนุษย์ ซึ่งรวมถึงคำและประโยคเดี่ยวๆ ไปจนถึงเอกสารข้อความทั้งฉบับ
- มัลติมีเดีย (เช่น รูปภาพ วิดีโอ และไฟล์เสียง)
- เอาต์พุตจากระบบ ML อื่นๆ
- เวกเตอร์การฝัง ซึ่งจะอธิบายในหน่วยถัดไป
ปริมาณข้อมูล
โดยทั่วไปแล้ว โมเดลควรฝึกด้วยตัวอย่างอย่างน้อย 1 ลำดับความสำคัญ (หรือ 2 ลำดับ) มากกว่าพารามิเตอร์ที่ฝึกได้ อย่างไรก็ตาม โดยทั่วไปแล้วโมเดลที่ดีจะฝึกด้วยตัวอย่างมากกว่านั้นอย่างมาก
โดยทั่วไปแล้ว โมเดลที่ฝึกจากชุดข้อมูลขนาดใหญ่ซึ่งมีฟีเจอร์ไม่มากนักจะมีประสิทธิภาพดีกว่าโมเดลที่ฝึกจากชุดข้อมูลขนาดเล็กซึ่งมีฟีเจอร์จํานวนมาก ที่ผ่านมา Google ประสบความสำเร็จอย่างมากในการฝึกโมเดลแบบง่ายในชุดข้อมูลขนาดใหญ่
ชุดข้อมูลที่แตกต่างกันสำหรับโปรแกรมแมชชีนเลิร์นนิงที่แตกต่างกันอาจต้องใช้จำนวนตัวอย่างที่แตกต่างกันอย่างมากเพื่อสร้างโมเดลที่มีประโยชน์ สําหรับปัญหาที่ค่อนข้างง่าย ตัวอย่าง 2-3 โหลก็อาจเพียงพอแล้ว สำหรับปัญหาอื่นๆ ตัวอย่าง 1 ล้านล้านรายการอาจไม่เพียงพอ
คุณอาจได้ผลลัพธ์ที่ดีจากชุดข้อมูลขนาดเล็กได้หากปรับโมเดลที่มีอยู่ซึ่งผ่านการฝึกด้วยข้อมูลจํานวนมากจากสคีมาเดียวกันแล้ว
คุณภาพและความน่าเชื่อถือของข้อมูล
ทุกคนต้องการคุณภาพสูงมากกว่าคุณภาพต่ำ แต่คุณภาพเป็นแนวคิดที่คลุมเครือมากจนสามารถนิยามได้หลายวิธี หลักสูตรนี้ให้คำจำกัดความของคุณภาพอย่างเป็นรูปธรรม ดังนี้
ชุดข้อมูลคุณภาพสูงจะช่วยให้โมเดลบรรลุเป้าหมาย ชุดข้อมูลคุณภาพต่ำจะทําให้โมเดลบรรลุเป้าหมายไม่ได้
ชุดข้อมูลคุณภาพสูงมักจะเชื่อถือได้เช่นกัน ความน่าเชื่อถือหมายถึงระดับที่คุณเชื่อถือข้อมูลได้ โมเดลที่ฝึกจากชุดข้อมูลที่เชื่อถือได้มีแนวโน้มที่จะให้การคาดการณ์ที่เป็นประโยชน์มากกว่าโมเดลที่ฝึกจากข้อมูลที่ไม่น่าเชื่อถือ
ในการวัดความเสถียร คุณต้องระบุสิ่งต่อไปนี้
- ข้อผิดพลาดเกี่ยวกับป้ายกำกับพบบ่อยแค่ไหน เช่น หากข้อมูลได้รับการติดป้ายกำกับโดยเจ้าหน้าที่ เจ้าหน้าที่ให้คะแนนผิดพลาดบ่อยเพียงใด
- ฟีเจอร์มีเสียงรบกวนหรือไม่ กล่าวคือ ค่าในฟีเจอร์ของคุณมีข้อผิดพลาดหรือไม่ โปรดเข้าใจว่าคุณจะกรองข้อมูลทั้งหมดออกจากชุดข้อมูลไม่ได้ สัญญาณรบกวนบางอย่างเป็นเรื่องปกติ เช่น การวัด GPS ของสถานที่ใดก็ตามจะผันผวนเล็กน้อยเสมอในแต่ละสัปดาห์
- ข้อมูลได้รับการกรองอย่างถูกต้องสำหรับปัญหาของคุณหรือไม่ ตัวอย่างเช่น ชุดข้อมูลควรรวมคำค้นหาจากบ็อตหรือไม่ หากคุณกำลังสร้างระบบตรวจจับสแปม คำตอบก็น่าจะเป็นใช่ แต่หากต้องการปรับปรุงผลการค้นหาสำหรับผู้ใช้ ก็ไม่ต้อง
สาเหตุที่พบบ่อยของข้อมูลที่ไม่น่าเชื่อถือในชุดข้อมูลมีดังนี้
- ค่าที่ละเว้น เช่น ผู้ใช้ลืมป้อนค่าอายุของบ้าน
- ตัวอย่างที่ซ้ำกัน เช่น เซิร์ฟเวอร์อัปโหลดรายการบันทึกเดียวกัน 2 ครั้งโดยไม่ได้ตั้งใจ
- ค่าฟีเจอร์ไม่ถูกต้อง เช่น มีคนพิมพ์ตัวเลขเกินมา หรือมีการวางเครื่องวัดอุณหภูมิไว้กลางแดด
- ป้ายกำกับไม่ถูกต้อง เช่น มีคนติดป้ายกำกับรูปภาพต้นโอ๊กเป็นต้นเมเปิล
- ส่วนข้อมูลที่ไม่ถูกต้อง ตัวอย่างเช่น ฟีเจอร์หนึ่งๆ ทำงานได้อย่างน่าเชื่อถือมาก ยกเว้นวันที่เครือข่ายขัดข้อง
เราขอแนะนำให้ใช้การทำงานอัตโนมัติเพื่อแจ้งว่าข้อมูลไม่น่าเชื่อถือ ตัวอย่างเช่น การทดสอบหน่วยที่กําหนดหรือใช้สคีมาข้อมูลที่ถูกต้องอย่างเป็นทางการภายนอกสามารถแจ้งค่าที่อยู่นอกช่วงที่กําหนดได้
ตัวอย่างที่สมบูรณ์กับตัวอย่างที่ไม่สมบูรณ์
ตัวอย่างแต่ละรายการควรสมบูรณ์ กล่าวคือ ตัวอย่างแต่ละรายการมีค่าสำหรับฟีเจอร์แต่ละรายการ
แต่ตัวอย่างในชีวิตจริงมักไม่สมบูรณ์ ซึ่งหมายความว่าไม่มีค่าฟีเจอร์อย่างน้อย 1 ค่า
อย่าฝึกโมเดลด้วยตัวอย่างที่ไม่สมบูรณ์ แต่ให้แก้ไขหรือนำตัวอย่างที่ไม่สมบูรณ์ออกโดยทำอย่างใดอย่างหนึ่งต่อไปนี้
- ลบตัวอย่างที่ไม่สมบูรณ์
- Imputeค่าที่ขาดหายไป กล่าวคือ แปลงตัวอย่างที่ไม่สมบูรณ์ให้เป็นตัวอย่างที่สมบูรณ์โดยให้ค่าประมาณที่มีเหตุผลสําหรับค่าที่ขาดหายไป
หากชุดข้อมูลมีตัวอย่างที่สมบูรณ์เพียงพอที่จะฝึกโมเดลที่มีประโยชน์ ให้พิจารณาลบตัวอย่างที่ไม่สมบูรณ์ ในทํานองเดียวกัน หากมีเพียงฟีเจอร์เดียวที่ไม่มีข้อมูลจํานวนมากและฟีเจอร์นั้นอาจช่วยโมเดลได้ไม่มากนัก ให้ลองลบฟีเจอร์นั้นออกจากอินพุตของโมเดล แล้วดูว่าคุณภาพลดลงมากน้อยเพียงใดเมื่อนำฟีเจอร์นั้นออก หากโมเดลทำงานได้ดีพอๆ กันหรือเกือบจะดีเท่าเดิมโดยไม่ต้องใช้ฟีเจอร์นี้ ก็ถือว่ายอดเยี่ยม ในทางกลับกัน หากคุณมีตัวอย่างที่สมบูรณ์ไม่เพียงพอที่จะฝึกโมเดลที่มีประโยชน์ คุณอาจต้องพิจารณาป้อนค่าที่ขาดหายไป
การลบตัวอย่างที่ไร้ประโยชน์หรือซ้ำซ้อนนั้นไม่มีปัญหา แต่การลบตัวอย่างที่สําคัญนั้นไม่เหมาะ ขออภัยที่การแยกแยะตัวอย่างที่มีประโยชน์และไม่มีประโยชน์นั้นเป็นเรื่องยาก หากตัดสินใจไม่ได้ว่าจะลบหรือทดแทนข้อมูล ให้ลองสร้างชุดข้อมูล 2 ชุด โดยชุดข้อมูลหนึ่งสร้างขึ้นโดยการลบตัวอย่างที่ไม่สมบูรณ์ และอีกชุดสร้างขึ้นโดยการทดแทนข้อมูล จากนั้นให้พิจารณาว่าชุดข้อมูลใดฝึกโมเดลได้ดีกว่า
อัลกอริทึมทั่วไปอย่างหนึ่งคือการใช้ค่ามัธยฐานหรือค่ามัธยฐานเป็นค่าที่ป้อน ดังนั้น เมื่อคุณแสดงองค์ประกอบที่เป็นตัวเลขด้วยคะแนน Z ค่าที่ป้อนมักจะเป็น 0 (เนื่องจากโดยทั่วไป 0 คือคะแนน Z เฉลี่ย)
แบบฝึกหัด: ทดสอบความเข้าใจ
ต่อไปนี้คือ 2 คอลัมน์ของชุดข้อมูลที่จัดเรียงตาม Timestamp
การประทับเวลา | อุณหภูมิ |
---|---|
8 มิถุนายน 2023 เวลา 09:00 น. | 12 |
8 มิถุนายน 2023 เวลา 10:00 น. | 18 |
8 มิถุนายน 2023 เวลา 11:00 น. | ขาดหายไป |
8 มิถุนายน 2023 เวลา 12:00 น. | 24 |
8 มิถุนายน 2023 เวลา 13:00 น. | 38 |
ค่าใดต่อไปนี้เป็นค่าที่เหมาะสมในการทดแทนอุณหภูมิที่ขาดหายไป