Techniki postępowania z niekompletnymi / brakującymi danymi

12

Moje pytanie dotyczy technik radzenia sobie z niekompletnymi danymi podczas szkolenia / dopasowania / klasyfikacji klasyfikatora / modelu.

Na przykład w zestawie danych zawierającym kilkaset wierszy, z których każdy ma powiedzmy pięć wymiarów i etykietę klasy jako ostatni element, większość punktów danych będzie wyglądać następująco:

[0,74, 0,39, 0,14, 0,33, 0,34, 0]

Kilka może wyglądać mniej więcej tak:

[0,21, 0,68, 8, 0,82, 0,58, 1]

Więc to typy punktów danych są przedmiotem tego pytania.

Pierwszym powodem, dla którego zadałem to pytanie, był problem przede mną; jednak przed opublikowaniem mojego pytania pomyślałem, że może być bardziej użyteczne, jeśli przeformułuję je, aby odpowiedzi były przydatne dla większej części Wspólnoty.

Jako prostą heurystykę podzielmy te techniki przetwarzania danych w oparciu o to, kiedy w trakcie przetwarzania są one stosowane - przed wprowadzeniem do klasyfikatora lub podczas (tj. Technika jest w klasyfikatorze).

Najlepszym przykładem tego drugiego może być sprytna technika „trójdrożnego rozgałęziania” stosowana w drzewach decyzyjnych.

Bez wątpienia pierwsza kategoria jest znacznie większa. Znane mi techniki należą do jednej z poniższych grup.

Podczas niedawnego przeglądania moich osobistych notatek na temat „obsługi brakujących danych” zauważyłem, że mam dość imponującą listę technik. Po prostu przechowuję te notatki dla ogólnego spokoju i na wypadek, gdyby młodszy kolega zapytał mnie, jak radzić sobie z brakującymi danymi. W rzeczywistości nie używam żadnego z nich, z wyjątkiem ostatniego.

  1. Imputacja : szeroka rubryka dla zestawu technik, których wspólnym mianownikiem (uważam) jest to, że brakujące dane są dostarczane bezpośrednio przez ten sam zestaw danych - podstawianie, a nie szacowanie / przewidywanie.

  2. Rekonstrukcja : oszacuj brakujące punkty danych za pomocą sieci auto-asocjacyjnej (tylko sieć neuronowa, w której rozmiary warstw wejściowych i wyjściowych są równe - innymi słowy, dane wyjściowe mają taki sam wymiar jak dane wejściowe); chodzi tutaj o to, aby wyszkolić tę sieć na kompletnych danych, a następnie podać jej niekompletne wzorce i odczytać brakujące wartości z węzłów wyjściowych.

  3. Bootstrapping : (podsumowanie nie jest konieczne, nie powinienem myśleć, biorąc pod uwagę jego zastosowanie w analizie statystycznej).

  4. Odmowa : po cichu usuń punkty danych z brakującymi / uszkodzonymi elementami z zestawu treningowego i udawaj, że nigdy nie istniały.

doug
źródło
2
Istnieje również podejście „zredukowanego modelu”, w którym trenujesz klasyfikator dla każdego wzorca brakujących wartości napotkanych podczas testowania. IE, aby dokonać prognozy dla x, w którym brakuje i-tego atrybutu, usuń i-ty atrybut ze wszystkich instancji danych treningowych i trenuj na tym. jmlr.csail.mit.edu/papers/v8/saar-tsechansky07a.html
Jarosław
Uważam, że twoja definicja imputacji jest nieprawidłowa we współczesnym kontekście. Imputacja obejmuje teraz modelowanie brakujących danych na podstawie innych zmiennych z zestawu danych. Obecnie preferowaną metodą imputacji jest wielokrotna imputacja, która generuje wiele alternatyw dla każdej brakującej wartości (na podstawie modelu), przetwarza każdy alternatywny kompletny zestaw danych, a następnie łączy odpowiedzi odzwierciedlające zmienność między wynikami. (W „dawnych czasach” ludzie robili takie rzeczy, jak zamiana wartości z podobnego zapisu lub średniej itp., Ale nie teraz.)
Wayne
@ Czy byłbyś tak uprzejmy, wskazując mi artykuł na temat tych moderntechnik? Dzięki
Enzo,
Pakiet R micezawiera fajny dokument wprowadzający na temat JSS: jstatsoft.org/article/view/v045i03 . (Wprowadzenie powinno być przydatne, nawet jeśli nie używasz R.) A pakiet R Ameliama ładną winietę, która jest dołączona do pakietu. Te dwa pakiety różnią się szczegółami, ale oba wykorzystują wielokrotne przypisywanie.
Wayne

