Czym jest self w Pythonie: przykłady z życia wzięte
Czym jest self w Pythonie: przykłady z życia wzięte
Prognozowanie jest ważnym aspektem analizy danych, ponieważ pozwala firmom podejmować świadome decyzje dotyczące przyszłości na podstawie danych historycznych. Skutecznym sposobem wykonania tego zadania jest wykorzystanie modelu prognozowania usługi LuckyTemplates przy użyciu języka Python. LuckyTemplates to popularne narzędzie analizy biznesowej, które umożliwia użytkownikom tworzenie interaktywnych wizualizacji danych, raportów i pulpitów nawigacyjnych.
W tym samouczku dowiemy się, jak utworzyć model prognozy w usłudze LuckyTemplates przy użyciu języka Python. Będziemy używać Pythona w Power Query do tworzenia prognozowanych wartości i umieszczania ich w wizualizacjach LuckyTemplates. Możesz obejrzeć pełny film tego samouczka na dole tego bloga .
Spis treści
Przykłady modeli prognozowania usługi LuckyTemplates
Poniżej przedstawiono niektóre modele prognozowania usługi LuckyTemplates, które pokazują, co chcemy osiągnąć w tym samouczku. Są to rzeczywiste wyświetlenia strony ujawniające tygodniową sezonowość i niektóre sezonowe wartości szczytowe danych.
Pod koniec widzimy rosnący trend w naszych danych, który chcemy wykorzystać w naszym modelu.
Model prognozowania usługi LuckyTemplates: kontrole i ograniczenia
Poniżej znajduje się model prognozy 30-dniowej utworzonej przy użyciu usługi LuckyTemplates. Ma taką samą sezonowość jak rzeczywiste odsłony stron, aw LuckyTemplates mamy również opcje kontrolowania niektórych danych.
Możemy to zrobić, otwierając Analytics w okienku Wizualizacje . Następnie najedź kursorem na Prognoza > Opcje .
Umieść 30 dni w długości prognozy i ustaw przedział ufności na 95%. System może przewidywać sezonowość przy domyślnych ustawieniach, ale możemy też dodać 7 , aby reprezentować tygodniową sezonowość.
Kliknij Zastosuj i powinniśmy otrzymać model podobny do powyższego.
Analiza trendów dla modeli prognozowania w Pythonie i LuckyTemplates
Usługa LuckyTemplates świetnie radzi sobie z modelowaniem sezonowości. Jednak jego linia trendu nie działa tak samo.
Aby rozpocząć analizę trendu , włącz linię trendu w panelu Wizualizacje .
Od razu widać trend wzrostowy. Powinniśmy być w stanie dodać ten trend do naszych danych, który następnie wpłynie na prognozę.
Możemy to zrobić za pomocą naszego modelu Pythona . Jak widać na poniższym modelu, trend nabrał sezonowości, zamiast pozostawać na stałym poziomie.
Używanie kodu Pythona do prognozowania
Wykorzystanie Pythona do osiągnięcia naszego celu nie jest trudnym zadaniem. Aby rozpocząć, otwórz notatnik Jupyter .
Wprowadź dane, których potrzebujemy: pandas, matplotlib.pyplot, seaborn i ExponentialSmoothing .
Istnieją inne modele, które prawdopodobnie będą dokładniejsze, ale będą wymagały większej optymalizacji.
Wprowadzimy również sezonowość_dekompozycję , aby zobaczyć sezonowość i trend. Następnie użyj prognozy internetowej web_forecast.xlsx , aby odczytać nasze dane.
Następnie zmień datę, korzystając z poniższego kodu.
Ustaw indeks naszego zestawu danych na Date i nazwij go ts. Następnie ustaw częstotliwość zbioru danych. Wiemy, że mamy dane dzienne, więc ustawmy częstotliwość jako d jak w dzień i zapiszmy jako ts .
Na koniec wykreśl wykres za pomocą ts.plot ( ).
Po wykreśleniu powinniśmy zobaczyć dokładnie to, co widzieliśmy w naszym notatniku LuckyTemplates.
Aby lepiej zrozumieć składowe naszego aktualnego trendu, możemy użyć następującego kodu.
Pierwszy model to nasze Actuals . Obok znajduje się linia trendu, którą wybieramy za pomocą funkcji season_decompose(ts).plot(); .
To jest trend, który musimy dodać do modelu.
Mamy również sezonowość , którą możemy dodać zarówno do modelu LuckyTemplates, jak i modelu Wygładzanie wykładnicze.
Nasz ostatni model pokazuje Reszty lub te, które są nieoczekiwane w danych, które są reprezentowane przez punkty. Zauważ, że gdy zbliżamy się do końca naszych danych, widzimy, że dzieje się o wiele więcej zdarzeń.
Szkolenie modelu
W naszym modelu musimy trenować nasze dane, po czym zwykle przeprowadzane są testy. Jednak w tym przypadku nie będziemy testować naszego modelu, ponieważ wykorzystamy tylko to, co daje nam model.
W naszym zbiorze danych jest 298 dni, ale w tym przykładzie potrzebujemy, aby model pamiętał tylko 290 z tych dni. Dzieje się tak, ponieważ nie chcemy przekazywać modelowi wszystkich danych, których nie może się nauczyć i które w końcu po prostu skopiuje.
Zasadniczo mamy ten zestaw treningowy obejmujący 290 dni z 298.
Następnie użyj ExponentialSmoothing dla naszego modelu. Następnie przekaż zestaw danych szkoleniowych, który wynosi 290 dni, i użyj add (additive) dla naszego trendu, mul (multiplikatywnego) dla naszego sezonu i 7 dla okresów sezonowych. Następnie dopasuj te dane do modelu.
Trendy addytywne i multiplikatywne
Przyjrzyjmy się szybko trendom addytywnym i multiplikatywnym.
W modelu addytywnym trend dodaje się powoli, podczas gdy w modelu multiplikatywnym rośnie wykładniczo i też sporo się dzieje. Możemy użyć jednego z dwóch, aby uzyskać inny typ prognozy.
Możemy bawić się metodami addytywnymi i multiplikatywnymi, aby zmodyfikować nasze przewidywania. Nasze obecne dane wyraźnie rosną, więc konieczne jest użycie dodatku, ale możemy też spróbować użyć multiplikatywu, aby zobaczyć, co otrzymamy.
Na przykład zmień sezonowość z mul na add .
Uruchom dane i obserwuj, jak zmienia się prognoza.
Podobnie możemy zmienić trend z add na mul .
To powinno dać trend multiplikatywny, który jest nieco większy.
Po wypróbowaniu możliwych kombinacji okazało się, że użycie mul zarówno dla trendu, jak i sezonowości daje NAJLEPSZY wynik.
Gdy mamy ten model prognozy, możemy go użyć do prognozowania z 30-dniowym wyprzedzeniem.
Implementacja usługi LuckyTemplates
Utwórzmy ten sam model prognozowania usługi LuckyTemplates w naszym notesie usługi LuckyTemplates.
W naszej prognozie LuckyTemplates przejdź do Wizualizacje > Analiza > Opcje. Zwróć uwagę, jak ustawiliśmy Długość prognozy na 30 dni.
Zobaczmy, jak możemy bardzo łatwo zaimplementować ten kod w dodatku Power Query.
Kliknij Przekształć dane.
W edytorze dodatku Power Query wprowadź dane i dodaj kolumnę niestandardową dla kategorii . Użyj Rzeczywistych , abyśmy mogli później oddzielić Rzeczywiste od Prognoz.
Jeśli przejdziemy do zapytania Forecasts , zobaczymy mniejszy zestaw danych odpowiadający 30 dniom w przyszłość.
Przeglądanie skryptu Pythona
Nasz skrypt Pythona zawiera podobne informacje. Najpierw wprowadzamy zestaw danych, zapisujemy go jako df , zmieniamy datę na datetime i ustawiamy częstotliwość na d (dzień).
Wprowadzamy również nasz model ExponentialSmoothing firmy holtwinters . Bierzemy pierwsze 290 dni jako nasz zestaw treningowy, a następnie dodajemy te dane do modelu.
W naszym modelu ExponentialSmoothing dodajemy dane treningowe i ustawiamy zarówno trendy, jak i sezonowość na mul (multiplikatywną), a okresy sezonowe na 7 dni. Następnie dopasowujemy nasz model.
Następnie otrzymujemy nową ramkę danych lub tabelę z naszą prognozą. Zresetowaliśmy indeks i upewniliśmy się, że mają nazwy Data i Pageviews , aby odpowiadały tym, które mamy w naszych oryginalnych danych. Na koniec klikamy OK.
Na wyjściu otrzymujemy wszystkie te zmienne w danych.
Przejdź do zastosowanych kroków i kliknij opcję Dodano kolumnę . Spowoduje to otwarcie tabeli z naszymi przewidywanymi wartościami i niestandardową kolumną, której kategorią jest prognoza .
W następnym zapytaniu po prostu dołączamy dwa zestawy danych, w których mamy Rzeczywiste i Prognozy .
Kliknij Zamknij i zastosuj.
Model nieco się zmienił, gdy zastosowaliśmy metodę multiplikatywną.
W porównaniu do LuckyTemplates, możemy z łatwością wykonać prognozę i nieco bardziej zoptymalizować model, zmieniając addytywny charakter trendu i sezonowość w Pythonie . Możemy również dodać te prognozy do naszego rzeczywistego zbioru danych.
Tworzenie prognoz przyszłych w usłudze LuckyTemplates przy użyciu języka DAX
Jak przeprowadzać analizę trendów w usłudze LuckyTemplates przy użyciu języka DAX
Zarządzanie sezonowością w analizie budżetu — zaawansowana usługa LuckyTemplates
Wniosek
W tym blogu omówiliśmy proces tworzenia modelu prognozy w usłudze LuckyTemplates przy użyciu języka Python . Integrując Pythona z LuckyTemplates, możemy uzyskać dostęp do szerokiej gamy narzędzi do analizy i modelowania danych, co pozwala nam tworzyć bardziej zaawansowane prognozy.
Dzięki umiejętnościom nabytym w tym samouczku możesz teraz tworzyć własne modele prognostyczne w usłudze LuckyTemplates i używać ich do bezpiecznego planowania przyszłości. Pamiętaj, że prognozowanie to proces iteracyjny, więc nie wahaj się eksperymentować z różnymi algorytmami i technikami, aby znaleźć ten, który najlepiej sprawdza się w przypadku Twoich danych, i stale sprawdzaj i aktualizuj swój model w miarę napływu nowych danych.
Wszystkiego najlepszego,
Gaelim Holland
Czym jest self w Pythonie: przykłady z życia wzięte
Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.
Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.
W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.
W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.
Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.
Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.
W tym samouczku omówiono idee materializacji pamięci podręcznych danych oraz ich wpływ na wydajność języka DAX w dostarczaniu wyników.
Jeśli do tej pory nadal korzystasz z programu Excel, jest to najlepszy moment, aby zacząć korzystać z usługi LuckyTemplates na potrzeby raportowania biznesowego.
Co to jest brama LuckyTemplates? Wszystko co musisz wiedzieć