เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การ Impute ค่าหมวดหมู่ด้วย KNN

เมื่อแปลงคอลัมน์หมวดหมู่ทั้งหมดใน DataFrame เป็นค่าเชิงอันดับแล้ว DataFrame ก็พร้อมสำหรับการ impute การใช้โมเดลทางสถิติอย่าง K-Nearest Neighbors (KNN) ช่วยให้ได้ค่า impute ที่แม่นยำยิ่งขึ้น

ในแบบฝึกหัดนี้ คุณจะ

  1. ใช้ฟังก์ชัน KNN() จาก fancyimpute เพื่อ impute ค่าที่หายไปใน DataFrame users ที่ผ่านการ encode เชิงอันดับแล้ว
  2. แปลงค่าเชิงอันดับกลับเป็นหมวดหมู่เดิมโดยใช้เมธอด .inverse_transform() ของ ordinal encoder

ข้อควรจำ: ordinal_enc_dict เก็บ OrdinalEncoder() ของ sklearn สำหรับแต่ละคอลัมน์ และ DataFrame users เก็บค่าที่ผ่านการ encode (ค่าเชิงอันดับ) ของแต่ละคอลัมน์

ฟังก์ชัน KNN(), dictionary ของ OrdinalEncoder() ชื่อ ordinal_enc_dict และ DataFrame users ถูกโหลดไว้ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การจัดการข้อมูลที่หายไปใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • Impute DataFrame users โดยใช้เมธอด fit_transform() ของ KNN_imputer โดยปัดค่าที่ได้เป็นจำนวนเต็ม
  • วนซ้ำผ่านคอลัมน์ใน users
  • เลือก OrdinalEncoder() ของคอลัมน์นั้นจาก ordinal_enc_dict แล้วเรียก .inverse_transform() บน array ที่ปรับรูปร่างแล้ว reshaped

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create KNN imputer
KNN_imputer = KNN()

# Impute 'users' DataFrame. It is rounded to get integer values
users_KNN_imputed.iloc[:, :] = np.round(___)

# Loop over the column names in 'users'
for col_name in ___:
    
    # Reshape the column data
    reshaped = users_KNN_imputed[col_name].values.reshape(-1, 1)
    
    # Select the column's Encoder and perform inverse transform on 'reshaped'
    users_KNN_imputed[col_name] = ___
แก้ไขและรันโค้ด