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.


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.


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ą .


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.