Znaczenie Data Quality
w świecie Machine Learning

Piotr Krzeszewski - Data Scientist Integral Solutions

 

Machine Learning (Uczenie Maszynowe) nie jest możliwy bez danych, które zawierają potrzebne nam informacje, pozwalają nam na zadanie pytania oraz umożliwiają znalezienie wartościowych odpowiedzi, które przekształcą się we wnioski o dużej wartości biznesowej. Jakie cechy powinny mieć dane, aby móc je efektywnie wykorzystać w procesie uczenia maszynowego? Poniżej przeanalizuję kilka cech, które charakteryzują dobre dane. W każdym przypadku postaram się uzasadnić oraz zobrazować przykładami wagę tej cechy. Jak się okaże, nawet pozornie nieznaczne niedopatrzenia mogą mieć znaczny wpływ na wynik całego projektu. Problemy z danymi mają szczególnie duży wpływ na pracę zespołu Data Science. Na koniec przedstawię metody, które pozwolą zautomatyzować obsługę danych oraz zminimalizować koszty wynikające ze złych danych.

Cechy dobrych danych

Kompletność

Dane, które wykorzystujemy, powinny być kompletne na co najmniej trzech płaszczyznach głównych:

  • Zmienna
    Czy wszystkie zmienne, którą mogą mieć wpływ na nasze pytanie są zawarte w zbiorze uczącym? Wyobraźmy sobie sytuację, w której duży bank chciałby znaleźć klientów gotowych zaciągnąć kredyt. Takie badanie można wykorzystać w marketingu. Niestety, ktoś uznał, że nie ma znaczenia data, a ważny jest czas jaki upłynął od ostatniego zaciągnięcia kredytu. W tej sytuacji Data Scientist miałby utrudnione zadanie, ponieważ ciężko byłoby zaobserwować m. in. grupę klientów, którzy zapożyczają się na święta. Wykorzystanie kompletnego zbioru danych pozwoliłoby na monetyzację kolejnej, cennej informacji. 
  • Zakres
    Czy nasz zbiór danych obejmuje wszystkie zakresy konkretnych zmiennych? Załóżmy, że chcielibyśmy przygotować model przewidujący poziom wykorzystania anten dla operatora sieci komórkowej. Jeśli posiadalibyśmy dane tylko z jesieni oraz zimy, będzie nam ciężko poprawnie określić przewidywania stacji, które znajdują się w miejscowościach nadmorskich oraz miejscach, gdzie odbywają się znane letnie festiwale.
  • Rekord
    Czy każda obserwacja zawiera wszystkie dane, które są dostępne? Niech teraz naszym celem będzie personalizacja kampanii marketingowej dla klientów dużej sieci sklepów odzieżowych. Jeśli w przygotowanym zbiorze brakowałoby informacji o płci dla dużej części klientów, to spodziewamy się, że przygotowany model byłby zauważalnie gorszy, od modelu przygotowanego na kompletnym zestawie danych.

 

Unikalność

Zduplikowane dane zwykle stanowią poważny problem. Mogą się one pojawić w dwóch miejscach:

  • Duplikaty cech
    Dla wielu algorytmów używanych w procesach Data Science duplikaty stanowią problem. Po pierwsze wydłużają one czas działania algorytmu, ponieważ te same dane muszą być przetwarzane częściej niż raz. W niektórych przypadkach stanowi to też wyzwanie, ponieważ algorytm może mieć problem z "decyzją", która z cech jest ważniejsza. Prowadzi to do gorszych i niestabilnych (mniej powtarzalnych) wyników. Za duplikaty uznalibyśmy przedstawienie tej samej cechy w kilku jednostkach (np. wzrost klienta w metrach i centymetrach lub wartość rachunku netto i brutto).
  • Duplikaty rekordów
    Rzadszym problemem są duplikaty poszczególnych obserwacji. Jeśli duplikaty będą stanowić zauważalną część danych, to mogą one przekłamać wyniki. Wyobraźmy sobie sytuację, w której szukamy informacji o młodych klientach banku, którzy zakładają lokaty. Istnieje klient mieszkający na wsi, który założył kilkadziesiąt lokat. Jeśli przeprowadzimy analizę na zbiorze z wielokrotnie zduplikowanymi danymi tego klienta, to możemy otrzymać niemający odzwierciedlenia w rzeczywistości wynik sugerujący, że klienci ze wsi zakładają wielokrotnie więcej lokat niż ich rówieśnicy z miasta.

