Mange datasæt fra den virkelige verden kan indeholde manglende værdier af forskellige årsager. De er ofte kodet som NaN’er, blanke værdier eller andre pladsholdere. Træning af en model med et datasæt, der har mange manglende værdier, kan have en drastisk indvirkning på maskinlæringsmodellens kvalitet. Nogle algoritmer såsom scikit-learn estimatorer antager, at alle værdier er numeriske og har og holder en meningsfuld værdi.

En måde at håndtere dette problem på er at slippe af med de observationer, der har manglende data. Du risikerer dog at miste datapunkter med værdifulde oplysninger. En bedre strategi ville være at imputere de manglende værdier. Med andre ord skal vi udlede disse manglende værdier fra den eksisterende del af dataene. Der er tre hovedtyper af manglende data:

  • Missing completely at random (MCAR)
  • Missing at random (MAR)
  • Not missing at random (NMAR)

I denne artikel vil jeg dog fokusere på 6 populære måder til dataimputering for tværsnitsdatasæt ( Tidsrækkedatasæt er en anden historie ).

Det er en let en. Du lader bare algoritmen håndtere de manglende data. Nogle algoritmer kan faktor i de manglende værdier og lære de bedste imputeringsværdier for de manglende data baseret på trænings tabsreduktion (dvs. XGBoost). Nogle andre har mulighed for bare at ignorere dem (f.eks. LightGBM – use_missing=false). Andre algoritmer går imidlertid i panik og kaster en fejl, der klager over de manglende værdier (dvs. Scikit learn – LinearRegression). I så fald skal du håndtere de manglende data og rense dem, før du fodrer algoritmen med dem.

Lad os se nogle andre måder at imputere de manglende værdier før træning:

Bemærk: Alle nedenstående eksempler bruger California Housing Dataset fra Scikit-learn.

2- Imputering ved hjælp af (middel/median)-værdier:

Dette fungerer ved at beregne middel/medianen af de ikke-manglende værdier i en kolonne og derefter erstatte de manglende værdier inden for hver kolonne separat og uafhængigt af de andre. Det kan kun bruges med numeriske data.

Mean Imputation

Pros:

  • Nemt og hurtigt.
  • Fungerer godt med små numeriske datasæt.

Cons:

  • Faktorerer ikke korrelationerne mellem funktioner. Den fungerer kun på kolonne-niveau.
  • Giver dårlige resultater på kodede kategoriske funktioner (brug den IKKE på kategoriske funktioner).
  • Det er ikke særlig nøjagtigt.
  • Gør ikke rede for usikkerheden i imputeringerne.
Middelværdi/Middelværdiimputation

3- Imputation ved hjælp af (mest hyppige) eller (nul/konstant) værdier:

Mest hyppige er en anden statistisk strategi til at imputere manglende værdier og JA!!! Den fungerer med kategoriske funktioner (strenge eller numeriske repræsentationer) ved at erstatte manglende data med de hyppigste værdier inden for hver kolonne.

Pros:

  • Funktionerer godt med kategoriske funktioner.

Cons:

  • Den tager heller ikke højde for korrelationer mellem funktioner.
  • Den kan indføre bias i dataene.
Mest Frequent Imputation

Nul eller Constant imputation – som navnet antyder – erstatter den de manglende værdier med enten nul eller en hvilken som helst konstant værdi, du angiver

4- Imputation ved hjælp af k-NN:

Den k nærmeste naboer er en algoritme, der anvendes til simpel klassificering. Algoritmen bruger “feature similarity” til at forudsige værdierne for nye datapunkter. Det betyder, at det nye punkt tildeles en værdi baseret på, hvor meget det ligner punkterne i træningssættet. Dette kan være meget nyttigt til at foretage forudsigelser om manglende værdier ved at finde k’s nærmeste naboer til observationen med manglende data og derefter imputere dem på grundlag af de ikke-manglende værdier i nabolaget. Lad os se noget eksempelkode ved hjælp af Impyute biblioteket, som giver en enkel og nem måde at bruge KNN til imputering:

KNN Imputation for California Housing Dataset

Hvordan virker det?

Det skaber en grundlæggende middelimputering og bruger derefter den resulterende komplette liste til at konstruere en KDTree. Derefter bruger den den resulterende KDTree til at beregne nærmeste naboer (NN). Når den har fundet k-NN’erne, tager den det vægtede gennemsnit af dem.

Pros:

  • Kan være meget mere præcis end middel-, median- eller hyppigste hyppige imputeringsmetoder (Det afhænger af datasættet).

Cons:

  • Komputationelt dyrt. KNN fungerer ved at lagre hele træningsdatasættet i hukommelsen.
  • K-NNN er ret følsom over for outliers i dataene (i modsætning til SVM)

5- Imputation ved hjælp af Multivariate Imputation by Chained Equation (MICE)

Hovedtrin anvendt ved multiple imputationer

Denne type imputering fungerer ved at udfylde de manglende data flere gange. Multiple imputationer (Multiple Imputations (MIs)) er meget bedre end en enkelt imputation, da den måler usikkerheden ved de manglende værdier på en bedre måde. Den kædeformede ligningstilgang er også meget fleksibel og kan håndtere forskellige variabler af forskellige datatyper (dvs. kontinuerlige eller binære) samt kompleksiteter som f.eks. afgrænsninger eller undersøgelsesoverspringsmønstre. For yderligere oplysninger om algoritmemekanikken kan der henvises til forskningsdokumentet

MICE imputation using impyute

6- Imputation Using Deep Learning (Datawig):

Denne metode fungerer meget godt med kategoriske og ikke-numeriske træk. Det er et bibliotek, der lærer maskinlæringsmodeller ved hjælp af Deep Neural Networks til at imputere manglende værdier i et dataframe. Det understøtter også både CPU og GPU til træning.

Imputering ved hjælp af Datawig

Pros:

  • Ganske præcis sammenlignet med andre metoder.
  • Det har nogle funktioner, der kan håndtere kategoriske data (Feature Encoder).
  • Den understøtter CPU’er og GPU’er.

Kontra:

  • Single Column imputation.
  • Kan være ret langsom med store datasæt.
  • Du skal angive de kolonner, der indeholder oplysninger om den målkolonne, der skal imputeres.

Stochastisk regressionsimputation:

Det ligner ret meget regressionsimputation, som forsøger at forudsige de manglende værdier ved at regressere dem ud fra andre relaterede variabler i samme datasæt plus en tilfældig residualværdi.

Ekstrapolation og interpolation:

Det forsøger at estimere værdier fra andre observationer inden for intervallet af et diskret sæt af kendte datapunkter.

Hot-Deck imputation:

Fungerer ved at vælge den manglende værdi tilfældigt fra et sæt relaterede og lignende variabler.

Der er altså ikke nogen perfekt måde at kompensere for de manglende værdier i et datasæt. Hver strategi kan fungere bedre for visse datasæt og manglende datatyper, men kan fungere meget dårligere for andre typer datasæt. Der findes nogle faste regler til at afgøre, hvilken strategi der skal anvendes for bestemte typer manglende værdier, men ud over det bør du eksperimentere og kontrollere, hvilken model der fungerer bedst for dit datasæt.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.