เข้ารหัสคอลัมน์เชิงหมวดหมู่
พื้นฐานการเข้ารหัสแบบ one-hot และป้ายกำกับ
เข้ารหัสคอลัมน์เชิงหมวดหมู่ เป็นบทเรียน Data Science Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Data Science Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Data Science Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดการเข้ารหัสจึงสำคัญ
แบบจำลองส่วนใหญ่เข้าใจเฉพาะตัวเลข แต่ข้อมูลของคุณเต็มไปด้วยคำอย่างสีแดงหรือสีน้ำเงิน การเข้ารหัสจะเปลี่ยนป้ายกำกับเหล่านั้นเป็นตัวเลขที่แบบจำลองเรียนรู้ได้ 🔢
แบบไม่มีลำดับกับแบบมีลำดับ
หมวดหมู่บางอย่างมีลำดับ เช่น เล็ก กลาง ใหญ่ ส่วนบางอย่าง เช่น ชื่อเมือง ไม่มีลำดับ ลำดับนี้เป็นตัวกำหนดว่าการเข้ารหัสแบบใดจะสะท้อนข้อมูลอย่างถูกต้อง
การเข้ารหัสป้ายกำกับ
การเข้ารหัสป้ายกำกับกำหนดจำนวนเต็มให้แต่ละหมวดหมู่: สีแดงกลายเป็น 0 สีน้ำเงินกลายเป็น 1 วิธีนี้ง่าย แต่สร้างลำดับที่อาจไม่มีอยู่จริงขึ้นมา
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
codes = le.fit_transform(df['color'])กับดักลำดับปลอม
หากสีน้ำเงินเป็น 1 และสีเขียวเป็น 2 แบบจำลองอาจคิดว่าสีเขียวมากกว่าสีน้ำเงิน สำหรับข้อมูลแบบไม่มีลำดับ การจัดอันดับที่ผิดนี้อาจทำให้ความแม่นยำลดลง
การเข้ารหัสแบบวันฮอต
การเข้ารหัสแบบ one-hot จะสร้างคอลัมน์ใหม่หนึ่งคอลัมน์ต่อหนึ่งหมวดหมู่ โดยกำหนดค่าเป็น 1 หรือ 0 ไม่มีลำดับปลอม มีเพียงตัวบ่งชี้ว่าใช่หรือไม่ใช่อย่างชัดเจน
get_dummies ใน pandas
วิธีทำ one-hot ที่เร็วที่สุดใน pandas คือ get_dummies เพียงส่งคอลัมน์ให้ฟังก์ชันนี้ ระบบจะแยกทุกหมวดหมู่ออกเป็นคอลัมน์ค่า 0/1 ของตัวเอง
dummies = pd.get_dummies(df['color'])หลีกเลี่ยงกับดักตัวแปรจำลอง
คอลัมน์เหล่านี้มีความสัมพันธ์กันอย่างสมบูรณ์ จึงควรลบหนึ่งคอลัมน์ด้วย drop_first วิธีนี้ช่วยให้แบบจำลองเชิงเสถียรภาพทำงานได้ดีและหลีกเลี่ยงข้อมูลซ้ำซ้อน
pd.get_dummies(df['color'], drop_first=True)OneHotEncoder สำหรับกระบวนการทำงาน
สำหรับแบบจำลอง ควรเลือกใช้ OneHotEncoder ของ scikit-learn เพราะระบบจะจดจำหมวดหมู่ที่เรียนรู้ไว้ ทำให้ข้อมูลฝึกและข้อมูลทดสอบตรงกันอย่างสมบูรณ์
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')กำหนดการเข้ารหัสลำดับอย่างตั้งใจ
เมื่อลำดับมีความหมายจริง ให้กำหนดการแปลงด้วยตนเอง เพื่อให้ค่าจากน้อยไปมากกลายเป็น 1 ถึง 3 การแปลงแบบ อันดับ ช่วยรักษาความหมายเดิมไว้
order = {'small': 1, 'medium': 2, 'large': 3}
df['size_num'] = df['size'].map(order)ระวังจำนวนหมวดหมู่ที่สูง
การทำ one-hot กับคอลัมน์ที่มีค่าหลายพันค่าจะขยายเป็นคอลัมน์หลายพันคอลัมน์ สำหรับคอลัมน์ที่มี จำนวนหมวดหมู่ สูง ควรรวมค่าที่พบได้น้อยก่อน
จัดการหมวดหมู่ที่ไม่เคยพบ
ข้อมูลใหม่อาจมีป้ายกำกับที่ตัวเข้ารหัสไม่เคยเห็นมาก่อน ควรวางแผนรองรับกรณีนี้ เพื่อไม่ให้หมวดหมู่ที่ ไม่เคยพบ ทำให้ขั้นตอนการทำนายหยุดทำงาน
ตรวจสอบอย่างรวดเร็ว
คอลัมน์สีของคุณไม่มีลำดับตามธรรมชาติ การเข้ารหัสแบบใดจะหลีกเลี่ยงการสร้างลำดับที่ไม่เป็นจริง
สรุป: การเข้ารหัส
คุณเปลี่ยนคำให้เป็นตัวเลขแล้ว: ใช้ one-hot กับหมวดหมู่ที่ไม่มีลำดับ ใช้การแปลงแบบอันดับเมื่อลำดับมีความหมายจริง และใช้การเข้ารหัสป้ายกำกับเฉพาะเมื่อไม่สำคัญเรื่องลำดับ 🎉
คำถามที่พบบ่อย
บทเรียน “เข้ารหัสคอลัมน์เชิงหมวดหมู่” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เข้ารหัสคอลัมน์เชิงหมวดหมู่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Data Science Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Data Science Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เข้ารหัสคอลัมน์เชิงหมวดหมู่”
พื้นฐานการเข้ารหัสแบบ one-hot และป้ายกำกับ คุณปฏิบัติ Data Science Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Data Science Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Data Science Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “เข้ารหัสคอลัมน์เชิงหมวดหมู่” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Data Science Academy นี้ได้ไหม
ได้ บทเรียน Data Science Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แบ่งตัวเลขเป็นหมวดหมู่
- เข้ารหัสคอลัมน์เชิงหมวดหมู่
- ปรับสเกลและทำตัวเลขให้เป็นมาตรฐาน
- สร้างคุณลักษณะจากวันที่และข้อความ