วิธีการเข้ารหัสฉลากใน 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *