0Pricing
Data Science Academy · บทเรียน

เข้ารหัสคอลัมน์เชิงหมวดหมู่

พื้นฐานการเข้ารหัสแบบ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แบ่งตัวเลขเป็นหมวดหมู่
  2. เข้ารหัสคอลัมน์เชิงหมวดหมู่
  3. ปรับสเกลและทำตัวเลขให้เป็นมาตรฐาน
  4. สร้างคุณลักษณะจากวันที่และข้อความ
← กลับไปที่ Data Science Academy