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

Log Transformation

ในแบบฝึกหัดก่อนหน้า เราปรับสเกลข้อมูลแบบเชิงเส้น ซึ่งไม่ส่งผลต่อรูปร่างของการกระจายข้อมูล วิธีนี้เหมาะมากหากข้อมูลมีการกระจายแบบปกติ (หรือใกล้เคียงปกติ) ซึ่งเป็นข้อสมมติที่โมเดล machine learning จำนวนมากใช้ บางครั้งข้อมูลก็สอดคล้องกับการกระจายแบบปกติได้ดี เช่น ส่วนสูงหรือน้ำหนักของประชากร แต่ในทางกลับกัน ตัวแปรหลายอย่างในโลกจริงไม่เป็นไปตามรูปแบบนี้ เช่น รายได้หรืออายุของประชากร ในแบบฝึกหัดนี้ จะใช้ log transform กับคอลัมน์ ConvertedSalary ใน DataFrame so_numeric_df เนื่องจากข้อมูลส่วนใหญ่กระจุกตัวอยู่ที่ค่าต่ำ แต่ก็มีค่าที่สูงมากปรากฏอยู่ด้วย การกระจายลักษณะนี้เรียกว่ามี long right tail

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

Feature Engineering สำหรับ Machine Learning ใน Python

ดูคอร์ส

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

  • Import PowerTransformer จากโมดูล preprocessing ของ sklearn
  • สร้าง instance ของ PowerTransformer() และกำหนดให้กับตัวแปร pow_trans
  • Fit PowerTransformer กับคอลัมน์ ConvertedSalary ใน so_numeric_df
  • Transform คอลัมน์เดิมด้วย scaler ที่ fit ไว้แล้ว

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

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

# Import PowerTransformer
from sklearn.preprocessing import ____

# Instantiate PowerTransformer
pow_trans = ____

# Train the transform on the data
____

# Apply the power transform to the data
so_numeric_df['ConvertedSalary_LG'] = ____(so_numeric_df[['ConvertedSalary']])

# Plot the data before and after the transformation
so_numeric_df[['ConvertedSalary', 'ConvertedSalary_LG']].hist()
plt.show()
แก้ไขและรันโค้ด