- Populáris stratégiák a hiányzó értékek statisztikai imputálására egy adathalmazban.
- 2- Imputálás (átlag/középértékek) használatával:
- 3- Imputation Using (Most Frequent) or (Zero/Constant) Values:
- 4- Imputation Using k-NN:
- Hogyan működik?
- 5-ös. Imputálás többváltozós imputálással láncolt egyenletekkel (MICE)
- 6- Imputation Using Deep Learning (Datawig) című tanulmányban olvashat:
- Stochasztikus regressziós imputálás:
- Extrapoláció és interpoláció:
- Hot-Deck imputáció:
Populáris stratégiák a hiányzó értékek statisztikai imputálására egy adathalmazban.
Sok valós adathalmaz tartalmazhat különböző okokból hiányzó értékeket. Ezeket gyakran NaN-ként, üresen vagy más helyőrzőként kódolják. Egy modell képzése olyan adathalmazzal, amely sok hiányzó értéket tartalmaz, drasztikusan befolyásolhatja a gépi tanulási modell minőségét. Egyes algoritmusok, például a scikit-learn becslők feltételezik, hogy minden érték numerikus, és értelmes értékkel rendelkezik és azt megtartja.
A probléma kezelésének egyik módja, hogy megszabadulunk a hiányzó adatokkal rendelkező megfigyelésektől. Ezzel azonban azt kockáztatjuk, hogy értékes információkat tartalmazó adatpontokat veszítünk el. Jobb stratégia lenne a hiányzó értékek imputálása. Más szóval, az adatok meglévő részéből kell következtetnünk ezekre a hiányzó értékekre. A hiányzó adatoknak három fő típusa van:
- Teljesen véletlenszerűen hiányzó (MCAR)
- Véletlenszerűen hiányzó (MAR)
- Nem véletlenszerűen hiányzó (NMAR)
Ebben a cikkben azonban a keresztmetszeti adatkészletek adatimputációjának 6 népszerű módjára fogok összpontosítani ( Az idősoros adatkészlet egy másik történet ).
Az egy egyszerű. Csak hagyod, hogy az algoritmus kezelje a hiányzó adatokat. Egyes algoritmusok képesek a hiányzó értékeket faktorálni, és megtanulják a legjobb imputációs értékeket a hiányzó adatokhoz a képzési veszteségcsökkentés alapján (pl. XGBoost). Másoknál lehetőség van arra, hogy egyszerűen figyelmen kívül hagyja őket (pl. LightGBM – use_missing=false). Más algoritmusok azonban pánikba esnek, és hibát dobnak, amely a hiányzó értékekre panaszkodik (pl. Scikit learn – LinearRegression). Ebben az esetben kezelnie kell a hiányzó adatokat, és meg kell tisztítania azokat, mielőtt betáplálja az algoritmusba.
Lássunk néhány más módszert a hiányzó értékek imputálására a képzés előtt:
Megjegyzés: Az alábbi példák mindegyike a Scikit-learn California Housing Datasetjét használja.
2- Imputálás (átlag/középértékek) használatával:
Ez úgy működik, hogy kiszámítjuk a nem hiányzó értékek átlagát/középértékét egy oszlopban, majd minden oszlopon belül külön-külön és a többitől függetlenül pótoljuk a hiányzó értékeket. Csak numerikus adatokkal használható.
Pros:
- Egyszerű és gyors.
- Jól működik kis numerikus adathalmazok esetén.
Hátrányok:
- Nem faktorálja a jellemzők közötti korrelációkat. Csak oszlopszinten működik.
- Kódolt kategorikus jellemzők esetén rossz eredményeket ad (kategorikus jellemzők esetén NE használja).
- Nem túl pontos.
- Nem veszi figyelembe az imputációk bizonytalanságát.
3- Imputation Using (Most Frequent) or (Zero/Constant) Values:
Most Frequent egy másik statisztikai stratégia a hiányzó értékek imputálására és IGEN!!! Kategorikus jellemzőkkel (karakterláncok vagy numerikus ábrázolások) úgy működik, hogy a hiányzó adatokat az egyes oszlopokon belül a leggyakoribb értékekkel helyettesíti.
Pros:
- Kategorikus jellemzőkkel jól működik.
Cons:
- A jellemzők közötti korrelációkat sem veszi figyelembe.
- Ez torzítást vihet be az adatokba.
Nulla vagy konstans imputáció – ahogy a neve is mutatja – a hiányzó értékeket vagy nullával, vagy egy általad megadott konstans értékkel helyettesíti
4- Imputation Using k-NN:
A k legközelebbi szomszédok egy algoritmus, amelyet egyszerű osztályozásra használnak. Az algoritmus a “jellemző hasonlóságot” használja bármely új adatpont értékének előrejelzésére. Ez azt jelenti, hogy az új ponthoz egy értéket rendel aszerint, hogy mennyire hasonlít a képzési halmazban lévő pontokhoz. Ez nagyon hasznos lehet a hiányzó értékekre vonatkozó előrejelzések készítésében azáltal, hogy megkeresi a hiányzó adatokkal rendelkező megfigyelés k legközelebbi szomszédait, majd a szomszédságban lévő nem hiányzó értékek alapján imputálja azokat. Lássunk néhány példakódot a Impyute
könyvtár használatával, amely egyszerű és könnyű módot biztosít a KNN imputáláshoz való használatára:
Hogyan működik?
Elkészít egy alapvető átlagos imputálást, majd az így kapott teljes listát használja egy KDTree felépítéséhez. Ezután a kapott KDTree-t használja a legközelebbi szomszédok (NN) kiszámításához. Miután megtalálta a k-NN-eket, ezek súlyozott átlagát veszi.
Pros:
- Sokkal pontosabb lehet, mint az átlag, medián vagy leggyakoribb imputációs módszerek (Az adatkészlettől függ).
Hátrányok:
- számításigényes. A KNN úgy működik, hogy a teljes képzési adathalmazt a memóriában tárolja.
- A K-NN meglehetősen érzékeny az adatokban lévő kiugró értékekre (ellentétben az SVM-mel)
5-ös. Imputálás többváltozós imputálással láncolt egyenletekkel (MICE)
Ez a fajta imputálás úgy működik, hogy a hiányzó adatokat többszörösen kitölti. A többszörös imputáció (MI) sokkal jobb, mint az egyszeri imputáció, mivel jobban méri a hiányzó értékek bizonytalanságát. A láncolt egyenletek megközelítése szintén nagyon rugalmas, és képes kezelni a különböző adattípusú (azaz folyamatos vagy bináris) változókat, valamint az olyan összetettségeket, mint a korlátok vagy a felmérési kihagyási minták. Az algoritmus mechanikájáról bővebben a Research Paper
6- Imputation Using Deep Learning (Datawig) című tanulmányban olvashat:
Ez a módszer nagyon jól működik kategorikus és nem numerikus jellemzőkkel. Ez egy olyan könyvtár, amely Deep Neural Networks segítségével gépi tanulási modelleket tanul a hiányzó értékek imputálásához egy adatkeretben. Támogatja a CPU-t és a GPU-t is a képzéshez.
Előnyei:
- Meglehetősen pontos más módszerekhez képest.
- Ez rendelkezik néhány olyan funkcióval, amely képes kategorikus adatokat kezelni (Feature Encoder).
- Támogatja a CPU-kat és a GPU-kat.
Hátrányok:
- Egyetlen oszlop imputálása.
- Nagy adathalmazok esetén meglehetősen lassú lehet.
- Meg kell adnia azokat az oszlopokat, amelyek információt tartalmaznak az imputálandó céloszlopról.
Stochasztikus regressziós imputálás:
Ez nagyon hasonlít a regressziós imputáláshoz, amely megpróbálja megjósolni a hiányzó értékeket úgy, hogy regressziót végez az ugyanabban az adatállományban lévő más kapcsolódó változókból és néhány véletlen maradék értékből.
Extrapoláció és interpoláció:
Az ismert adatpontok diszkrét halmazának tartományán belüli más megfigyelésekből próbálja meg becsülni az értékeket.
Hot-Deck imputáció:
A hiányzó érték véletlenszerű kiválasztásával dolgozik a kapcsolódó és hasonló változók halmazából.
Összefoglalva, nincs tökéletes módszer a hiányzó értékek pótlására egy adatállományban. Az egyes stratégiák bizonyos adatkészletek és hiányzó adattípusok esetében jobban teljesíthetnek, de más típusú adatkészletek esetében sokkal rosszabbul teljesíthetnek. Van néhány meghatározott szabály annak eldöntésére, hogy a hiányzó értékek bizonyos típusaihoz melyik stratégiát használja, de ezen túlmenően kísérletezzen, és ellenőrizze, hogy melyik modell működik a legjobban az adatállománya esetében.