W literaturze z Data Science możemy znaleźć sporo artykułów, które opisują, jak z technicznego punktu widzenia robić eksploracyjną analizę danych (EDA). Zwykle jednak brakuje informacji, skąd brać inspiracje do stawiania hipotez w takiej EDA.
Dlatego w tym wpisie chciałbym się podzielić przemyśleniami, jak można podejść do szukania takich inspiracji. Jak zwykle, będę w znacznej mierze opierał się na własnych doświadczeniach. Jeśli masz jakieś pomysły, których tutaj nie uwzględniłem, daj mi koniecznie znać!
1. Rozmowy z ekspertami domenowymi i z klientem
Jeśli tworzysz rozwiązanie dla zewnętrznego klienta, pierwszym i najcenniejszym źródłem hipotez będzie właśnie on, Twój klient. Jeśli przychodzi do Ciebie z pomysłem na pewien algorytm, zapewne ma już pewne przemyślenia związane z tym tematem. Mogą one być bardziej lub mniej uświadomione, więc Twoim zadaniem będzie umiejętne zadawanie pytań, które pozwolą na odkrycie potrzeb Twojego klienta.
Przed projektem
Załóżmy, że masz zrobić analizę danych klientów banku, aby zbudować model oceniający ich zdolność kredytową. Zanim przystąpisz do analityki, dobrze będzie poświęcić kilka godzin na rozmowy z osobą reprezentującą bank. Dzięki nim zrozumiesz, skąd pojawił się pomysł na taki algorytm i jakie są oczekiwania. Może wiele lat doświadczeń pracy banku ukazało już pewne schematy lub zależności, które doprowadziły do pomysłu na całkowitą automatyzację? Jaki główny problem ma być rozwiązany przez algorytm? Dlaczego to, co jest teraz, nie jest wystarczające?
Zapytaj również, jak taki algorytm powinien działać. Na co, zdaniem klienta, najbardziej powinien zwracać uwagę? Które dane będą kluczowe i jakie zależności między nimi powinien móc wykryć model, by zwrócić poprawną odpowiedź?
Potrzebujesz również ustalić, w jaki sposób w tym momencie oceniana jest zdolność kredytowa. Podczas rozmowy ze specjalistami, którzy się tym zajmują, możesz zapytać, jakie czynniki biorą pod uwagę i jakimi regułami się kierują. Jakie przypadki są łatwe i typowe, a jakie są trudne? Jak często zdarzają się takie trudne przypadki i z czego one wynikają?
W końcu zapytaj wprost – czego w tym momencie nie wiadomo i jakie są hipotezy. Czego klient chciałby się dowiedzieć na podstawie danych? Czy są może jakieś kwestie, które go nurtują od dawna?
Każde takie pytanie może zrodzić wiele różnych hipotez, które następnie będziesz sprawdzać.
Zauważ, że pytania są na tyle uniwersalne, że powinny się sprawdzić również w innych dziedzinach, jak chociażby medycyna, gdzie Twój system ma wspomagać pracę lekarzy. Wówczas to oni będą specjalistami, od których potrzebujesz zebrać wiedzę domenową.
Jeśli budujesz własny produkt, którego pomysłodawcą sam jesteś, możesz te pytania zadać samemu sobie. Jaką masz intuicję na temat otaczającego Cię świata, która Ci mówi, że Twoje rozwiązanie ma szansę zadziałać? W jaki sposób mógłbyś sprecyzować tę intuicję, by postawić konkretne hipotezy?
W trakcie projektu
W Data Science bardzo ważne jest, żeby w trakcie trwania projektu mieć umożliwiony stały kontakt z klientem, a najlepiej z ekspertami domenowymi. Nie tylko przed rozpoczęciem projektu. Dzięki temu będziesz mieć możliwość prezentowania na bieżąco uzyskiwanych wyników i zbierania feedbacku.
Często możesz się dowiedzieć, że właściwie Twoje analizy tylko potwierdzają to, co było wiadomo (to dobra informacja – świadczy z reguły o dobrym wykonaniu analizy), ale możesz też wnieść cenne obserwacje ukazujące coś nowego. Bez konsultacji z ekspertami będzie Ci bardzo trudno to ocenić.
Takie rozmowy pozwalają na wspólne stawianie kolejnych hipotez na podstawie tego, co już udało się ustalić.
2. Ustalenie stanu wiedzy i algorytmów SOTA w danej dziedzinie
Chodzi o zrobienie dobrego researchu, aby się dowiedzieć m.in:
- Czy ktoś już robił podobne rzeczy?
- Jakie były zastosowane rozwiązania?
- Co się udało, a czego się nie udało osiągnąć?
- Jakie obserwacje się powtarzają, a w jakich są rozbieżności zdań?
Jeśli zaobserwujesz pewną powszechnie przyjętą opinię w danej dziedzinie, warto postawić to jako hipotezę i sprawdzić ją na Twoich danych. W omawianym tutaj na początku przykładzie może to być jakaś trywialna hipoteza, np. czy osoby o wyższych zarobkach cechują się większą terminowością w spłacaniu rat kredytu o ustalonej wysokości.
Pamiętaj jednak, że w przypadku bardziej zaawansowanej literatury te podstawowe założenia często są pomijane, gdyż są uważane za oczywiste. Dlatego analizując rozumowanie przedstawione w jakimś artykule, zwracaj pilną uwagę, czy nie ma tam milczącego wykorzystywania pewnych założeń. Tutaj może występować także problem z tym, że najlepsze algorytmy w niektórych branżach mają niejawny sposób działania, np. asystent inwestycyjny oparty o AI. W takich przypadkach szczególnie potrzebujesz umiejętności czytania między wierszami.
Warto zauważyć, że już na tym etapie możesz mieć bardzo ciekawe wnioski, które mogą nie być do końca zgodne z tym, co powszechnie się uważa w danej dziedzinie. Wówczas warto im się dokładniej przyjrzeć – może odkrywasz właśnie nieznane wcześniej obszary?
Rozważ również aspekty, w których nie ma zgodności w literaturze. Jeśli jedne osoby mówią, że świat działa tak, a inne że inaczej – masz idealną hipotezę do sprawdzenia w Twoich danych.
3. Wstępna analiza danych
Jeśli masz już zbiór danych, na którym będziesz pracować, na pewno zaczniesz od wykonania wstępnej, ogólnej analizy (jeśli to są dane tabelaryczne, polecam użyć biblioteki Pandas Profiling, którą opisałem w tym wpisie https://praktycznyml.pl/jak-w-2-minuty-analizuje-dowolne-dane-tabelaryczne/ ).
Taki wstępny rzut oka ukaże Ci jakie mamy cechy, jak są one zróżnicowane, jakie są między nimi podstawowe zależności, takie jak korelacje. Przyglądając się tym ogólnym informacjom, zazwyczaj będziesz chciał sprawdzić różne dodatkowe rzeczy, które mogą być wstępem do kolejnych hipotez, np.:
- Dlaczego występuje korelacja pomiędzy pewnymi cechami?
- Dlaczego pewne cechy są mniej, a inne bardziej zróżnicowane?
- Co oznaczają NULL-e w danych?
- Skąd się biorą outliery?
4. Twoja intuicja
Nawet jeśli nie jesteś ekspertem w danej dziedzinie, wiele hipotez możesz postawić na podstawie własnych doświadczeń z obserwacji funkcjonowania świata, gospodarki czy zachowań ludzi.
Przykładowo, nie musisz być farmaceutą, żeby się domyślić, że w sprzedaży niektórych leków będzie występowała silna sezonowość i warto ten czynnik uwzględnić, jeśli budujesz model do przewidywania wielkości sprzedaży leków.
5. Praca zespołowa
Myślę, że najbardziej efektywną formą pracy nad projektem Data Science jest praca w kilkuosobowym zespole. Najbardziej sprawdza się wówczas wtedy taka forma współdziałania, gdzie każdy dostaje zadanie mniej więcej na jeden dzień czasu i codzienne statusy pozwalają zweryfikować postęp.
Takie spotkania są też okazją do przedyskutowania dotychczasowych wniosków i zrobienia burzy mózgów na temat dalszych działań. Jest duża szansa, że wspólnymi siłami będzie dużo łatwiej postawić dalsze hipotezy, niż gdy próbujesz to zrobić samodzielnie.
Jeśli specyfika Twojej pracy wymusza samodzielne projekty, spróbuj chociaż mieć osobę, z którą przynajmniej raz w tygodniu możesz przedyskutować swoje postępy, pokazać wyniki i zastanowić się wspólnie, co możesz dalej robić. W Data Science jedną z najgorszych rzeczy jest samodzielna praca przez wiele tygodni w oparciu o pewien zbiór danych, przy braku możliwości przedyskutowania z innymi tego, co robisz. Może zabrzmi to brutalnie, ale w takiej sytuacji wiele wskazuje na to, że Twoja praca pójdzie na marne i nie będzie użyteczna dla nikogo, gdyż nie masz możliwości zweryfikowania, czy to, co robisz spełnia pewne założenia biznesowe.
6. Stosuj podejście zwinne (agile)
Na pewno pojęcie agile jest Ci znane (jeśli nie, to możesz o nim poczytać np. tutaj https://docs.microsoft.com/pl-pl/devops/plan/what-is-agile).
Pisałem już wcześniej o konieczności regularnej współpracy z klientem, która wpisuje się w tę filozofię. Kiedy jednak celem Twojej analizy danych jest zbudowanie jakiegoś modelu, bardzo istotne jest by być w stanie jak najszybciej dostarczyć działającą wersję Twojego rozwiązania i skonfrontować ją z docelowymi użytkownikami. Uwierz mi, że pojawią się problemy, na które nigdy nie wpadniesz, testując model w warunkach laboratoryjnych. Wówczas też ostatecznie zweryfikujesz, czy Twoje hipotezy były poprawne.
Może to wykracza trochę poza EDA, jednak jeśli celem jest zbudowanie praktycznego rozwiązania, pamiętaj że rzeczywistość zweryfikuje szybko Twoje analizy. Zatem z reguły nie ma sensu testowanie setek hipotez, tylko po wstępnym upewnieniu się, że model daje już jakąś wartość, warto przejść do rzeczywistych testów (najlepiej w formie A/B testów, o których możesz poczytać TUTAJ).
Podsumowanie
Pamiętaj, że weryfikacja hipotez jest podstawą Data Science. Jest ona konieczna zarówno w badaniach naukowych, jak i przy budowie modeli Machine Learning do praktycznych zastosowań. Dlatego jeśli chcesz skutecznie tworzyć jedno lub drugie, musisz być w stanie inteligentnie podchodzić zarówno do stawiania hipotez, jak i ich weryfikacji.
W tym artykule pokazałem Ci 6 sposobów, które mogą być przydatne w stawianiu hipotez. Mam nadzieję, że przynajmniej ich część jest dla Ciebie czymś nowym. Jeśli masz jakieś swoje sposoby, o których nie napisałem, czekam na odpowiedź od Ciebie!
I еnjoy ѡhat you ցuүs are սsually uρ too.
This sort of cⅼever work and reporting! Keep up the good works guys I’ve added yoᥙ guys to ouг blogroll.