วิธีการเข้ารหัสฉลากใน r (พร้อมตัวอย่าง)


บ่อยครั้งในการเรียนรู้ของเครื่อง เราต้องการแปลง ตัวแปรหมวดหมู่ ให้เป็นรูปแบบตัวเลขบางประเภทที่อัลกอริธึมสามารถใช้งานได้ง่าย

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

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

มีสองวิธีทั่วไปในการดำเนินการเข้ารหัสฉลากใน R:

วิธีที่ 1: ใช้ Base R

 df$my_var <- as. numeric (factor(df$my_var))

วิธีที่ 2: ใช้แพ็คเกจ CatEncoders

 library (CatEncoders)

#define original categorical labels
labs = LabelEncoder. fit (df$my_var)

#convert labels to numeric values
df$team = transform(labs, df$my_var)

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

ตัวอย่างที่ 1: การเข้ารหัสฉลากโดยใช้ Base R

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน R base factor() เพื่อแปลงตัวแปรประเภทที่เรียกว่า ทีม ให้เป็นตัวแปรตัวเลข:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'),
                 points=c(25, 12, 15, 14, 19, 23, 25, 29))

#view data frame
df

  team points
1 to 25
2 to 12
3 B 15
4 B 14
5 B 19
6 B 23
7 C 25
8 C 29

#perform label encoding on team variable
df$team <- as. numeric (factor(df$team))

#view updated data frame
df

  team points
1 1 25
2 1 12
3 2 15
4 2 14
5 2 19
6 2 23
7 3 25
8 3 29

สังเกตค่าใหม่ในคอลัมน์ ทีม :

  • “A” กลายเป็น 1
  • “บี” กลายเป็น 2
  • “C” กลายเป็น 3

เราได้แปลงคอลัมน์ ทีม จากตัวแปรหมวดหมู่เป็นตัวแปรตัวเลขเรียบร้อยแล้ว

ตัวอย่างที่ 2: การเข้ารหัสฉลากโดยใช้แพ็คเกจ CatEncoders

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชันในแพ็คเกจ CatEncoders() เพื่อแปลงตัวแปรหมวดหมู่ที่เรียกว่า ทีม เป็นตัวแปรตัวเลข:

 library (CatEncoders)

#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'),
                 points=c(25, 12, 15, 14, 19, 23, 25, 29))

#define original categorical labels
labs = LabelEncoder. fit (df$team)

#convert labels to numeric values
df$team = transform(labs, df$team)

#view updated data frame
df

  team points
1 1 25
2 1 12
3 2 15
4 2 14
5 2 19
6 2 23
7 3 25
8 3 29

เราสร้างค่าใหม่ต่อไปนี้ในคอลัมน์ ทีม อีกครั้ง:

  • “A” กลายเป็น 1
  • “บี” กลายเป็น 2
  • “C” กลายเป็น 3

ซึ่งตรงกับผลลัพธ์ของตัวอย่างก่อนหน้า

โปรดทราบว่าการใช้วิธีนี้คุณสามารถใช้ inverse.transform() เพื่อรับค่าดั้งเดิมของคอลัมน์ ทีม :

 #display original team labels
reverse. transform (labs, df$team)

[1] “A” “A” “B” “B” “B” “B” “C” “C”

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

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

วิธีสร้างตัวแปรหมวดหมู่จากการดำเนินการต่อใน R
วิธีสร้างตัวแปรหมวดหมู่ใน R
วิธีการแปลงตัวแปรเด็ดขาดให้เป็นตัวเลขใน R

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

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