Wat zijn anomalieën en uitschieters?

Anomaly Detection in Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Inliers vs. uitschieters

  • Anomaliedetectie: abnormale datapunten vinden
  • Inliers:
    • “Normale” datapunten
    • Vertegenwoordigen de meerderheid
  • Uitschieters:
    • Komen heel zelden voor
    • Statistisch afwijkend

Twee voorbeelden van uitschieters: een rode tulp in een groen veld en een zwart stokje los van een groep witte stokjes

Anomaly Detection in Python

Planeet Aarde als anomalie

Alle planeten zijn inliers

Afbeelding van het Melkwegstelsel van zeer ver weg.

Alleen de Aarde is een uitschieter

Een opvallend beeld van planeet Aarde dat leven toont via de atmosfeer als lens.

Anomaly Detection in Python

Statistische definitie

  • Abnormaal verschillend
  • Hebben significant andere kenmerken
  • De observator beslist of een datapunt een uitschieter is
Anomaly Detection in Python

Toepassingen van anomaliedetectie

Afbeelding van het woord "security" met een muisaanwijzer erboven.

Anomaly Detection in Python

Toepassingen van anomaliedetectie

Een blauwe gehandschoende hand die een klein chemisch potje met blauwe vloeistof vasthoudt.

Anomaly Detection in Python

Toepassingen van anomaliedetectie

Afbeelding van een man die zijn Visa-kaart geeft aan een vrouw met een betaalterminal.

Anomaly Detection in Python

Voorbeelddata

import pandas as pd

numbers = pd.Series([24, 46, 30, 28, 1289, 25, 21, 31, 48, 47])
Anomaly Detection in Python

Gemiddelde en variantie beïnvloed

Data zonder uitschieter

numbers_a = pd.Series([24, 46, ...])
numbers_a.mean()
33.33
numbers_a.var()
114.5

Data met uitschieter

numbers_b = pd.Series([1289, 24, ...])
numbers_b.mean()
158.9
numbers_b.var()
157771.65
Anomaly Detection in Python

Anomalieën in trainingsdata

  • Anomalieën voegen ruis toe
  • Kunnen worden verward met een nieuwe subgroep
  • Leiden af van de echte patronen
Anomaly Detection in Python

Uitschieter- vs. nieuwigheiddetectie

Detectie van uitschieters

  • Uitschieters bestaan alleen in de trainingsdata

Detectie van nieuwigheden

  • Nieuwigheden bestaan alleen in nieuwe data
Anomaly Detection in Python

5-getallensamenvatting

import pandas as pd

big_mart = pd.read_csv("big_mart.csv")
sales = big_mart['sales']
sales.describe()
count     8523.000000
mean      2181.288914
std       1706.499616
min         33.290000
25%        834.247400
50%       1794.331000
75%       3101.296400
max      13086.964800
Anomaly Detection in Python

Maak een histogram

import numpy as np
import matplotlib.pyplot as plt

# Vind de wortel van de lengte van sales
n_bins = np.sqrt(len(sales))
# Zet om naar een geheel getal
n_bins = int(n_bins)


# Plot plt.figure(figsize=(8, 4)) plt.hist(sales, bins=n_bins, color='red')
Anomaly Detection in Python

Het resulterende histogram

Een histogram van productverkopen met rode balken en een lange rechterstaart.

Anomaly Detection in Python

Maak een spreidingsdiagram

integers = range(len(sales))

plt.figure(figsize=(16, 8))
plt.scatter(integers, sales, c='red', alpha=0.5)
Anomaly Detection in Python

Het resulterende spreidingsdiagram

Een spreidingsdiagram met een wolk punten onderin die naar boven uitdunt

Anomaly Detection in Python

Laten we oefenen!

Anomaly Detection in Python

Preparing Video For Download...