#4: Prognozowanie, zarządzanie ryzykiem i wykrywanie niezgodności w danych
Słów kilka o praktycznym zastosowaniu machine learning w zarządzaniu budżetem marketingowym i planowaniu działań.
Cześć,
niewątpliwie ChatGPT zmienił sposób postrzegania AI i jego roli w codziennym użytkowaniu, acz warto zwrócić uwagę na to, że modele językowe to nie jest cały zakres możliwości.
Osławione LLMy są częścią Deep Learningu, który jest zbiorem Machine Learningu — dziedziny Sztucznej Inteligencji, która zajmuje się tworzeniem i badaniem algorytmów oraz modeli statystycznych, pozwalających systemom komputerowym poprawiać swoje działanie w oparciu o doświadczenie, bez konieczności jawnego programowania. Innymi słowy, to technika umożliwiająca maszynom uczenie się z danych, identyfikowanie wzorców i podejmowanie decyzji z minimalną interwencją człowieka. Warto jednak zauważyć kilka dodatkowych punktów:
LLMy wykorzystują głównie architektury głębokich sieci neuronowych, szczególnie transformatory, które są kluczowym elementem Deep Learning.
Chociaż LLMy są często postrzegane jako poddział Deep Learning, ich rozwój i zastosowania są tak znaczące, że czasami są traktowane jako osobna kategoria w ramach NLP.
LLMy łączą w sobie wiele aspektów AI, nie tylko Deep Learning. Wykorzystują również zaawansowane techniki przetwarzania języka naturalnego, reprezentacji wiedzy i czasami elementy rozumowania.
Najnowsze badania nad LLMami, szczególnie w kontekście modeli takich jak GPT (ang. Generative Pre-trained Transformer), wykraczają poza tradycyjne granice Deep Learning, wkraczając w obszary takie jak few-shot learning (nauka na małej próbce danych), zero-shot learning (analiza przykładów, które nigdy nie wystąpiły), i potencjalnie prowadząc w kierunku bardziej ogólnej sztucznej inteligencji.
Wspominam o tym, gdyż oprócz modeli językowej można zastosować AI również w innych obszarach, a w szczególności na konkretnych próbkach danych w celu weryfikacji hipotez i anomalii. Za przykład w tym wpisie posłuży Prophet — biblioteka open-source do prognozowania szeregów czasowych, zaprojektowana z myślą o automatyzacji procesu tworzenia dokładnych prognoz dla danych biznesowych. Jej głównym celem jest dostarczenie prostego w użyciu, ale jednocześnie elastycznego i wydajnego narzędzia do generowania wysokiej jakości prognoz dla szeregów czasowych o różnych charakterystykach.
Jak działa Prophet i jakie ma możliwości?
U podstaw działania Propheta leży zaawansowana analiza danych historycznych. Narzędzie to bierze pod lupę dostarczone informacje, takie jak dzienna sprzedaż czy liczba użytkowników w czasie, i automatycznie identyfikuje kluczowe wzorce. Prophet rozpoznaje ogólny trend — czy mamy do czynienia ze wzrostem, spadkiem, czy może stabilizacją. Jednocześnie wykrywa różne rodzaje sezonowości, od tygodniowych fluktuacji po roczne cykle. Co więcej, Prophet potrafi uwzględnić wpływ świąt i specjalnych wydarzeń na analizowane dane. Na podstawie tych wszystkich zidentyfikowanych elementów, narzędzie buduje kompleksowy model matematyczny, który najdokładniej opisuje historyczne dane i stanowi podstawę do generowania prognoz na przyszłość.
Możliwości Propheta są naprawdę imponujące. Przede wszystkim, narzędzie to automatycznie radzi sobie z różnymi typami sezonowości, bez potrzeby skomplikowanej konfiguracji ze strony użytkownika. Można też łatwo dodać informacje o świętach czy promocjach, które mają istotny wpływ na prognozowane wartości. Prophet jest na tyle inteligentny, że potrafi sam wykryć momenty, w których trend się zmienia, co jest niezwykle przydatne w analizie długoterminowych danych. Elastyczność narzędzia pozwala na dostosowanie wielu parametrów, dzięki czemu można je dopasować do specyfiki konkretnej branży czy firmy. Co więcej, Prophet radzi sobie z lukami w danych historycznych, co często stanowi problem w rzeczywistych scenariuszach biznesowych.
Jednak to, co naprawdę wyróżnia Propheta, to jego zdolność do generowania nie tylko konkretnych prognoz, ale także przedziałów ufności. Oznacza to, że oprócz przewidywanej wartości, otrzymujemy również zakres możliwych scenariuszy, co jest nieocenione w planowaniu strategicznym. Narzędzie oferuje też możliwość analizy poszczególnych komponentów prognozy, takich jak trend, sezonowość czy wpływ wydarzeń specjalnych. Ta przejrzystość pozwala na głębsze zrozumienie czynników kształtujących przyszłe wyniki. Dodatkowo, Prophet działa szybko nawet na dużych zbiorach danych, co czyni go praktycznym rozwiązaniem dla firm operujących na dużą skalę. Użytkownicy mogą także dodawać własne czynniki wpływające na prognozę, co zwiększa elastyczność i dokładność przewidywań.
Jak zastosować w praktyce?
Zastosowanie Propheta w praktyce otwiera fascynujący świat możliwości, ale wymaga pewnych umiejętności technicznych. Choć istnieją narzędzia z interfejsami graficznymi, prawdziwa moc i elastyczność Propheta ujawnia się, gdy sami potrafimy go obsłużyć. Dlatego warto rozważyć naukę podstaw programowania, szczególnie w języku Python, który jest powszechnie używany w analizie danych.
Nauka programowania to nie tylko umiejętność pisania kodu - to nowy sposób myślenia i rozwiązywania problemów. W kontekście Propheta i analizy danych, umiejętności programistyczne pozwalają na pełną kontrolę nad procesem prognostycznym. Możesz samodzielnie przygotowywać dane, dostosowywać parametry modelu do specyficznych potrzeb Twojego biznesu, a także tworzyć niestandardowe wizualizacje wyników.
Co więcej, umiejętności programistyczne otwierają drzwi do szerszego świata analizy danych i sztucznej inteligencji. Prophet to tylko jedno z wielu narzędzi - znając podstawy programowania, możesz eksplorować inne biblioteki i techniki, które mogą być przydatne w Twoim biznesie. To jak nauka nowego języka - początkowo może wydawać się trudna, ale z czasem otwiera przed Tobą nowe możliwości komunikacji i zrozumienia świata.
Oto kilka przykładów jego użycia:
Prognozowanie wydatków reklamowych z uwzględnieniem sezonowości
Ten kod demonstruje, jak Prophet może być wykorzystany do prognozowania wydatków reklamowych z uwzględnieniem sezonowości. Rozpoczynamy od generowania syntetycznych danych, które symulują realne scenariusze wydatków reklamowych. Dane te zawierają bazowy poziom wydatków, efekt sezonowy (który może reprezentować np. zwiększone wydatki w okresie świątecznym) oraz długoterminowy trend wzrostowy.
Następnie tworzymy model Prophet, ustawiając seasonality_mode na multiplicative. Oznacza to, że model zakłada, iż efekty sezonowe są proporcjonalne do ogólnego poziomu trendu, co często jest bardziej realistyczne w kontekście wydatków reklamowych. Model jest dopasowywany do naszych danych historycznych za pomocą metody fit().
Kluczowym elementem jest generowanie przyszłych dat za pomocą make_future_dataframe() i używanie ich do stworzenia prognozy. W tym przypadku prognozujemy na rok do przodu. Finalnie, wizualizujemy wyniki, co pozwala na szybką interpretację przewidywanych trendów w wydatkach reklamowych.
Wykrywanie anomalii w wydatkach
Ten przykład pokazuje, jak Prophet może być wykorzystany do wykrywania anomalii w wydatkach. Rozpoczynamy od generowania syntetycznych danych, które zawierają celowo wprowadzone anomalie. Te anomalie symulują nietypowe wzrosty wydatków, które mogą wystąpić w rzeczywistych scenariuszach biznesowych.
Po stworzeniu danych, dopasowujemy model Prophet i generujemy prognozę. Kluczowym elementem jest wykorzystanie górnych i dolnych granic przedziału ufności prognozy (yhat_upper i yhat_lower) do identyfikacji anomalii. Punkty danych, które wykraczają poza te granice, są uznawane za anomalie.
Optymalizacja alokacji budżetu marketingowego
Kod rozpoczyna się od generowania syntetycznych danych ROI dla czterech różnych kanałów marketingowych: wyszukiwania, mediów społecznościowych, e-mail marketingu i reklamy displayowej. Każdy kanał ma przypisany bazowy poziom ROI oraz pewną losowość, co symuluje rzeczywiste wahania efektywności kampanii.
Następnie, dla każdego kanału tworzymy oddzielny model Prophet, dopasowujemy go do danych i generujemy prognozę na kolejne 90 dni. Wyniki są wizualizowane na oddzielnych wykresach dla każdego kanału, co pozwala na łatwe porównanie przewidywanych trendów ROI.
Finalnie, kod oblicza i wyświetla przewidywany średni ROI dla każdego kanału na najbliższe 90 dni. Ta informacja jest kluczowa dla podejmowania decyzji o alokacji budżetu marketingowego.
Planowanie timingu kampanii marketingowych
Ten przykład kodu demonstruje, jak Prophet może być wykorzystany do planowania timingu kampanii marketingowych poprzez dogłębną analizę sezonowości sprzedaży. Rozpoczynamy od generowania syntetycznych danych sprzedażowych, które zawierają bazowy poziom sprzedaży, wyraźny efekt sezonowy oraz długoterminowy trend wzrostowy. Te elementy doskonale odzwierciedlają rzeczywiste wzorce sprzedażowe wielu firm.
W kodzie wykorzystujemy kilka kluczowych funkcji Propheta. Ustawiamy seasonality_mode na multiplicative, co jest szczególnie odpowiednie dla danych sprzedażowych, gdzie amplituda wahań sezonowych często rośnie wraz z ogólnym trendem. Dodajemy również informacje o świętach amerykańskich za pomocą model.add_country_holidays(country_name='US'), co pozwala modelowi uwzględnić wpływ świąt na sprzedaż - czynnik często kluczowy w planowaniu kampanii marketingowych.
Po dopasowaniu modelu, generujemy prognozę na kolejne 90 dni i analizujemy komponenty sezonowości za pomocą model.plot_components(forecast). Ta funkcja pozwala zobaczyć trendy roczne, tygodniowe i wpływ świąt na sprzedaż, co jest nieocenione w planowaniu marketingowym. Następnie identyfikujemy okresy wysokiej sprzedaży, analizując komponent roczny sezonowości.
Śledzenie postępu w osiąganiu celów biznesowych
Ostatni przykład kodu demonstruje, jak Prophet może być wykorzystany do śledzenia postępu w osiąganiu konkretnych celów biznesowych, w tym przypadku zwiększenia udziału w rynku. Kod rozpoczyna się od generowania syntetycznych danych reprezentujących historyczny udział firmy w rynku, uwzględniając niewielkie fluktuacje i ogólny trend wzrostowy.
W tym przykładzie tworzymy model Prophet i dopasowujemy go do historycznych danych, a następnie generujemy prognozę na rok do przodu. Kluczowym elementem jest określenie obecnego udziału w rynku i celu biznesowego - w tym przypadku zakładamy 5% wzrost. Na podstawie prognozy identyfikujemy przewidywaną datę osiągnięcia tego celu.
Kiedy Prophet nie ma sensu?
Prophet, choć potężne narzędzie do prognozowania szeregów czasowych, nie nadaje się do wszystkich scenariuszy analizy danych.
Nie jest odpowiedni do modelowania złożonych, nieliniowych zależności między zmiennymi, gdyż skupia się głównie na trendach i sezonowości. Prophet ma ograniczone możliwości w przypadku danych niestacjonarnych lub z nagłymi zmianami strukturalnymi, co może prowadzić do niedokładnych prognoz w dynamicznie zmieniających się warunkach rynkowych. Narzędzie to nie radzi sobie dobrze z prognozowaniem wielu zmiennych jednocześnie, co ogranicza jego użyteczność w analizie wielowymiarowej. Ponadto, może nie być najlepszym wyborem dla danych o wysokiej częstotliwości lub gdy kluczowe jest zrozumienie przyczynowości, a nie tylko wzorców czasowych. W przypadkach wymagających głębokiego wglądu w interakcje między zmiennymi lub gdy dane nie wykazują wyraźnych wzorców sezonowych, inne metody mogą okazać się bardziej odpowiednie.
To wszystko
Będę wdzięczny za informację zwrotną o tym, czy taka formuła newslettera podoba się. W razie pytań odpisz na tego mejla — chętnie odpowiem i pomogę.
Do przeczytania
Kacper






