Jak porównać 2 zestawy danych za pomocą profilowania Pandas

Nov 25 2022
Przypadek użycia jakości danych z zaawansowaną funkcją EDA
Wizualizacja jest podstawą EDA. Kiedy mamy do czynienia z nowym, nieznanym zbiorem danych, inspekcja wizualna pozwala nam wyczuć dostępne informacje, narysować pewne wzorce dotyczące danych i zdiagnozować kilka problemów, którymi być może będziemy musieli się zająć.
Raport porównawczy profilowania pand (zrzut ekranu autorstwa autora)

Wizualizacja jest podstawą EDA. Kiedy mamy do czynienia z nowym, nieznanym zestawem danych, inspekcja wizualna pozwala nam wyczuć dostępne informacje, narysować pewne wzorce dotyczące danych i zdiagnozować kilka problemów, którymi być może będziemy musieli się zająć. Pod tym względem Pandas Profiling jest niezbędnym szwajcarskim nożem w pasku narzędzi każdego analityka danych. W moich poprzednich artykułach wspomniałem, jak profilowanie pand może być pomocne podczas wykonywania EDA szeregów czasowych , ale co by było, gdybyśmy mogli porównać dwa zestawy danych?

Ilu z nas rozpoczęło opracowywanie projektów związanych z nauką o danych i ma trudności ze zrozumieniem, ile uzyskujemy dzięki naszym transformacjom i inżynierii danych?

I właśnie tym zajmę się w dzisiejszym poście na blogu — jak wykorzystać najsłynniejszą pojedynczą linię kodu EDA do przyspieszenia procesu rozwoju nauki o danych i poprawy jakości danych. Pokażę Ci, jak wykorzystać funkcję raportu porównawczego Pandas-Profiling, aby usprawnić proces EDA i zilustrować jego potencjał w zakresie szybszego i inteligentniejszego przekształcania naszych danych.

Zestaw danych użyty w tym artykule można znaleźć w Kaggle, zestawie danych HCC autorstwa Miriam Santos (licencja: CC0: domena publiczna ). W tym konkretnym przypadku sztucznie wprowadziłem kilka dodatkowych problemów z jakością danych, aby pokazać, w jaki sposób wizualizacja może pomóc nam je wykryć i poprowadzić nas do ich skutecznego łagodzenia. Cały kod i przykłady są dostępne na GitHub, a jeśli potrzebujesz odświeżenia, koniecznie sprawdź ten blog , aby odkurzyć swoje umiejętności profilowania pand. A więc przejdźmy do naszego przypadku użycia!

Pandas Profiling: EDA na wyciągnięcie ręki

Zaczniemy od profilowania zbioru danych HCC i zbadania problemów z jakością danych sugerowanych w raporcie:

pip install pandas-profiling==3.5.0
    
      

Alerts shown in Pandas Profiling Report (scheenshot by author)

  • Duplikaty : 4 zduplikowane wiersze w danych;
  • Stała : Stała wartość „999” w „O2”;
  • Wysoka korelacja : kilka cech oznaczonych jako wysoce skorelowane;
  • Brakujące : brakujące wartości w polu „Ferrytyna”.

Usuwanie zduplikowanych wierszy : w zależności od charakteru domeny mogą istnieć rekordy, które mają te same wartości i nie jest to błąd. Jednak biorąc pod uwagę, że niektóre cechy w tym zbiorze danych są dość specyficzne i odnoszą się do indywidualnych pomiarów biologicznych (np. „Hemoglobina”, „MCV”, „Albumina”), jest mało prawdopodobne, aby kilku pacjentów zgłosiło te same dokładne wartości dla wszystkich cech . Zacznijmy od usunięcia tych duplikatów z danych:

Usuwanie nieistotnych funkcji : Stałe wartości w O2 odzwierciedlają również prawdziwą niespójność danych i nie wydają się zawierać cennych informacji dla rozwoju modelu. W rzeczywistych scenariuszach przypadków użycia dobrym standardem byłoby iterowanie z ekspertami domenowymi lub biznesowymi, ale na potrzeby tego przykładu przypadku użycia usuniemy ich z analizy:

