คำว่ามิติข้อมูลเป็นคำพ้องความหมายของจำนวนองค์ประกอบใน เวกเตอร์ฟีเจอร์ ฟีเจอร์บางอย่างตามหมวดหมู่มีมิติข้อมูลต่ำ เช่น
ชื่อฟีเจอร์ | # ของหมวดหมู่ | หมวดหมู่ตัวอย่าง |
---|---|---|
snowed_today | 2 | True False |
skill_level | 3 | ระดับเริ่มต้น ผู้ปฏิบัติงาน ผู้เชี่ยวชาญ |
season | 4 | ฤดูหนาว ฤดูใบไม้ผลิ ฤดูร้อน ฤดูใบไม้ร่วง |
day_of_week | 7 | วันจันทร์ วันอังคาร วันพุธ |
ดาวเคราะห์ | 8 | ดาวพุธ ดาวศุกร์ โลก |
เมื่อฟีเจอร์เชิงหมวดหมู่มีจำนวนหมวดหมู่ที่เป็นไปได้น้อย คุณจะสามารถดำเนินการต่อไปนี้ เข้ารหัสเป็นคำศัพท์ ด้วยการเข้ารหัสคำศัพท์ โมเดลจะพิจารณา ค่าเชิงหมวดหมู่ที่เป็นไปได้เป็นฟีเจอร์แยกต่างหาก ในระหว่างการฝึกอบรม โมเดลจะเรียนรู้น้ำหนักที่แตกต่างกันไปสำหรับแต่ละหมวดหมู่
เช่น สมมติว่าคุณกำลังสร้างโมเดลเพื่อคาดการณ์ราคาของรถยนต์
บางส่วนในฟีเจอร์เชิงหมวดหมู่ที่ชื่อ car_color
บางทีรถสีแดงอาจมีค่ามากกว่ารถสีเขียว
เนื่องจากผู้ผลิตนำเสนอสีภายนอกในจำนวนจำกัด car_color
คุณลักษณะเชิงหมวดหมู่ที่มีมิติข้อมูลต่ำ
ภาพประกอบต่อไปนี้แนะนำคำศัพท์ (ค่าที่เป็นไปได้) สำหรับ
car_color
:
แบบฝึกหัด: ตรวจสอบสัญชาติญาณของคุณ
"Red"
ไม่ใช่ตัวเลขทศนิยม คุณ
ต้องแปลงสตริง เช่น "Red"
เป็นตัวเลขทศนิยม
หมายเลขดัชนี
โมเดลแมชชีนเลิร์นนิงจะจัดการได้เฉพาะตัวเลขทศนิยม ดังนั้น คุณจะต้องแปลงแต่ละสตริงให้เป็นหมายเลขดัชนีที่ไม่ซ้ำกัน ดังตัวอย่างต่อไปนี้ ภาพประกอบต่อไปนี้
ตรวจสอบสัญชาติญาณของคุณ
"Black"
(หมายเลขดัชนี 5) ให้มีความหมายมากขึ้น 5 เท่า
เป็นโมเดลมากกว่า "Orange"
(ดัชนีหมายเลข 1)
"Black"
(หมายเลขดัชนี 5) เป็น
มีความหมายต่อโมเดลมากกว่า "Orange"
ถึง 5 เท่า
(หมายเลขดัชนี 1)
การเข้ารหัสแบบ One-hot
ขั้นตอนถัดไปในการสร้างคำศัพท์คือการแปลงหมายเลขดัชนีแต่ละตัวเป็น การเข้ารหัสแบบฮอตเดียว ในการเข้ารหัสแบบ One-hot
- แต่ละหมวดหมู่จะแสดงด้วยเวกเตอร์ (อาร์เรย์) ขององค์ประกอบ N โดยที่ N
คือจำนวนหมวดหมู่ เช่น ถ้า
car_color
มี 8 รายการที่เป็นไปได้ เวกเตอร์ร้อนๆ ที่แสดงแทนจะมี 8 องค์ประกอบ - องค์ประกอบรายการใดรายการหนึ่งในเวกเตอร์เดียวมีค่า 1.0 องค์ประกอบที่เหลือทั้งหมดจะมีค่า 0.0
ตัวอย่างเช่น ตารางต่อไปนี้แสดงการเข้ารหัสแบบหนึ่งแบบฮอตสำหรับแต่ละ
car_color
:
ฟีเจอร์ | แดง | Orange | น้ำเงิน | เหลือง | เขียว | ดำ | ม่วง | สีน้ำตาล |
---|---|---|---|---|---|---|---|---|
"แดง" | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
"ส้ม" | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
"น้ำเงิน" | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
"เหลือง" | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
"เขียว" | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
"ดำ" | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
"ม่วง" | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
"น้ำตาล" | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
ค่านี้เป็นเวกเตอร์แบบจุดเดียว ซึ่งไม่ใช่สตริงหรือหมายเลขดัชนีที่จะส่งผ่าน ไปยังเวกเตอร์ของจุดสนใจ โมเดลจะเรียนรู้น้ำหนักแยกกันสำหรับองค์ประกอบของ เวกเตอร์ของจุดสนใจ
ภาพประกอบต่อไปนี้แสดงถึงการเปลี่ยนรูปแบบต่างๆ ใน การนำเสนอคำศัพท์:
การนำเสนอข้อมูลน้อย
คุณลักษณะที่มีค่าเป็น 0 (หรือว่างเปล่า) อย่างเห็นได้ชัดจะเรียกว่า
ฟีเจอร์บางส่วน หลายหน้า
ฟีเจอร์ตามหมวดหมู่ เช่น car_color
มักเป็นฟีเจอร์ที่ไม่ครอบคลุม
การนำเสนอแบบคร่าวๆ
หมายถึงการจัดเก็บตำแหน่งของ 1.0
ในเวกเตอร์บางส่วน ตัวอย่างเช่น เวกเตอร์หนึ่งฮอตสำหรับ "Blue"
คือ
[0, 0, 1, 0, 0, 0, 0, 0]
เนื่องจาก 1
อยู่ในตำแหน่ง 2 (เมื่อเริ่มนับที่ 0)
การนำเสนอแบบคร่าวๆ สำหรับเวกเตอร์ร้อนเดียวที่อยู่ก่อนหน้าคือ
2
โปรดสังเกตว่าการนำเสนอแบบคร่าวๆ จะใช้หน่วยความจำน้อยกว่า เวกเตอร์ร้อนเดียวที่มี 8 องค์ประกอบ และที่สำคัญ โมเดลจะต้องฝึก เวกเตอร์ร้อนเดียว ไม่ใช่รูปแบบที่กระจัดกระจาย
ค่าผิดปกติในข้อมูลเชิงหมวดหมู่
เช่นเดียวกับข้อมูลตัวเลข ข้อมูลเชิงหมวดหมู่ก็มีค่าที่ผิดปกติด้วย สมมติว่า
car_color
ไม่ได้มีแค่สียอดนิยมเท่านั้น แต่ยังมีบางสีที่ไม่ค่อยใช้กัน
สีที่มีค่าผิดปกติ เช่น "Mauve"
หรือ "Avocado"
แทนที่จะแยกสีค่าผิดปกติแต่ละสีเหล่านี้ออกเป็นหมวดหมู่แยกกัน คุณสามารถ
สามารถรวมพวกเขาให้เป็น "เนื้อหาที่ครอบคลุม" รายการเดียว หมวดหมู่ไม่อยู่ในคลังคำศัพท์
(OOV) หรืออีกนัยหนึ่งคือ สีที่มีค่าผิดปกติทั้งหมดจะถูกรวมไว้ในกลุ่มเดียว
ที่เก็บข้อมูล Outlier ระบบจะเรียนรู้น้ำหนักค่าเดียวสำหรับที่เก็บข้อมูล Outlier ดังกล่าว
การเข้ารหัสฟีเจอร์เชิงหมวดหมู่ที่มีมิติสูง
บางฟีเจอร์เชิงหมวดหมู่มีมิติข้อมูลจำนวนมาก เช่น เหล่านั้นในตารางต่อไปนี้
ชื่อฟีเจอร์ | # ของหมวดหมู่ | หมวดหมู่ตัวอย่าง |
---|---|---|
words_in_english | ประมาณ 500,000 คน | "มีความสุข", "เดิน" |
US_postal_codes | ประมาณ 42,000 คน | "02114", "90301" |
last_names_in_Germany | ประมาณ 850,000 คน | "ชมิดช์" "ชไนเดอร์" |
เมื่อมีหมวดหมู่สูง การเข้ารหัสแบบ Hot มักเป็นตัวเลือกที่ไม่เหมาะสม การฝัง ซึ่งจะมีรายละเอียดแยกต่างหาก โมดูลการฝังมักจะ เป็นทางเลือกที่ดีกว่ามาก การฝังช่วยลดจำนวนของ ซึ่งมีประโยชน์ต่อการสร้างรูปแบบที่สำคัญ 2 ประการดังนี้
- โดยปกติโมเดลจะฝึกได้เร็วขึ้น
- โดยทั่วไป โมเดลที่สร้างอนุมานการคาดการณ์ได้รวดเร็วยิ่งขึ้น กล่าวคือ โมเดลมีเวลาในการตอบสนองต่ำกว่า
การแฮช (เรียกอีกอย่างว่าการแฮช เคล็ดลับ) เป็นวิธีที่ไม่ค่อยนิยมใช้ในการลดจำนวนมิติข้อมูล