วิธีทำการเข้ารหัสแบบ one-hot ใน r


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

แนวคิดพื้นฐานของการเข้ารหัสแบบร้อนแรงคือการสร้างตัวแปรใหม่ที่ใช้ค่า 0 และ 1 เพื่อแสดงค่าหมวดหมู่ดั้งเดิม

ตัวอย่างเช่น รูปภาพต่อไปนี้แสดงให้เห็นว่าเราจะเข้ารหัสแบบ one-hot เพื่อแปลงตัวแปรหมวดหมู่ที่มีชื่อทีมเป็นตัวแปรใหม่ที่มีค่าเพียง 0 และ 1 เท่านั้น:

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

ขั้นตอนที่ 1: สร้างข้อมูล

ขั้นแรก เรามาสร้าง data frame ต่อไปนี้ใน R:

 #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

ขั้นตอนที่ 2: ทำการเข้ารหัสแบบร้อนครั้งเดียว

ต่อไป ลองใช้ฟังก์ชัน dummyVars() ของแพ็คเกจ คาเร็ต เพื่อเข้ารหัสตัวแปร ‘ทีม’ ในเฟรมข้อมูลแบบร้อนแรง:

 library ( caret)

#define one-hot encoding function
dummy <- dummyVars(" ~ . ", data=df)

#perform one-hot encoding on data frame
final_df <- data. frame (predict(dummy, newdata=df))

#view final data frame
final_df

  teamA teamB teamC points
1 1 0 0 25
2 1 0 0 12
3 0 1 0 15
4 0 1 0 14
5 0 1 0 19
6 0 1 0 23
7 0 0 1 25
8 0 0 1 29

โปรดทราบว่ามีการเพิ่มคอลัมน์ใหม่สามคอลัมน์ใน data frame เนื่องจากคอลัมน์ “ทีม” ดั้งเดิมมีค่าที่ไม่ซ้ำกันสามค่า

โปรดทราบว่าคอลัมน์ “ทีม” ดั้งเดิมได้ถูกลบออกจากกรอบข้อมูลแล้ว เนื่องจากไม่จำเป็นอีกต่อไป

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

หมายเหตุ : คุณสามารถดูเอกสารออนไลน์ฉบับเต็มสำหรับฟังก์ชัน dummyVars() ได้ที่นี่

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

บทช่วยสอนต่อไปนี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับการใช้ตัวแปรตามหมวดหมู่:

วิธีสร้างตัวแปรหมวดหมู่ใน R
วิธีการพล็อตข้อมูลหมวดหมู่ใน R
ตัวแปรหมวดหมู่หรือเชิงปริมาณ: อะไรคือความแตกต่าง?

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

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