วิธีการเข้ารหัสฉลากใน python (พร้อมตัวอย่าง)
บ่อยครั้งในการเรียนรู้ของเครื่อง เราต้องการแปลง ตัวแปรหมวดหมู่ ให้เป็นรูปแบบตัวเลขบางประเภทที่อัลกอริธึมสามารถใช้งานได้ง่าย
วิธีหนึ่งในการทำเช่นนี้คือการใช้ การเข้ารหัสป้ายกำกับ ซึ่งจะ กำหนดค่าจำนวนเต็มแต่ละค่าตามหมวดหมู่ตามลำดับตัวอักษร
ตัวอย่างเช่น ภาพหน้าจอต่อไปนี้แสดงวิธีการแปลงค่าที่ไม่ซ้ำกันแต่ละค่าของตัวแปรหมวดหมู่ที่เรียกว่า Team ให้เป็นค่าจำนวนเต็มตามลำดับตัวอักษร:
คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อทำการเข้ารหัสป้ายกำกับใน Python:
from sklearn. preprocessing import LabelEncoder #create instance of label encoder lab = LabelEncoder() #perform label encoding on 'team' column df[' my_column '] = lab. fit_transform (df[' my_column '])
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: การเข้ารหัสป้ายกำกับใน Python
สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
' points ': [25, 12, 15, 14, 19, 23, 25, 29]})
#view DataFrame
print (df)
team points
0 to 25
1 to 12
2 B 15
3 B 14
4 B 19
5 B 23
6 C 25
7 C 29
เราสามารถใช้โค้ดต่อไปนี้เพื่อทำการเข้ารหัสป้ายกำกับเพื่อแปลงค่าหมวดหมู่แต่ละค่าในคอลัมน์ ทีม เป็นค่าจำนวนเต็ม:
from sklearn. preprocessing import LabelEncoder #create instance of label encoder lab = LabelEncoder() #perform label encoding on 'team' column df[' team '] = lab. fit_transform (df[' team ']) #view updated DataFrame print (df) team points 0 0 25 1 0 12 2 1 15 3 1 14 4 1 19 5 1 23 6 2 25 7 2 29
จากผลลัพธ์เราจะเห็นได้ว่า:
- ค่า “A” แต่ละค่าถูกแปลงเป็น 0
- ค่า “B” แต่ละค่าถูกแปลงเป็น 1
- ค่า “C” แต่ละค่าถูกแปลงเป็น 2
โปรดทราบว่าคุณสามารถใช้ฟังก์ชัน inverse_transform() เพื่อรับค่าดั้งเดิมของคอลัมน์ ทีม ได้:
#display original team labels lab. inverse_transform (df[' team ']) array(['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'], dtype=object)
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีทำงานทั่วไปอื่นๆ ใน Python:
วิธีแปลงตัวแปรหมวดหมู่เป็นตัวเลขใน Pandas
วิธีแปลงค่าบูลีนเป็นค่าจำนวนเต็มใน Pandas
วิธีใช้ factorize() เพื่อเข้ารหัสสตริงเป็นตัวเลขใน Pandas