ในการศึกษา Machine Learning เราจะพบคำว่า One Hot Encoding อยู่เสมอ ๆ ใน ep นี้เราจะมาเรียนรู้กันว่า One Hot Encoding คืออะไร One Hot Encoding มีประโยชน์อย่างไร ช่วยแก้ปัญหาอะไร ทำไม Machine Learning ต้องใช้ One Hot Encoding

โมเดล Machine Learning เป็นซอฟต์แวร์ที่อยู่ในคอมพิวเตอร์ ไม่ว่าอย่างไรคอมพิวเตอร์ก็ต้องรับข้อมูลที่เป็นตัวเลขเท่านั้น ข้อมูลทุกอย่างไม่ว่าจะเป็น รูปภาพ, เสียง, วิดีโอ, ตัวหนังสือ, ตัวเลข, ข้อมูล Category, etc. จะต้องถูกแปลงเป็นตัวเลขในรูปแบบที่ต้องการ เรียกว่า Encoding

การ Encoding มีหลายวิธี มีข้อดี ข้อเสีย แตกต่างกันไป เราจะอธิบายต่อไป ใน ep นี้เราจะมาพูดถึง Encoding ที่เป็นที่นิยมมากที่สุดใน Machine Learning คือ One Hot Encoding
ความหมายของ One Hot Encoding
One Hot Encoding คือ การ Encode ข้อมูล Categorical Data ที่ปกติเก็บเป็น Nomimal Number, Ordinal Number ให้แตกเป็น Column ย่อย ๆ แบบ Binary 0/1 ตาม Value ของข้อมูล ดูตัวอย่างจะเห็นภาพชัดกว่า
ตัวอย่าง เช่น ตารางด้านล่าง ใน Column สีเสื้อ แดง 1 เขียว 2 น้ำเงิน 3
ชื่อ | จำนวนบุตร | สีเสื้อ |
คุณ A | 4 | 2 |
คุณ B | 3 | 1 |
คุณ C | 1 | 3 |
คุณ D | 2 | 1 |
เมื่อเราแปลงข้อมูล Column สีเสื้อ เป็น One Hot Encoding จะได้ดังนี้
ชื่อ | จำนวนบุตร | สีเสื้อ แดง | สีเสื้อ เขียว | สีเสื้อ น้ำเงิน |
คุณ A | 4 | 0 | 1 | 0 |
คุณ B | 3 | 1 | 0 | 0 |
คุณ C | 1 | 0 | 0 | 1 |
คุณ D | 2 | 1 | 0 | 0 |
ในวิชาสถิติ จะเรียก Column เหล่านี้ ว่า Dummy Variables
ข้อดีของ One Hot Encoding
- ข้อมูลที่ Encode แบบ One Hot จะช่วยให้โมเดล Machine Learning ทำงานง่ายขึ้น เปรียบได้กับ แทนที่โมเดลจะเรียนรู้ Pattern จากสัญญาณเดียว 3 ระดับ เปลี่ยนมาเรียนรู้จากสวิทช์ปิดเปิด 3 ตัวแทน
- ความหมายของข้อมูลแบบ Nominal จะตรงขึ้น เนื่องจาก สีแดง 1 ไม่ได้ใกล้เคียง สีเขียว 2 มากกว่าสีน้ำเงิน 3
- สามารถใช้ไป Dot Product กับ Matrix ที่ต้องการ เช่น Embedding ได้ความหมาย จะอธิบายต่อไป
ข้อเสียของ One Hot Encoding
- เปลืองเนื้อที่ เปลือง Memory ที่เก็บค่า 0 เป็นส่วนใหญ่ เรียกว่า Sparse Matrix
- ความหมายของลำดับข้อมูลแบบ Ordinal จะหายไป เนื่องจากทุก Category แตกต่างกันเท่ากันหมด
- ข้อมูลจะอยู่ได้แต่ 1 Category เท่านั้น ถ้ามากกว่า 1 จะเรียกว่า Multi-Hot Encoding จะอธิบายต่อไป
- ถ้าข้อมูลมี Value หลากหลายมาก เช่น มีสีเสื้อ 10,000 สี จะทำให้มีปัญหา
- ถ้าข้อมูลมีการเพิ่ม Categoryใหม่ ๆ เล็ก ๆ ยิบย่อยอยู่ตลอด จะทำให้มีปัญหา เช่น เพิ่มสีเสื้อใหม่
One Hot Encoding คือ การ Encode แบบหนึ่ง ยังวิธีการ Encoding ข้อมูลอีกอย่างหนึ่ง ที่นิยมใน Machine Learning คือ Embedding จะอธิบายต่อไป