- Populära strategier för att statistiskt imputera saknade värden i en datamängd.
- 2- Imputering med hjälp av (medelvärde/median) värden:
- 3- Imputering med hjälp av (mest frekventa) eller (noll/konstant) värden:
- 4- Imputering med k-NN:
- Hur fungerar det?
- 5- Imputering med hjälp av Multivariate Imputation by Chained Equation (MICE)
- 6- Imputation Using Deep Learning (Datawig):
- Stochastisk regressionsimputering:
- Extrapolering och interpolering:
- Hot-Deck-imputering:
Populära strategier för att statistiskt imputera saknade värden i en datamängd.
Många verkliga datamängder kan innehålla saknade värden av olika skäl. De kodas ofta som NaNs, blanks eller andra platshållare. Att träna en modell med ett dataset som har många saknade värden kan drastiskt påverka maskininlärningsmodellens kvalitet. Vissa algoritmer, t.ex. scikit-learn estimatorer, antar att alla värden är numeriska och har och håller ett meningsfullt värde.
Ett sätt att hantera detta problem är att göra sig av med de observationer som har saknade data. Du riskerar dock att förlora datapunkter med värdefull information. En bättre strategi är att imputera de saknade värdena. Med andra ord måste vi härleda dessa saknade värden från den befintliga delen av data. Det finns tre huvudtyper av saknade data:
- Missing completely at random (MCAR)
- Missing at random (MAR)
- Not missing at random (NMAR)
I den här artikeln kommer jag dock att fokusera på 6 populära sätt för imputering av data för tvärsnittsdataset ( Tidsseriedataset är en annan historia ).
Det är enkelt. Du låter bara algoritmen hantera de saknade uppgifterna. Vissa algoritmer kan ta hänsyn till de saknade värdena och lära sig de bästa imputeringsvärdena för de saknade uppgifterna på grundval av minskningen av träningsförlusterna (t.ex. XGBoost). Vissa andra har alternativet att bara ignorera dem (t.ex. LightGBM – use_missing=false). Andra algoritmer får dock panik och skickar ett fel som klagar på de saknade värdena (t.ex. Scikit learn – LinearRegression). I det fallet måste du hantera de saknade uppgifterna och rensa dem innan du matar algoritmen med dem.
Låt oss se några andra sätt att imputera de saknade värdena innan du tränar:
Anm.: Alla exempel nedan använder California Housing Dataset från Scikit-learn.
2- Imputering med hjälp av (medelvärde/median) värden:
Detta fungerar genom att beräkna medelvärdet/medianvärdet av de icke-missade värdena i en kolumn och sedan ersätta de saknade värdena inom varje kolumn separat och oberoende av de andra. Det kan endast användas med numeriska data.
Pros:
- Enkel och snabb.
- Fungerar bra med små numeriska dataset.
Minus:
- Faktoriserar inte korrelationerna mellan funktioner. Den fungerar endast på kolumnnivå.
- Ge dåliga resultat på kodade kategoriska egenskaper (använd den INTE på kategoriska egenskaper).
- Inte särskilt noggrann.
- Räknar inte för osäkerheten i imputeringarna.
3- Imputering med hjälp av (mest frekventa) eller (noll/konstant) värden:
Mest frekvent är en annan statistisk strategi för att imputera saknade värden och JA!!! Den fungerar med kategoriska egenskaper (strängar eller numeriska representationer) genom att ersätta saknade data med de mest frekventa värdena inom varje kolumn.
Pros:
- Fungerar bra med kategoriska egenskaper.
Cons:
- Den tar inte heller hänsyn till korrelationerna mellan egenskaperna.
- Den kan introducera bias i data.
Noll- eller konstantimputering – som namnet antyder – den ersätter de saknade värdena med antingen noll eller ett konstant värde som du anger
Pros:
- Kan vara mycket noggrannare än metoderna för imputering av medelvärdet, medianen eller den mest frekventa frekvensen (det beror på datasetet).
Konsekvenser:
- Räknekostnader. KNN fungerar genom att lagra hela träningsdatasetet i minnet.
- K-NNN är ganska känslig för outliers i data (till skillnad från SVM)
5- Imputering med hjälp av Multivariate Imputation by Chained Equation (MICE)
Denna typ av imputering fungerar genom att de saknade uppgifterna fylls i flera gånger. Multiple Imputations (MIs) är mycket bättre än en enskild imputering eftersom den mäter osäkerheten hos de saknade värdena på ett bättre sätt. Metoden med kedjade ekvationer är också mycket flexibel och kan hantera olika variabler av olika datatyper (dvs. kontinuerliga eller binära) samt komplexa förhållanden, t.ex. gränser eller mönster för att hoppa över en undersökning. För mer information om algoritmens mekanik kan du läsa forskningsrapporten
6- Imputation Using Deep Learning (Datawig):
Denna metod fungerar mycket bra med kategoriska och icke-numeriska egenskaper. Det är ett bibliotek som lär sig maskininlärningsmodeller med hjälp av djupa neurala nätverk för att ersätta saknade värden i ett dataframe. Det stöder också både CPU och GPU för träning.
Pros:
- Ganska exakt jämfört med andra metoder.
- Det har några funktioner som kan hantera kategoriska data (Feature Encoder).
- Den har stöd för CPU:er och GPU:er.
Nackdelar:
- Enstaka kolumnimputering.
- Kan vara ganska långsam med stora datamängder.
- Du måste specificera kolumnerna som innehåller information om den målkolumn som ska imputeras.
Stochastisk regressionsimputering:
Det är ganska likt regressionsimputering som försöker förutsäga de saknade värdena genom att regressera dem från andra relaterade variabler i samma dataset plus ett slumpmässigt restvärde.
Extrapolering och interpolering:
Det försöker uppskatta värden från andra observationer inom intervallet för en diskret uppsättning kända datapunkter.
Hot-Deck-imputering:
Fungerar genom att man slumpmässigt väljer det saknade värdet från en uppsättning relaterade och liknande variabler.
Slutsatsen är att det inte finns något perfekt sätt att kompensera för de saknade värdena i ett dataset. Varje strategi kan fungera bättre för vissa dataset och typer av saknade data men kan fungera mycket sämre för andra typer av dataset. Det finns vissa fastställda regler för att avgöra vilken strategi som ska användas för vissa typer av saknade värden, men utöver det bör du experimentera och kontrollera vilken modell som fungerar bäst för ditt dataset.