I dette blogindlæg talker vi om noget der indenfor machine learning kaldes data lækage. Det er ikke at forveksle med lækage af data til offentligheden!
Data lækage indenfor machine learning er når en feature vi benytter til at forudsige et output, på tidspunktet hvor vi laver forudsigelsen ikke kunne være tilgængelig. I mange tilfælde holder featuren information omkring den værdi som vi forsøger at forudsige.

Feature: en feature er en individuel egenskab, der bruges til at forudsige outputværdien. Vibration, temperatur og lyd er eksempler på tre features.neurospace


Data lækage kan blive introduceret til en machine learning model på forskellige stadier, for eksempel:
  • Når vi arbejder med tidsserier
  • Udvælgelsen af den rigtige feature for forudsigelser
  • Labels til vores outputværdier
Code on a computer with glasses in front

Tidsserier

Overvej følgende: Vi ønsker at skabe en machine learning model til at forudsige en given efterspørgsel. Vi har data tilgængelig fra produktets kategori, fabrikken og produktkoden. Vores outputværdi er efterspørgelsen.

Vi har et sæt af data indsamlet over et givet tidspunkt. Dataene indsamles med samme frekvens, f.eks. en gang om dagen eller en gang om ugen. Når dato og tidspunkter bliver vigtig for forudsigelsen, kaldes det en tidsserie. Tidsserier er ordnet som historiske data, den ældste dato er den første observation. Ligesom når du fortæller din virksomheds indtægter de sidste 10 år.
Når vi træner en machine learning model, har vi brug for en større mængde af disse historiske data.

Problemer med tidsserier er tilbøjelige til at introducere datalækage, hvis vi ikke er forsigtige, når vi designer machine learning modellen.
I tilfælde af introduktion af datalækage i tidsserier tillader vi vores model at bruge både tidligere, men også fremtidige ordrekrav til at forudsige dagens ordrebehov.
Kan du se problemet? Hvis vores model lærer at bruge morgendagens forudsigelse til at forudsige i dag, kan modellen ikke generaliseres og bruges til at forudsige fremtidige ordenskrav.

Generaliserbarhed: Generaliserbarhed beskriver, om forudsigelser fra en machine learning model kan anvendes og bruges i produktionen.neurospace


Tabellen nedenfor er et eksempel på en virksomheds ordrebehov.
Hvis du kun har følgende data tilgængelige, hvad er dit bedste gæt for ordrebehovet den 29. august 2019?
Da mønsteret viser en stigning på 5 produkter dagligt, er et godt skøn 50 produkter.
Dato Output
2019/08/26 30
2019/08/27 35
2019/08/28 45
2019/08/29 ??
Eksempel på en tidsserie

Nu, med følgende tilgængelige data, hvad er din forudsigelse af ordrebehovet den 29. august 2019?
Dato Output
2019/08/26 30
2019/08/27 35
2019/08/28 45
2019/08/29 ??
2019/08/30 20
2019/08/31 16
2019/09/01 18
Eksempel på en tidsserie

Hvis vi har introduceret datalækage til machine learning modellen, vil den forudsige, at ordrebehovet den 29. august er mindre end de sidste tre dage, fordi vi kan se, at efterspørgslen mindskes efter den 29. august.

Valg af de rigtige features

Vi vil lave en machine learning model til at forudsige, om folk har mycoplasma pneumoniae. De generelle symptomer på dette er ondt i halsen, tør hoste, hovedpine, rennende næse og en let feber. Vi vores maskinlæringsmodeller på historiske data som vi beskrev i starten af dette blogindlæg. Vores outputværdi vil sige, om de givne symptomer er forårsaget af mycoplasma pneumoniae (ja / nej).
Som input feature tilføjer vi, om folk fik udstedt recept til antibiotika (ja / nej).

Problemet er, at folk, der ikke er syge med et specifikt sæt vira, ikke får antibiotika. At få en recept på antibiotika er noget, der naturligt sker efter forudsigelserne af vores machine learning model og derved introducerer vi datalækage.

Udtrækning af de rigtige features til en machine learning model er vigtig. Du skal være opmærksom på, om de givne funktioner er korrelerede med den givne outputværdi, samt sørge for at de ikke har oplysninger om output, som vi naturligt ikke kan have til rådighed på tidspunktet vi forudsiger.

Labeling af outputværdi

Endelig kan vi introducere datalækage, når vi labler et datasæt, som er en tidsserier.

Et eksempel på datalækage, der opstår som følge af dårlig labeling, er når vi ønsker at detektere unormale værdier også kaldet anomalier. Når vi bestemmer, om den givne observation skal labeles som enten en normal værdi eller et anomali, ser vi også på fremtidige værdier i tidsserierne.

Et eksempel er visualiseret i tabellen herunder. Vi ser en stigning indtil 40.000 med et fald i værdier bagefter. Nu kommer spørgsmålet for dig at beslutte: “Er de 40.000 en outlier? Eller ville 27.000 blive vurderet som en outlier?” Dette er svære spørgsmål, og hvis vi labler dataen forkert, vil vi desuden introducere denne fejl til vores model, når den lærer at tolke mønstrene.

Dato Værdi Output
2019/08/26 25000 normal
2019/08/27 30000 normal
2019/08/28 33000 normal
2019/08/29 40000 ??
2019/08/30 27000 ??
2019/08/31 16000 ??
2019/09/01 18000 ??
Eksempel på labeling af et tidsserie datasæt

Faldgruberne i datalækage

Når du introducerer datalækage til en machine learning model, får du en høj træn- og testnøjagtighed, hvilket antyder, at modellen er god nok til produktion. Modellen vil hverken underfitte eller overfitte.
Når du implementerer machine learning modellen i produktionen, introduceres den imidlertid ikke længere til én feature, fordi den ikke er tilgængelig, når du har brug for modellens forudsigelser. Den manglende feature er måske endda den vigtigste feature til bestemmelse af den rigtige klasse: _ de lækkede data_.

Når du implementerer en machine learning model i produktionen, vil du se, at forudsigelserne ikke er pålidelige, hvilket tvinger dig til at stoppe med at bruge maskinlæringsmodellen til forudsigelser.
Derfor er det vigtigt at sikre dig, at du ikke introducerer datalækage i dit datasæt. Det er vigtigt, at modellen kun lærer mønstre til forudsigelse af et givet resultat, baseret på hvad der er tilgængeligt på tidspunktet for forudsigelse.

Konklusion

Datalækage er introduktionen af en feature, der på tidspunktet for forudsigelse ikke kan være tilgængelig. Den indeholder ofte de oplysninger, du prøver at forudsige. Derfor kan datalækage antyde, at en maskinlæringsmodel er god nok til produktion, når den i virkeligheden har lært mønstre på nogle oplysninger, der ikke er tilgængelig på det tidspunkt, vi har brug for den til at forudsige en outputværdi.
Datalækage kan opstå, når man arbejder med tidsserier, i labling af et datasæt til en machine learning model, og når man vælger de rigtige feature.
Det er vigtigt, at machine learning modellen kun introduceres til information, der kan være tilgængelig på tidspunktet for forudsigelse.

// Maria Jensen, Machine Learning Engineer @ neurospace