Grafice boxplot și IQR

Detecția anomaliilor în Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Recapitulare grafice boxplot

  • Graficele boxplot:
    • Sunt versiuni vizuale extinse ale rezumatului celor 5 valori
    • Arată localizarea, dispersia și asimetria datelor
    • Indică prezența outlierilor

Un exemplu de grafic boxplot cu adnotări.

Detecția anomaliilor în Python

Componentele unui grafic boxplot

Un grafic boxplot cu percentilele 25 și 75 și caseta adnotate cu săgeți și text explicativ.

Detecția anomaliilor în Python

Mustățile

Alt grafic boxplot cu mai multe componente adnotate: mediana, un outlier exemplu, limitele inferioară și superioară.

Detecția anomaliilor în Python

Intervalul Intercuartilic (IQR)

  • IQR - Intervalul Intercuartilic
  • IQR = Q3 - Q1
  • Lungimile mustăților - combinație între IQR și un factor

Același grafic boxplot de pe diapozitivul anterior, mai mic.

Detecția anomaliilor în Python

Calculul lungimilor mustăților

  • Factor = 1.5
  • Limita inferioară: $Q1 - 1.5 * IQR$
  • Limita superioară: $Q3 + 1.5 * IQR$

Același grafic boxplot de pe diapozitivul anterior.

Detecția anomaliilor în Python

Desenarea graficelor boxplot

import matplotlib.pyplot as plt

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

Un grafic boxplot al vânzărilor de produse cu mulți outlieri formând o linie neagră deasupra limitei superioare.

Detecția anomaliilor în Python

Controlul lungimilor mustăților

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

Un grafic boxplot al vânzărilor cu mai puțini outlieri deasupra mustății superioare.

Detecția anomaliilor în Python

IQR în cod

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


# Calculate IQR IQR = q3 - q1 # Set Multiplying factor factor = 2.5
Detecția anomaliilor în Python

Identificarea outlierilor cu 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
Detecția anomaliilor în Python

Flexibilitatea metodei

  • Graficele boxplot și filtrarea IQR oferă flexibilitate ridicată
  • Permit crearea de reguli personalizate pentru marcarea outlierilor
Detecția anomaliilor în Python

Să exersăm!

Detecția anomaliilor în Python

Preparing Video For Download...