Scikit-learn: ใช้การเข้ารหัสป้ายกำกับหลายคอลัมน์


ในการเรียนรู้ของเครื่อง การเข้ารหัสฉลาก เป็นกระบวนการแปลงค่าของ ตัวแปรหมวดหมู่ ให้เป็นค่าจำนวนเต็ม

ตัวอย่างเช่น ภาพหน้าจอต่อไปนี้แสดงวิธีการแปลงค่าที่ไม่ซ้ำกันแต่ละค่าของตัวแปรหมวดหมู่ที่เรียกว่า Team ให้เป็นค่าจำนวนเต็มตามลำดับตัวอักษร:

คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อทำการเข้ารหัสป้ายกำกับหลายคอลัมน์ใน Python:

 from sklearn. preprocessing import LabelEncoder

#perform label encoding on col1, col2 columns
df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. apply (LabelEncoder(). fit_transform )

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: การเข้ารหัสป้ายกำกับใน Python

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'D'],
                   ' position ': ['G', 'F', 'G', 'F', 'F', 'G', 'G', 'F'],
                   ' all_star ': ['Y', 'N', 'Y', 'Y', 'Y', 'N', 'Y', 'N'],
                   ' points ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team position all_star points
0 AGY 11
1 AFN 8
2 BGY 10
3 BFY 6
4 BFY 6
5 CGN 5
6 CGY 9
7 DFN 12

เราสามารถใช้โค้ดต่อไปนี้เพื่อทำการเข้ารหัสป้ายกำกับเพื่อแปลงค่าหมวดหมู่แต่ละค่าใน คอลัมน์ team ตำแหน่ง และ all_star ให้เป็นค่าจำนวนเต็ม:

 from sklearn. preprocessing import LabelEncoder

#perform label encoding across team, position, and all_star columns
df[[' team ', ' position ', ' all_star ']] = df[[' team ', ' position ', ' all_star ']]. apply (LabelEncoder(). fit_transform )

#view udpated DataFrame
print (df)

   team position all_star points
0 0 1 1 11
1 0 0 0 8
2 1 1 1 10
3 1 0 1 6
4 1 0 1 6
5 2 1 0 5
6 2 1 1 9
7 3 0 0 12

จากผลลัพธ์เราจะเห็นว่าแต่ละค่าของคอลัมน์ team ตำแหน่ง และ all_star ได้ถูกแปลงเป็นค่าจำนวนเต็มแล้ว

ตัวอย่างเช่น ในคอลัมน์ ทีม เราจะเห็น:

  • ค่า “A” แต่ละค่าถูกแปลงเป็น 0
  • ค่า “B” แต่ละค่าถูกแปลงเป็น 1
  • ค่า “C” แต่ละค่าถูกแปลงเป็น 2
  • ค่า “D” แต่ละค่าถูกแปลงเป็น 3

โปรดทราบว่าในตัวอย่างนี้ เราได้ดำเนินการเข้ารหัสป้ายกำกับในคอลัมน์สามคอลัมน์ของ DataFrame แต่เราสามารถใช้ไวยากรณ์ที่คล้ายกันเพื่อทำการเข้ารหัสป้ายกำกับในคอลัมน์หมวดหมู่ได้มากเท่าที่เราต้องการ

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีทำงานทั่วไปอื่นๆ ใน Python:

วิธีแปลงตัวแปรหมวดหมู่เป็นตัวเลขใน Pandas
วิธีแปลงค่าบูลีนเป็นค่าจำนวนเต็มใน Pandas
วิธีใช้ factorize() เพื่อเข้ารหัสสตริงเป็นตัวเลขใน Pandas

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

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