Praktycznie każda baza danych, w której chcemy przewidywać za pomocą algorytmów uczenia maszynowego, znajdzie brakujące wartości niektórych cech.
Istnieje kilka podejść do rozwiązania tego problemu, aby wykluczyć linie, w których brakuje wartości, dopóki nie wypełnią się średnimi wartościami cech.
Chciałbym zastosować nieco bardziej niezawodne podejście, które zasadniczo uruchomiłoby regresję (lub inną metodę), w której zmienną zależną (Y) byłaby każda kolumna, której brakuje wartości, ale tylko z wierszami tabeli które zawierają wszystkie dane i za pomocą tej metody przewidują brakujące wartości, uzupełnij tabelę według tabeli i przejdź do następnej „kolumny” z brakującymi wartościami i powtarzaj metodę, aż wszystko zostanie wypełnione.
Ale to budzi pewne wątpliwości.
Dlaczego zaczyna się jakakolwiek kolumna? Uważam, że ten z najmniejszymi brakującymi wartościami aż do tego z największym
Czy istnieje jakiś próg brakujących wartości, który nie jest wart próby jego uzupełnienia? (na przykład jeśli ta cecha ma tylko 10% wypełnionych wartości, nie byłoby bardziej interesujące, aby ją wykluczyć)
Czy istnieje jakakolwiek implementacja w tradycyjnych pakietach lub innych metodach odpornych na braki?
Amelia II
w R jest dobrym wyborem. Lub możesz rzucić własny za pomocąstan
.Odpowiedzi:
Opisana technika nazywa się imputacją przez sekwencyjne regresje lub wielokrotną imputacją przez równania łańcuchowe. Technikę tę wprowadził Raghunathan (2001) i zaimplementował w dobrze działającym pakiecie R o nazwie
mice
(van Buuren, 2012).W artykule Schafera i Grahama (2002) dobrze wyjaśniono, dlaczego średnia imputacja i skasowanie listowe (tak zwane wykluczenie linii) zwykle nie stanowią dobrych alternatyw dla wyżej wymienionych technik. Zasadniczo średnia imputacja nie jest warunkowa, a zatem może odchylać przypisane rozkłady w kierunku obserwowanej średniej. Zmniejszy to również wariancję, między innymi niepożądanymi wpływami na przypisany rozkład. Co więcej, usuwanie listowe rzeczywiście będzie działać tylko wtedy, gdy dane zostaną całkowicie przypadkowo pominięte, jak na przykład rzut monetą. Zwiększy to również błąd próbkowania, ponieważ wielkość próbki zostanie zmniejszona.
Cytowani powyżej autorzy zwykle zalecają rozpoczęcie od zmiennej zawierającej najmniej brakujące wartości. Ponadto technika jest zwykle stosowana w sposób bayesowski (tj. Rozszerzenie twojej sugestii). Zmienne są odwiedzane częściej w procedurze przypisania, nie tylko raz. W szczególności każdą zmienną uzupełnia losowanie z jej warunkowego rozkładu predykcyjnego z tyłu, zaczynając od zmiennej zawierającej najmniej brakujące wartości. Po zakończeniu wszystkich zmiennych w zestawie danych algorytm ponownie rozpoczyna się od pierwszej zmiennej, a następnie powtarza ją do zbieżności. Autorzy wykazali, że ten algorytm to Gibbs, dlatego zwykle jest zbieżny z poprawnym rozkładem zmiennych na wielu odmianach.
Zwykle, ponieważ wiążą się z tym pewne nie dające się przetestować założenia, w szczególności brak danych losowych (tj. To, czy dane są obserwowane, czy nie, zależy tylko od danych obserwowanych, a nie od wartości nieobserwowanych). Również procedury mogą być częściowo niekompatybilne, dlatego nazwano je PIGS (częściowo niekompatybilny sampler Gibbs).
W praktyce wielokrotna imputacja bayesowska jest nadal dobrym sposobem radzenia sobie z problemami z brakującymi danymi na wielu odmianach niemonotonowych. Ponadto rozszerzenia nieparametryczne, takie jak predykcyjne dopasowywanie średnich, pomagają rozluźnić założenia modelowania regresji.
Raghunathan, TE, Lepkowski, J., van Hoewyk, J., i Solenberger, P. (2001). Wielowymiarowa technika mnożenia imputujących brakujących wartości przy użyciu sekwencji modeli regresji. Metodologia badania, 27 (1), 85–95.
Schafer, JL i Graham, JW (2002). Brakujące dane: nasz pogląd na najnowszy stan wiedzy. Metody psychologiczne, 7 (2), 147–177. https://doi.org/10.1037/1082-989X.7.2.147
van Buuren, S. (2012). Elastyczne przypisywanie brakujących danych. Boca Raton: CRC Press.
źródło
mice
algorytm albo stosuje regresję, albo predykcyjne dopasowanie średnich. Na początku uzupełniasz brakujące dane, rysując z obserwowanego rozkładu, a następnie przypisujesz sekwencyjnie. Po zakończeniu powtórz, ale używając nowo przypisanych wartości. Nowe dane biorą udział, takNie znalazłem niczego, co rozwiązałoby mój problem, dlatego napisałem funkcję, która łączy niektóre rozwiązania w ramce danych Pandas z brakującymi wartościami liczbowymi (z fantazyjnym wyobrażeniem) i kategoryczną (z losowym lasem).
źródło
R
funkcjimice
, Stefem van Buurenem. Może być zainteresowany twoim kodem Python i / lub wskazać ci pracę innych ludzi w tym zakresie. stefvanbuuren.nlChociaż zwykle bardziej zaangażowany, możesz spróbować stworzyć Maksymalny rozkład entropii na podstawie posiadanych danych.
http://proceedings.mlr.press/v5/huang09a/huang09a.pdf
źródło