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

การตัดค่าผิดปกติด้วยวิธีทางสถิติ

การตัดข้อมูล N% บนสุดออกนั้นช่วยกำจัดจุดข้อมูลที่ผิดปกติอย่างชัดเจนได้ดี แต่ข้อเสียคือจะตัดข้อมูลออกในสัดส่วนเดิมเสมอ แม้ว่าข้อมูลนั้นจะถูกต้องก็ตาม อีกวิธีที่นิยมใช้คือการตัดข้อมูลที่อยู่ห่างจากค่าเฉลี่ยเกิน 3 ส่วนเบี่ยงเบนมาตรฐาน โดยเริ่มจากคำนวณค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของคอลัมน์ที่ต้องการ แล้วกำหนดขอบเขตบนและล่าง จากนั้นนำขอบเขตเหล่านี้มาใช้เป็น mask กับ DataFrame วิธีนี้จะตัดเฉพาะข้อมูลที่แตกต่างจากส่วนใหญ่อย่างแท้จริง และจะตัดข้อมูลออกน้อยลงหากข้อมูลกระจุกตัวอยู่ใกล้กัน

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

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

ดูคอร์ส

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

  • คำนวณส่วนเบี่ยงเบนมาตรฐานและค่าเฉลี่ยของคอลัมน์ ConvertedSalary ใน so_numeric_df
  • คำนวณขอบเขตบนและล่างโดยให้ห่างจากค่าเฉลี่ย 3 ส่วนเบี่ยงเบนมาตรฐานในทั้งสองทิศทาง
  • กรอง DataFrame so_numeric_df เพื่อเก็บเฉพาะแถวที่ค่า ConvertedSalary อยู่ภายในขอบเขต lower และ upper

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

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

# Find the mean and standard dev
std = so_numeric_df['ConvertedSalary'].____
mean = so_numeric_df['ConvertedSalary'].____

# Calculate the cutoff
cut_off = std * 3
lower, upper = mean - cut_off, ____

# Trim the outliers
trimmed_df = so_numeric_df[(so_numeric_df['ConvertedSalary'] < ____) \ 
                           & (so_numeric_df['ConvertedSalary'] > ____)]

# The trimmed box plot
trimmed_df[['ConvertedSalary']].boxplot()
plt.show()
แก้ไขและรันโค้ด