Imputacja wartości null
Zbyt wiele brakujących wartości może negatywnie wpłynąć na jakość modelu uczenia maszynowego. Praktyka uzupełniania brakujących wartości, zwanych wartościami null, nazywa się imputacją. Przyczyn braku danych może być wiele, na przykład błąd bazy danych, niewypełnienie części formularza przez użytkownika albo sytuacja, w której zaczynasz zbierać nowe dane, a starsze rekordy w zestawie nie mają tego nowego punktu danych.
Istotne jest rozumienie możliwego wpływu imputacji na dane. Imputacja zachowuje potencjał predykcyjny wiersza lub kolumny, ale może również tworzyć wzorce, które wcześniej nie istniały, lub dodawać szum do istniejącego wzorca. Zmniejsza to prawidłowość danych.
Warto sprawdzić swoje praktyki gromadzenia danych, aby zapewnić kompletność danych i w razie potrzeby wdrożyć nowe procesy. Jeśli chcesz zachować reprezentację pustej wartości, możesz wstawić wartości takie jak „inne” lub „nieznane”.
Imputacja wartości null podczas automatycznego przetwarzania wstępnego
W Qlik AutoML automatyczne przetwarzanie wstępne danych wykorzystuje imputację wartości null do przygotowania zestawu danych do szkolenia. Podczas automatycznego wstępnego przetwarzania danych problem wartości pustych rozwiązuje się przez wykluczenie kolumn, w których brakuje więcej niż 50 procent wartości, i przez imputację brakujących wartości. Brakujące wartości w cechach kategorialnych są imputowane przy użyciu wartości „inne”, a brakujące wartości w cechach liczbowych są imputowane średnią.
Istnieją dodatkowe kwestie do uwzględnienia w przypadku cech poddanych automatycznej inżynierii oraz uczenia z uwzględnieniem czasu.
Więcej informacji na temat przetwarzania wstępnego zawiera temat Automatyczne przygotowanie i przekształcanie danych.
Cechy poddane automatycznej inżynierii
Dzięki automatycznej inżynierii nowe cechy są automatycznie tworzone przez AutoML na podstawie już istniejących. W przypadku cech poddanych automatycznej inżynierii imputacja wartości null jest dokonywana następująco:
-
Jeśli uwzględnisz poddane automatycznej inżynierii cechy daty w uczeniu, proces imputacji wartości null dla tych cech jest taki sam jak w przypadku cech liczbowych.
-
Jeśli zamiast tego używasz nadrzędnych cech daty, proces imputacji wartości null jest taki sam jak w przypadku cech kategorialnych.
-
W przypadku cech kategorialnych, które są traktowane jako dowolny tekst, imputacja wartości null jest taka sama jak w przypadku cech kategorialnych.
Uczenie z uwzględnieniem czasu
Jeśli włączono uczenie z uwzględnieniem czasu, imputacja wartości null przebiega następująco:
-
Wszelkie wiersze w zestawie danych do uczenia, które mają wartości null dla wybranego indeksu daty, są usuwane podczas przetwarzania wstępnego. Wiersze te nie są używane do uczenia modeli.
-
W przypadku cech liczbowych imputacja wartości null jest przeprowadzana na podstawie interpolacji liniowej. Interpolacja liniowa jest również używana dla cech daty zaprojektowanych automatycznie.
-
W przypadku cech kategorialnych proces imputacji wartości null jest taki sam jak w przypadku nieużywania uczenia z uwzględnieniem czasu.
-
Jeśli używasz cech daty bez automatycznej inżynierii, proces imputacji wartości null jest taki sam jak w przypadku cech kategorialnych.
-
W przypadku cech kategorialnych, które są traktowane jako dowolny tekst, imputacja wartości null jest taka sama jak w przypadku cech kategorialnych.
Więcej informacji na temat uczenia uwzględniającego czas zawiera temat Tworzenie modeli uwzględniających czas.
Jak działa imputacja
Typowymi praktykami imputacji wartości null są następujące metody.
Wartości liczbowe
Dobrym podejściem domyślnym jest imputacja wartości średniej. Jeśli brakujące wartości mają rozkład normalny, przypomina to obciążenie środka huśtawki — nie wpływa to na ciężar żadnej ze stron. Należy jednak zawsze rozważyć, co ta wartość ma reprezentować. Jeżeli na przykład niektóre wartości ceny sprzedaży w Twoich danych są puste, to czy jest to spowodowane błędem bazy danych, czy też kupujący użył kuponu jako metody płatności? Czy 0 lub inna wartość niż średnia miałaby większy sens?
Wartości kategorialne
Dobrym podejściem domyślnym w przypadku wartości kategorialnych jest dodanie kolejnej kategorii i nazwanie jej „Inne”, „Nieznane” lub nawet „Brakujące”. Ta kategoria może zawierać dodatkową wariancję, jeśli brakujące wartości są rozłożone losowo, lub zyskać na znaczeniu cechy, jeśli istnieje znaczący związek między brakującą wartością a wartością celu.
Rozwiązaniem awaryjnym jest przypisanie średniej w postaci dominanty. Podobnie jak w przypadku wartości liczbowych zawsze należy rozważyć zarówno to, co wartość faktycznie ma reprezentować, jak i dlaczego może jej brakować. Jeśli wiesz, że większość brakujących wartości to prawdopodobnie dominanta, możesz przypisać dominantę. Jeśli wartość nie jest znana lub nie ma co do niej pewności, można przypisać wartość kategorialną za pomocą tekstu zastępczego, który jest nową unikatową wartością w zestawie danych.
Efekty imputacji wartości liczbowych
Imputacja wartości liczbowych 1 pokazuje wykres rozrzutu z linią najlepszego dopasowania. Mamy wartość liczbową wzdłuż osi kategorii (x) i wartość docelową wzdłuż osi wartości (y). Wydaje się to być dobrym dopasowaniem, ale uwzględnia tylko punkty danych, w których x jest znane.
W imputacji wartości liczbowych 2 dokonaliśmy imputacji wartości średniej. Brakujące wartości nie wydają się jednak losowe. Prowadzi to do przekrzywienia linii najlepszego dopasowania i wprowadzenia szumu, co zmniejsza ogólną dokładność modelu.
Wykres w Imputacji wartości liczbowych 3 pokazuje, jak by to wyglądało, gdybyśmy imputowali średnią, gdy brakujące wartości są rozłożone losowo. Innymi słowy, gdy wiedza o tym, czy wartość była obecna, czy też jej brakowało, nie dostarcza nam dodatkowych informacji. Losowe rozmieszczenie brakujących wartości nie zmienia linii najlepszego dopasowania. Gdybyśmy przypisali 0 zamiast wartości średniej, zmieniłoby to linię najlepszego dopasowania podobnie jak w imputacji wartości liczbowych 2.
Przykład: kwalifikacja do kredytu
W realistycznym przykładzie x byłoby rocznym dochodem, a y — kwotą kredytu, do której ktoś mógłby się kwalifikować. Oczekiwalibyśmy związku, w którym im więcej pieniędzy ktoś zarabia, tym więcej pieniędzy może pożyczyć. Wzór byłby podobny do imputacji wartości liczbowych 1 powyżej.
Wyobraźmy sobie, że ludzie, którzy zarabiają mniej, rzadziej podają swoje roczne dochody. W tym przypadku brakuje wartości x z określonego powodu. Przypisanie średniej dla tych wartości wypaczyłoby wyniki modelu. Wynik byłby podobny do imputacji wartości liczbowych 2.
Załóżmy teraz, że niektóre rekordy w bazie danych zostały losowo usunięte. Rekordy te zawierały dane o tym, ile pieniędzy zarabiają niektórzy ludzie, bez informacji o konkretnych osobach. W związku z tym wartość x jest losowo null. Efekt ten jest przedstawiony w imputacji wartości liczbowej 3 i jest to przypadek, w którym możemy bezpiecznie imputować brakującą wartość.
Inną kwestią do rozważenia jest: co by było, gdyby imputować 0 zamiast średniej? W przykładzie kwalifikacji do kredytu roczne dochody na poziomie 0 dolarów nie są raczej reprezentatywne. Spowodowałoby to wypaczenie modelu podobnie jak imputacja wartości liczbowych 2.
Efekty imputacji wartości kategorialnych
W powyższym przypadku liczbowym do imputacji brakujących wartości użyliśmy średniej. Prostą metodą w przypadku wartości kategorialnych jest użycie dominanty, która jest najczęściej występującą wartością. Z imputacją przy użyciu dominanty wiąże się część takich samych problemów jak przy imputacji średniej wartości liczbowej.
Na poniższym wykresie widać wzorzec brakujących wartości w Missing_1 względem celu, podczas gdy Missing_2 ma rozkład losowy. Widzimy to, ponieważ Missing_2 odpowiada ogólnej średniej wartości celu. Missing_1 przypomina imputację wartości liczbowych 2, a Missing_2 — imputację wartości liczbowych 3.
Różnica w stosunku do przykładu liczbowego polega na tym, że w tym przypadku zarówno Missing_1, jak i Missing_2 wypaczają rozpoznawanie wzorca. Wzorzec jest wypaczony tylko dla podzestawu danych, kategorii B, która byłaby wartością imputowaną w przypadku imputacji przy użyciu dominanty, ponieważ jest to największa kategoria.
Wypaczenie relacji między pojedynczą wartością a wartością celu nie jest jedynym ryzykiem związanym z imputacją, ale należy do najczęstszych i najłatwiejszych do oceny. Inne zagrożenia zwykle po prostu zwiększają szum i zmniejszają dokładność. Na szczęście ryzyko wypaczenia można znacznie zmniejszyć, odrzucając stosunkowo rzadkie wymiary. Często dyskutuje się o tym, jakie dokładnie poziomy rzadkości należy dopuścić w kolumnie lub wierszu, ale rzadziej zwraca się uwagę na to, że imputowanie wartości może potencjalnie zniekształcić dane tak, że nie będą one już reprezentatywne dla tego, co mają opisywać.