Imputacja brakujących danych : zestaw danych HCC wydaje się również bardzo podatny na brakujące dane. Prostym sposobem rozwiązania tego problemu (unikania usuwania niekompletnych rekordów lub całych obiektów) jest zastosowanie imputacji danych. Użyjemy imputacji średniej, aby uzupełnić brakujące obserwacje, ponieważ jest to najpowszechniejsza i najprostsza technika imputacji statystycznej i często służy jako metoda bazowa:

Bezpośrednie porównanie: szybsze i inteligentniejsze iteracje danych

A teraz zabawa! Po zaimplementowaniu pierwszej partii przekształceń do naszego zbioru danych jesteśmy gotowi ocenić ich wpływ na ogólną jakość naszych danych. W tym miejscu przydatna jest funkcja raportu porównawczego profilowania pand. Poniższy kod przedstawia, jak zacząć:

Oto jak przedstawiają się oba raporty w porównaniu:

Porównanie danych oryginalnych i przekształconych (zrzut ekranu autorstwa autora)

Co możemy od razu zrozumieć z naszego przeglądu zbioru danych? Przekształcony zbiór danych zawiera jedną cechę kategoryczną mniej (usunięto „O2”), 165 obserwacji (w porównaniu do oryginalnych 171 zawierających duplikaty) i żadnych brakujących wartości (w przeciwieństwie do 79 brakujących obserwacji w oryginalnym zbiorze danych).

Ale jak te przemiany wpłynęły na jakość naszych danych? I jak dobre były te decyzje?

Zagłębmy się w to. Jeśli chodzi o zduplikowane rekordy, nie było szczególnego wpływu na rozkłady zmiennych i wzorce zbiorów danych po usunięciu. Imputacja brakujących wartości, która została wykonana, to inna historia.

Zgodnie z oczekiwaniami po wykonaniu imputacji danych nie ma brakujących obserwacji. Zwróć uwagę, jak zarówno liczba zer, jak i macierz pokazują różnice między obiema wersjami danych: w przekształconych danych „Ferrytyna” ma teraz 165 pełnych wartości, aw macierzy zerowej nie można znaleźć żadnych pustych miejsc.

Raport porównawczy: brakujące wartości (zrzut ekranu autorstwa autora)

Z raportu porównawczego możemy jednak wywnioskować coś innego. Gdybyśmy przyjrzeli się histogramowi „Ferrytyna”, zobaczylibyśmy, jak przypisanie wartości średniej zniekształciło oryginalny rozkład danych, co jest niepożądane.

Raport porównawczy: ferrytyna — wartości imputowane wydają się zniekształcać pierwotny rozkład cech (zrzut ekranu autorstwa autora)

Jest to również obserwowane poprzez wizualizację interakcji i korelacji, gdzie pojawiają się głupie wzorce interakcji i wyższe wartości korelacji w relacji między „Ferrytyną” a pozostałymi cechami.

Raport porównawczy: Interakcje między ferrytyną a wiekiem: wartości imputowane są pokazane w pionowej linii odpowiadającej średniej (zrzut ekranu autorstwa autora)
Raport porównawczy: Korelacje — wartości korelacji ferrytyny wydają się rosnąć po imputacji danych (zrzut ekranu autorstwa autora)

To pokazuje, że raport porównawczy jest nie tylko przydatny do podkreślenia różnic wprowadzonych po przekształceniach danych, ale dostarcza kilku wskazówek wizualnych, które prowadzą nas do ważnych spostrzeżeń dotyczących tych przekształceń: w tym przypadku należy rozważyć bardziej wyspecjalizowaną strategię imputacji danych .

Końcowe przemyślenia

W tym niewielkim przypadku użycia omówiliśmy przydatność porównywania dwóch zestawów danych w ramach tego samego raportu profilowania, aby wyróżnić przekształcenia danych wykonane podczas EDA i ocenić ich wpływ na jakość danych.

Niemniej jednak zastosowania tej funkcji są nieograniczone, ponieważ potrzeba (ponownej) iteracji oceny cech i kontroli wizualnej ma kluczowe znaczenie dla rozwiązań zorientowanych na dane . Od porównywania rozkładów pociągów , walidacji i zestawów testów lub kontroli jakości danych do bardziej zaawansowanych przypadków użycia, takich jak proces generowania danych syntetycznych .

Fabiana Clemente , CDO w YData

Przyspieszenie sztucznej inteligencji dzięki ulepszonym danym.