Uživatelské nástroje

Nástroje pro tento web


it:ml:outliers

Jak pracovat s odlehlými hodnotami (Outliers)

Odlehlá hodnota (Outlier) je datový bod, který se výrazně liší od ostatních pozorování v datové sadě. Může jít o chybu měření, chybu při zadávání dat, nebo o vzácný, ale reálný extrém (např. plat miliardáře v průzkumu mezd).

Práce s těmito hodnotami je klíčová, protože mnoho algoritmů strojového učení je na ně extrémně citlivých.

1. Jak detekovat odlehlé hodnoty?

Než začneme hodnoty odstraňovat, musíme je identifikovat. Existují k tomu grafické i statistické metody:

A. Grafické metody

  • Boxplot (Krabicový graf): Nejjednodušší nástroj. Body zobrazené vně „vousů“ (whiskers) jsou považovány za kandidáty na odlehlé hodnoty.
  • Scatter plot (Bodový graf): Pomáhá vidět body, které nezapadají do trendu mezi dvěma proměnnými.

B. Statistické metody

  • Z-Score (Z-skóre): Určuje, o kolik směrodatných odchylek je bod vzdálen od průměru. Pravidlem bývá, že body s $|Z| > 3$ jsou odlehlé.
  • Interquartile Range (IQR): Rozdíl mezi 3. kvartilem ($Q3$) a 1. kvartilem ($Q1$).
    • Spodní hranice = $Q1 - 1.5 \cdot IQR$
    • Horní hranice = $Q3 + 1.5 \cdot IQR$

2. Strategie řešení: Co s nimi dělat?

Jakmile odlehlé hodnoty najdeme, máme čtyři hlavní možnosti, jak s nimi naložit:

1. Odstranění (Trimming / Dropping)

Pokud víme, že jde o chybu (např. věk 200 let), záznam jednoduše vymažeme.

  • Riziko: Můžeme ztratit důležité informace, pokud je dat málo.

2. Transformace

Použití matematických funkcí, které „přitáhnou“ extrémní hodnoty blíže ke středu.

  • Logaritmická transformace ($log(x)$): Velmi účinná u dat s kladným sešikmením (např. příjmy).
  • Odmocnina ($\sqrt{x}$): Jemnější forma redukce rozptylu.

3. Imputace (Nahrazení)

Nahrazení odlehlé hodnoty mediánem nebo průměrem celé sady.

  • Winsorizace: Extrémní hodnoty se nesmažou, ale „zastropují“ na určitém percentilu (např. vše nad 95. percentilem bude mít hodnotu 95. percentilu).

4. Ponechání a výběr robustního algoritmu

Někdy jsou odlehlé hodnoty to nejdůležitější (např. detekce podvodů). V takovém případě zvolíme algoritmy, které s nimi umí pracovat:

  • Rozhodovací stromy / Random Forest: Jsou velmi odolné vůči outlierům.
  • Robustní regrese: Místo MSE minimalizuje metriku méně citlivou na extrémy (např. MAE).

3. Příklad v Pythonu (Metoda IQR)

import pandas as pd
 
# Výpočet mezikvartilového rozpětí
Q1 = df['sloupec'].quantile(0.25)
Q3 = df['sloupec'].quantile(0.75)
IQR = Q3 - Q1
 
# Definice hranic
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
 
# Filtrování outlierů
df_clean = df[(df['sloupec'] >= lower_bound) & (df['sloupec'] <= upper_bound)]

4. Shrnutí: Kdy mazat a kdy ne?

Situace Doporučený postup
Zjevná technická chyba (mínusová cena) Smazat nebo opravit.
Přirozený extrém (extrémně bohatý klient) Ponechat, ale použít robustní algoritmus nebo transformaci.
Hodnota je předmětem zkoumání (podvody) Vždy ponechat, zde jsou outlieři cílem analýzy.

Související články:

Tagy: ml statistics outliers data_cleaning preprocessing

it/ml/outliers.txt · Poslední úprava: autor: admin