Aktualność

Inną klasę problemów może spowodować używanie nieaktualnych danych. W jakich sytuacjach może mieć to negatywny wpływ na skuteczność naszego modelu?

Weźmy za przykład sieć sklepów oferujących swoim klientom karty lojalnościowe w latach 2006-2009. Zarząd chciałby przewidzieć popyt na niektóre luksusowe produkty. Mając dane za lata 2006 do połowy 2008 roku, bardzo trudne byłoby przewidzenie sprzedaży w roku 2009, kiedy to nastąpiło znaczne ograniczenie konsumpcji spowodowane kryzysem ekonomicznym. Ta sytuacja podkreśla też fakt, że Data Scientist musi znać inne czynniki, które nie są widoczne w zbiorze danych, a wpłyną na przeprowadzaną analizę. 

Należy też zadbać o to, aby zbiór danych obejmował najnowsze dane, które możemy uzyskać. Niedopuszczalna byłaby sytuacja, w której Data Scientist przygotowałby model mający na celu wybranie najlepszej kampanii marketingowej dla każdego klienta i nie zostałyby mu udostępnione dane o wynikach ostatnich kampanii przrprowadzonych dla tych klientów.

Z podanych powyżej przykładów warto wyciągnąć dwa wnioski:

  • może być konieczne regularnie odświeżanie przygotowanego modelu, żeby obejmował aktualne dane. Częstotliwość tej operacji powinna być wybrana w zależności od modelowanego zagadnienia. Produkcja w fabryce może się zmieniać w cyklu tygodniowym, a dla zakładów rolnych może być wystarczający cykl półroczny lub kwartalny,
  • Data Scientist nie może wykorzystać danych, o których nie wie lub do których nie ma dostępu. Dlatego organizacja musi przygotować mechanizmy, które zadbają o właściwe rozprzestrzenianie wiedzy o istniejących zbiorach danych. Można próbować to realizować przez wyznaczenie osoby odpowiedzialnej za takie zadania (np. dedykowanego administratora danych), ale dla większych organizacji konieczne będzie znalezienie rozwiązań zautomatyzowanych.

Dokładność

Dla wielu osób, które żyją w świecie Data Science, jest to najważniejsza cecha danych. Dokładność danych jest konieczna do uzyskania poprawnego wyniku. Niestety, błędy mogą się pojawiać w wielu miejscach i z różnych powodów. Kilka przykładów:

  • błędne dane wpisane do systemu (przez użytkowników lub pracowników),
  • błędne sposoby przekazywania danych pomiędzy systemami,
  • błędne wczytanie danych w narzędziach do analizy,
  • błędne przekazanie danych do algorytmów uczenia maszynowego.

Problem z dokładnością danych może wystąpić na każdym etapie obsługi i przetwarzania danych. Niektóre z błędów będą trudne do wykrycia i praktycznie nie będzie istniała możliwość ich poprawy (w szczególności w przypadku wczytywania danych od użytkownika systemu). Obsługa danych jest podatna na błąd ludzki, dlatego warto automatyzować wszystkie procesy związane z ich dostarczaniem i przetwarzaniem.

Oprócz tego istnieją inne aspekty dbania o dokładność danych. Czy kolumny są dobrze opisane? Czy Data Scientist będzie w stanie określić znaczenie każdej zmiennej? Weźmy dla przykładu kolumnę nazwaną quarter_1_sales_sum. Choć z pozoru wydaje się ona dobrze określać dane, jakie są w niej zawarte, to cały czas pozostają zasadne pytania: 

  • Jakiego roku dotyczą te dane? 
  • Czy jest to sprzedaż netto czy brutto? 
  • Czy uwzględnia to zawarte umowy w tym okresie, czy zaksięgowane wpłaty? 
  • Jak są rozpatrzone zwroty towarów w tej zmiennej? 
  • Czy ta zmienna ma takie same znaczenie dla klientów indywidualnych i dla firm (w szczególności w kwestii płacenia podatku VAT)? 

