ที่ผ่านมา เราทําให้คุณเข้าใจว่าโมเดลทํางานกับแถวของชุดข้อมูลโดยตรง แต่จริงๆ แล้วโมเดลจะส่งผ่านข้อมูลในลักษณะที่แตกต่างออกไป
ตัวอย่างเช่น สมมติว่าชุดข้อมูลมี 5 คอลัมน์ แต่มีเพียง 2 คอลัมน์ (b
และ d
) เท่านั้นที่เป็นฟีเจอร์ในโมเดล เมื่อประมวลผลตัวอย่างในแถวที่ 3 โมเดลจะดึงเนื้อหาของเซลล์ 2 เซลล์ที่ไฮไลต์ (3ข และ 3ง) ดังต่อไปนี้ไหม
อันที่จริงแล้ว โมเดลจะนำเข้าอาร์เรย์ของค่าทศนิยมที่เรียกว่าเวกเตอร์องค์ประกอบ คุณอาจคิดว่าเวกเตอร์ลักษณะเป็นค่าทศนิยมที่ประกอบไปด้วยตัวอย่าง 1 รายการ
อย่างไรก็ตาม เวกเตอร์องค์ประกอบไม่ค่อยใช้ค่าดิบของชุดข้อมูล แต่โดยทั่วไปแล้ว คุณต้องประมวลผลค่าของชุดข้อมูลให้เป็นรูปแบบที่โมเดลเรียนรู้ได้ดีขึ้น ดังนั้น เวกเตอร์ฟีเจอร์ที่สมจริงมากขึ้นจึงอาจมีลักษณะดังนี้
โมเดลจะคาดการณ์ได้ดีขึ้นไหมหากฝึกจากค่าจริงในชุดข้อมูลแทนค่าที่เปลี่ยนแปลง แต่น่าแปลกใจ คำตอบคือไม่
คุณต้องเลือกวิธีที่ดีที่สุดในการนำเสนอค่าชุดข้อมูลดิบเป็นค่าที่ฝึกได้ในส่วนเวกเตอร์ลักษณะ กระบวนการนี้เรียกว่าFeature Engineering และเป็นขั้นตอนสําคัญของแมชชีนเลิร์นนิง เทคนิคด้านวิศวกรรมด้านฟีเจอร์ที่พบบ่อยที่สุดมีดังนี้
- การปรับให้เป็นมาตรฐาน: การเปลี่ยนค่าตัวเลขให้เป็นช่วงมาตรฐาน
- การจัดกลุ่ม (หรือที่เรียกว่าการแบ่งกลุ่ม): การเปลี่ยนค่าตัวเลขเป็นกลุ่มของช่วง
หน่วยนี้ครอบคลุมการทำให้เป็นมาตรฐานและการแบ่งกลุ่ม หน่วยถัดไปซึ่งได้แก่ การทํางานกับข้อมูลเชิงหมวดหมู่จะกล่าวถึงการประมวลผลข้อมูลล่วงหน้ารูปแบบอื่นๆ เช่น การเปลี่ยนข้อมูลที่ไม่เชิงตัวเลข เช่น สตริง เป็นค่าทศนิยม
ค่าทุกค่าในเวกเตอร์ลักษณะต้องเป็นค่าทศนิยม อย่างไรก็ตาม ฟีเจอร์จำนวนมากเป็นสตริงหรือค่าอื่นๆ ที่ไม่ใช่ตัวเลข ด้วยเหตุนี้ การสร้างฟีเจอร์ส่วนใหญ่จึงแสดงค่าที่ไม่ใช่ตัวเลขเป็นค่าตัวเลข คุณจะเห็นตัวอย่างของกรณีนี้ในโมดูลต่อๆ ไป