การเข้ารหัสแบบ Ordinal สำหรับคอลัมน์ categorical
การ impute ค่า categorical มีขั้นตอนเพิ่มเติมจากการ impute ค่าตัวเลข เนื่องจากการดำเนินการทางสถิติไม่สามารถทำกับข้อมูลประเภท string ได้โดยตรง จึงต้องแปลงข้อมูลให้เป็นตัวเลขก่อน
ในแบบฝึกหัดนี้จะใช้ชุดข้อมูลโปรไฟล์ผู้ใช้ ซึ่งบันทึกความชอบและตัวเลือกของลูกค้าที่เก็บโดยร้านอาหาร โดยชุดข้อมูลนี้มีเฉพาะฟีเจอร์ประเภท categorical เท่านั้น จะแปลงคอลัมน์ 'ambience' ให้เป็นตัวเลขโดยใช้ OrdinalEncoder จาก sklearn โดย DataFrame ถูกโหลดไว้ให้แล้วในชื่อ users และฟังก์ชัน OrdinalEncoder() ก็ถูกโหลดไว้ให้แล้วเช่นกัน
ผลลัพธ์จาก head() และ tail() ของ DataFrame users ถูกแสดงไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจัดการข้อมูลที่หายไปใน Python
คำแนะนำการฝึกหัด
- สร้างออบเจกต์ ordinal encoder และกำหนดให้กับตัวแปร
ambience_ord_enc - เลือกค่าที่ไม่ขาดหายของคอลัมน์
'ambience'ในusers - ปรับรูปร่างของ
ambience_not_nullให้เป็น(-1, 1) - แทนที่ค่าที่ไม่ขาดหายของ
ambienceด้วยค่าที่ผ่านการเข้ารหัสแล้ว
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Set col_name to 'ambience'
col_name = 'ambience'
# Create Ordinal encoder
ambience_ord_enc = ___
# Select non-null values of ambience column in users
ambience = users[col_name]
ambience_not_null = ___
# Reshape ambience_not_null to shape (-1, 1)
reshaped_vals = ___
# Select the non-null values for the column col_name in users and store the encoded values
encoded_vals = ambience_ord_enc.fit_transform(reshaped_vals)
users.loc[___, col_name] = np.squeeze(encoded_vals)