วิธีทำการเข้ารหัสแบบ 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
ตัวแปรหมวดหมู่หรือเชิงปริมาณ: อะไรคือความแตกต่าง?