Oczywiście nie wszystkie z tych pytań będą zasadne w każdej sytuacji, a dodatkowe informacje o zbiorze danych rozwieją część wątpliwości. Jednak takie nieścisłości mogą stanowić problem, prowadzić do błędów i opóźnień. Często zdarza się, że Data Scientist musi znaleźć osoby odpowiedzialne za dane, żeby zrozumieć ich znaczenie.

Należy też wspomnieć o zwykłej niedokładności pomiarów. Jeśli prowadzimy analizę materiałową lub części metryk nie mamy  dokładnie zmierzonych, to jak kształtuje się błąd dla tych zmiennych. Czy jest on stały w czasie? Czy informacje o niedokładność są precyzyjne i przekazane wraz z danymi?

Spójność 

Często pomijaną (i zwykle przyjętą za prawdziwą) własnością danych jest ich spójność. Podobnie jak przy poprzednich zagadnieniach złamanie tej cechy może sprowadzić problemy w różnych sytuacjach. Przygotowując się do analizy Data Science, powinniśmy znaleźć odpowiedzi na następujące pytania:

  • Czy jesteśmy w stanie powiązać dane z różnych systemów z jednym obiektem (np. konkretnym klientem, unikalnym produktem)? 
  • Czy systemy, których używamy korzystają z tych samych formatów danych (np. format numeru telefonu, adresu)?
  • Czy wszystkie wykorzystane zbiory danych mają ten sam poziom precyzji (np. lokacja w jednym systemie jest określona z dokładnością do państwa, a w drugim do dzielnicy miasta)?
  • Czy dane używają tych samych jednostek? Stosunkowo łatwo jest wykryć różnicę między kilogramami i tonami, ale niezgodność między kilometrami i milami może zostać niezauważona i prowadzić do trudnych do naprawienia w przyszłości błędów.
  • Czy dane dotyczące czasu są wyrażone w ten sam sposób? Czy używają tej samej strefy czasowej?

Problemy z niespójnymi danymi są znane od dawna. Można podać przykład projektu NASA, który zakończył się utratą sondy, ponieważ pomieszano jednostki imperialne z układem SI.

Ważność

Ostatnią cechą, o której chcemy wspomnieć w kontekście dobrych danych jest ich ważność. Podobnie jak w poprzednich przypadkach, można ją rozpatrywać na różnych płaszczyznach. 

Najpierw chciałbym się skupić na aspekcie, który nie jest bezpośrednio związany z danymi, ale kluczowy dla opłacalności całego procesu. Przed rozpoczęciem analizy danych należy zastanowić się, czy to pytanie, które zadajemy zespołowi Data Science jest rzeczywiście ważne w sensie biznesowym. Czy nie istnieją zagadnienia, które mogą wygenerować większe oszczędności lub zyski? Należy pamiętać, że zespół Data Science ma często liczne doświadczenia związane zarówno z częścią techniczną, jak i biznesową pozyskaną podczas pracy w najróżniejszych projektach. Z pewnością warto zasięgnąć opinii zespołu Data Science, który może wskazać zagadnienia, gdzie dalsze działania mogłyby okazać się najbardziej opłacalne.

Ważność należy też rozpatrywać w kontekście przygotowania i użycia danych. Czy Data Scientist otrzymał wszystkie dane, które może wykorzystać w analizie? Trzeba pamiętać, że to właśnie Data Scientists najlepiej wie, które dane warto wykorzystać, więc to właśnie oni powinni podejmować decyzję w tej kwestii. Można to zobrazować na przykładzie banku, który chciałby wybrać grono klientów, do których warto zadzwonić z nową ofertą. W takim przypadku należy rozważyć wiele różnych rodzajów danych - dane osobowe, historię kredytową, reakcję na poprzednie próby kontaktu. Jednak, co ciekawe, w jednym z podobnym projektów okazało się, że bardzo ważne jest zachowanie użytkownika na stronie internetowej. Pominięcie ważnego zbioru danych, może skazać projekt na niepowodzenie już na samym początku. 

