Lär Er AI med Python · Lektion

Detektera och ta bort avvikare

Z-poängsmetoden, IQR-metoden, principen bakom isolation forest och praktisk hantering av avvikare.

Lektion 1 av 413 steg

Detektera och ta bort avvikare är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.

Vad är en avvikare?

En avvikare är ett värde som ligger långt från resten av datan. Det kan vara ett verkligt extremvärde, ett inmatningsfel eller ett sensorfel. Avvikare kan förvränga medelvärden, varianser och modeller, så identifiera dem medvetet.

Metoden med z-score

Ett z-score mäter hur många standardavvikelser ett värde ligger från medelvärdet: z = (x - mean) / std. En vanlig regel flaggar alla punkter med |z| > 3 som avvikare.

import numpy as np
data = np.array([10, 12, 11, 13, 12, 100])
z = (data - data.mean()) / data.std()
print(np.round(z, 2))

Flagga avvikare med scipy zscore

scipy.stats.zscore beräknar z-scores för en array. Kombinera det med en tröskel för att skapa en boolesk mask över avvikare.

from scipy import stats
z = np.abs(stats.zscore(data))
outliers = z > 3
print(data[outliers])

Begränsningar hos z-score

z-score använder medelvärdet och std, som själva påverkas av avvikare. Vid kraftigt snedfördelad data eller extrema värden kan z-scores missa avvikare. IQR-metoden är mer robust.

IQR-metoden

Det interkvartila avståndet IQR = Q3 - Q1 omfattar de mittersta 50 procenten. Det beräknas utifrån kvartiler, som knappt påverkas av avvikare, vilket gör metoden robust.

q1 = np.percentile(data, 25)
q3 = np.percentile(data, 75)
iqr = q3 - q1
print(q1, q3, iqr)

IQR-gränser

Tukeys gränser definierar gränsvärden: lower = Q1 - 1.5*IQR, upper = Q3 + 1.5*IQR. Allt utanför dessa gränser flaggas. Samma regel bestämmer whiskers i ett boxplot.

lower = q1 - 1.5 * iqr
upper = q3 + 1.5 * iqr
mask = (data < lower) | (data > upper)
print(data[mask])   # outliers

Visualisering med boxplot

Ett boxplot visualiserar IQR-regeln: boxen sträcker sig från Q1 till Q3, linjen visar medianen, whiskers når gränserna och punkter utanför ritas som individuella avvikarpunkter.

# import matplotlib.pyplot as plt
# plt.boxplot(data)
# plt.show()

Ta bort avvikare

När avvikare har flaggats kan du TA BORT raderna. Gör detta försiktigt, eftersom borttagning av verkliga data kan snedvrida resultaten. Dokumentera vad du tog bort och varför.

clean = data[~mask]
print(clean)   # outlier removed

Winsorisering med np.clip

I stället för att ta bort extrema värden kan winsorisering begränsa dem till valda gränser med np.clip. Då behåller du antalet rader samtidigt som extremvärdenas påverkan dämpas.

capped = np.clip(data, lower, upper)
print(capped)   # extreme value pulled to the upper fence

Begränsa till percentiler

Ett vanligt val vid winsorisering är att begränsa värdena till den 1:a och 99:e percentilen, så att endast de mest extrema 2 procenten av värdena påverkas symmetriskt.

lo, hi = np.percentile(data, [1, 99])
print(np.clip(data, lo, hi))

Ta bort eller begränsa?

Välj utifrån sammanhanget: TA BORT tydliga fel (omöjliga värden), BEGRÄNSA verkliga men extrema värden som du vill behålla och behåll ibland avvikare när de utgör själva signalen (till exempel vid bedrägeridetektering). Dokumentera beslutet.

Snabbtest

Testa dina kunskaper om avvikare.

Repetition

Verktygslåda för hantering av avvikare:

  • z-score: flagga |z| > 3 med scipy.stats.zscore (känsligt för avvikare)
  • IQR-gränser: Q1-1.5*IQR till Q3+1.5*IQR (robust, grunden för boxplots)
  • Ta bort verkliga fel; winsorisera med np.clip för att begränsa extremvärden
  • Dokumentera alltid varför värden togs bort eller begränsades
Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
53
Lektioner
225

Vanliga frågor

Är lektionen ”Detektera och ta bort avvikare” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Detektera och ta bort avvikare”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.

Vad lär jag mig i ”Detektera och ta bort avvikare”?

Z-poängsmetoden, IQR-metoden, principen bakom isolation forest och praktisk hantering av avvikare. Ni övar på Lär Er AI med Python med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Lär Er AI med Python?

Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Detektera och ta bort avvikare”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Lär Er AI med Python-lektionen?

Ja. Varje Lär Er AI med Python-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Detektera och ta bort avvikare
  2. Koda kategoriska variabler
  3. Feature-skalning: normalisering och standardisering
  4. Bygga pipelines för förbehandling
← Tillbaka till Lär Er AI med Python