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

จัดการค่าผิดปกติด้วย Winsorization

กำหนดให้มี basetable ที่ประกอบด้วยตัวแปรสองตัว ได้แก่ "sum\_donations" และ "donor\_id" โดย "sum_donations อาจมีค่าผิดปกติในกรณีที่ผู้บริจาคบางรายบริจาคในจำนวนที่สูงผิดปกติ ดังนั้นจึงต้องการ Winsorize ตัวแปรนี้ โดยแทนที่ 5% ของค่าสูงสุดด้วยค่า percentile ที่ 95

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

Predictive Analytics ระดับกลางด้วย Python

ดูคอร์ส

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

  • พิมพ์ค่าต่ำสุดของ sum_donations และตรวจสอบว่ามีค่าอย่างน้อย 0 จากนั้นพิมพ์ค่าสูงสุดของ sum_donations
  • กำหนดขีดจำกัด percentile ล่างที่เหมาะสม เนื่องจากค่าทุกค่าที่มากกว่า 0 ถือว่าสมเหตุสมผลและพบได้บ่อย จึงไม่จำเป็นต้องแทนที่ค่าที่ต่ำกว่าขีดจำกัดล่าง
  • สร้างตัวแปรใหม่ชื่อ "sum_donations_winsorized" ซึ่งเป็นเวอร์ชัน Winsorized ของตัวแปร "sum_donations"
  • พิมพ์ค่าสูงสุดของ sum_donations_winsorized

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

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

from scipy.stats.mstats import winsorize

# Check minimum sum of donations
print(____["____"].____())
print(____["____"].____())

# Fill out the lower limit
lower_limit = ____

# Winsorize the variable sum_donations
basetable["sum_donations_winsorized"] = ____(____["____"], limits=[lower_limit, 0.05])

# Check maximum sum of donations after winsorization
print(____["____"].____())
แก้ไขและรันโค้ด