Wpływ jakości danych na zespół Data Science

Zacząłem ten wpis od stwierdzenia, że uczenie maszynowe nie jest możliwe bez danych. Powiedziałbym jednak, że jest możliwe bez dobrych danych. Dobry Data Scientist powinien poradzić sobie z niedokładnymi, źle opisanymi danymi, które są niespójne i zawierają duplikaty. Analizę można też przeprowadzić z wykorzystaniem niekompletnych czy nieaktualnych danych (będzie to miało wpływ na otrzymany wynik).

Jednak to wszystko kosztuje czas. Często powtarzane jest stwierdzenie, że obróbka danych to około 80% procent całego procesu Data Science. Jeśli Data Scientist musi poświęcić dodatkowe godziny na wykrycie duplikatów, sprawdzenie poprawności użytych jednostek, czy dni na dokładne ustalenie znaczenia poszczególnych zmiennych, to koszt całego procesu znacznie rośnie. Co gorsze, pierwsze efekty, które pomogą ukierunkować dalszą pracę pojawią się znacznie później.

Dostarczanie złych danych do analizy ma też negatywne skutki wykraczające poza dany projekt. Data Scientist szybko straci zaufanie do danych, jeśli okaże się, że sam musi odpowiadać za jakość. Będzie niejako zmuszony do sprawdzania jakości wszystkich danych, nawet jeśli część z nich jest lepszej jakości. Po drugie może to wpływać na morale zespołu Data Science. Jeśli podczas projektu zostaje poświęcona znaczna ilość czasu na obróbkę pewnego zbioru danych i trzeba powtórzyć to przy kolejnej analizie, to zadanie staje się męczące i demotywujące.

Rozwiązanie problemów związanych z jakością danych

Co w takim razie należy zrobić, żeby nasze dany były dobrej jakości?

Potrzebne są dwa elementy. Po pierwsze w organizacji muszą być wyznaczone osoby, które odpowiadają za jakość tych danych. Po drugie konieczne jest wspieranie się odpowiednimi narzędziami, żeby zapewnić poprawną obsługę danych.

W każdej organizacji dbającej o dane, należy rozważyć kilka rozwiązań:

  • katalog danych. Narzędzie, które zawiera informacje o zbiorach danych posiadanych przez organizację. Dzięki temu administrator czy Data Scientist będzie mógł sprawdzić jakie zbiory danych są dostępne oraz co w nich się znajduje. Katalog danych pomaga też w zabezpieczeniu danych oraz zadbaniu o wyraźne określenie odpowiedzialności za poszczególne zbiory.
  • narzędzia do obsługi Master Data (danych kluczowych). Każda organizacja posiada część danych, które są najważniejsze dla danej organizacji (jak lista klientów, produktów czy placówek). Zwykle dane te są używane w wielu systemach. Nie można pozwolić sobie na sytuację, żeby dochodziło do niespójności między tymi danymi - żeby w danych istniało "kilka wersji prawdy".
  • narzędzia do Data Quality (jakość danych). Pozwalają one kontrolować jakość danych, znajdować problemy oraz wyznaczać własne reguły, które zapewnią, że wszystkie dane będą odpowiedniej jakości.
  • silnik przetwarzania danych, który wesprze automatyczne operacje i zapewni aktualność danych.

 

      

 

 

CZYTAJ DALEJ NASZ BLOG


integralsolutions

Integral Solutions sp. z o.o.
ul. Wspólna 35 lok. 1
00-519 Warszawa 

22 828 33 05 - Sekretariat

22 692 45 38 - Dział Handlowy

22 692 45 36 - Marketing

22 829 81 32 - HR

22 692 45 37 - Szkolenia

      

 biuro@integralsolutions.pl

 

   +48 22 692 45 38
 

22 828 33 05 - Sekretariat

22 692 45 38 - Dział Handlowy

22 692 45 36 - Marketing

22 829 81 32 - HR

22 692 45 37 - Szkolenia

 

   biuro@integralsolutions.pl

 

ul. Wspólna 35 lok. 1, 00-519 Warszawa

 

      

 

więcej