Odpowiedzi:

3

Udzieliłem tej odpowiedzi na inne pytanie , ale może mieć zastosowanie również tutaj.

„Istnieje całkiem nowy obszar badań o nazwie Matrix Completion , który prawdopodobnie robi to, co chcesz. Naprawdę miłe wprowadzenie znajduje się w wykładzie Emmanuela Candesa”

Zasadniczo, jeśli twój zestaw danych ma niską rangę (lub w przybliżeniu niską rangę), tj. Masz 100 wierszy, ale rzeczywista macierz ma jakąś małą rangę, powiedzmy 10 (lub tylko 10 dużych pojedynczych wartości), możesz użyć Uzupełniania macierzy, aby uzupełnić brakujące dane.

Robby McKilliam
źródło
2

Mogę być trochę niekonwencjonalny tutaj, ale co do cholery. Uwaga: ten tok myślenia wywodzi się z mojej własnej filozofii klasyfikacji, a mianowicie, że używam go, gdy moim celem jest wyłącznie przewidywanie - a nie wyjaśnienie, spójność pojęciowa itp. Zatem to, co tu mówię, jest sprzeczne z tym, jak ja podchodziłbym do budowania modelu regresji.

Różne podejścia do klasyfikacji różnią się pod względem zdolności do obsługi brakujących danych, a w zależności od niektórych innych czynników ^, mogę po prostu spróbować # 5: użyć klasyfikatora, który nie zadławi tych NA. Część decyzji, by wybrać tę drogę, może również obejmować zastanowienie się nad tym, jak prawdopodobne będzie wystąpienie podobnego odsetka NA w przyszłych danych, do których będziesz stosować ten model. Jeśli NA dla niektórych zmiennych będą równe kursowi, warto po prostu z nimi walczyć (tj. Nie buduj modelu predykcyjnego, który zakłada więcej informacji niż to, co faktycznie masz, lub „ Żartuję sobie z tego, jak to naprawdę będzie przewidywać). W rzeczywistości, jeśli nie jestem przekonany, że NA brakuje losowo, byłbym skłonny przekodować nową zmienną (lub nowy poziom, jeśli „

Gdybym miał dobry powód, aby użyć klasyfikatora, który nie wziął zbyt dobrze brakujących danych, wówczas moim podejściem byłoby numer 1 (wielokrotna imputacja), szukając modelu klasyfikacji, który zachowałby się podobnie dobrze w przypisanych zestawach danych.

^ W tym: ile braków masz w swoich predyktorach, czy istnieją systematyczne wzorce (jeśli tak, warto przyjrzeć się bliżej i zastanowić się nad konsekwencjami dla Twojej analizy) oraz ile danych musisz pracować z ogólną .

Shelby
źródło
1

Jeśli masz uzasadnione przeczucie, że proces generowania danych jest odpowiedzialny za dane dane, możesz użyć pomysłów bayesowskich do oszacowania brakujących danych. Zgodnie z podejściem bayesowskim można po prostu założyć, że brakujące dane są również zmiennymi losowymi, i zbudować tylne dla brakujących danych, zależnie od danych obserwowanych. Środki późniejsze zostałyby wówczas wykorzystane jako substytut brakujących danych.

Użycie modeli bayesowskich może kwalifikować się jako imputacja w szerokim znaczeniu tego słowa, ale pomyślałem o wspomnieniu o nim, ponieważ nie pojawił się on na twojej liście.


źródło