Box plots และ IQR

การตรวจจับความผิดปกติใน Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

ทบทวน Boxplots

  • Boxplots:
    • เป็นการแสดง 5-number summary ในรูปแบบภาพ
    • แสดงการกระจุกตัว การกระจาย และความเบ้ของข้อมูล
    • บ่งชี้การมีอยู่ของค่าผิดปกติ

ตัวอย่าง boxplot พร้อมคำอธิบายประกอบ

การตรวจจับความผิดปกติใน Python

ส่วนประกอบของ Boxplot

Boxplot ที่มีเปอร์เซ็นไทล์ที่ 25 และ 75 พร้อมกล่องที่ระบุด้วยลูกศรและข้อความประกอบ

การตรวจจับความผิดปกติใน Python

หนวด (Whiskers)

Boxplot อีกแบบที่ระบุส่วนประกอบเพิ่มเติม ได้แก่ ค่ามัธยฐาน ตัวอย่างค่าผิดปกติ และขีดจำกัดค่าผิดปกติบนและล่าง

การตรวจจับความผิดปกติใน Python

Inter Quartile Range (IQR)

  • IQR - Inter Quartile Range
  • IQR = Q3 - Q1
  • ความยาวหนวด — คำนวณจาก IQR และค่าตัวประกอบ

Boxplot เดิมจากสไลด์ก่อนหน้าแต่เล็กกว่า

การตรวจจับความผิดปกติใน Python

การคำนวณความยาวหนวด

  • ค่าตัวประกอบ = 1.5
  • ขีดจำกัดล่าง: $Q1 - 1.5 * IQR$
  • ขีดจำกัดบน: $Q3 + 1.5 * IQR$

Boxplot เดิมจากสไลด์ก่อนหน้า

การตรวจจับความผิดปกติใน Python

การสร้าง Boxplots

import matplotlib.pyplot as plt

plt.boxplot(sales)
plt.xlabel("Product sales")

Boxplot ของยอดขายสินค้าที่มีค่าผิดปกติจำนวนมากเรียงเป็นเส้นสีดำเหนือขีดจำกัดค่าผิดปกติบน

การตรวจจับความผิดปกติใน Python

การปรับความยาวหนวด

plt.boxplot(sales, whis=2.5)
plt.xlabel("Product sales")

Boxplot ของยอดขายสินค้าที่มีค่าผิดปกติเหนือหนวดบนน้อยลง

การตรวจจับความผิดปกติใน Python

IQR ในโค้ด

# Calculate the percentiles
q1 = sales.quantile(0.25)
q3 = sales.quantile(0.75)


# Calculate IQR IQR = q3 - q1 # Set Multiplying factor factor = 2.5
การตรวจจับความผิดปกติใน Python

การค้นหาค่าผิดปกติด้วย IQR

# Calculate the limits
lower_limit = q1 - (IQR * factor)


upper_limit = q3 + (IQR * factor)
# Create masks
is_lower = sales < lower_limit
is_upper = sales > upper_limit


# Filter outliers = sales[is_lower | is_upper] # Print the # of outliers print(len(outliers))
29
การตรวจจับความผิดปกติใน Python

ความยืดหยุ่นของวิธีนี้

  • Boxplots และการกรองด้วย IQR มีความยืดหยุ่นสูง
  • สามารถกำหนดกฎเองสำหรับการระบุค่าผิดปกติได้
การตรวจจับความผิดปกติใน Python

มาฝึกกันเถอะ!

การตรวจจับความผิดปกติใน Python

Preparing Video For Download...