Post

Uczenie się maszyn w codziennej działalności - przewidywanie wydajności sieci współdzielenia samochodów

Jednym z mniej dyskutowanych urządzeń do nauki maszyn jest przewidywanie szeregów czasowych, które mogą być wykorzystane do przewidywania przyszłych wartości metryk biznesowych, ale także do określenia sezonowości popytu w danym handlu. Tutaj chcę pokazać jeden dokładny przykład tego, jak to działa - i dlaczego jest to tak korzystne.

Będziemy stosować podejście Gartner's Prescriptive Analytics w celu zebrania informacji na temat działalności sieci Traficar car sharing, wglądu w nią i prognozowania. Dowiemy się, jak dokładnie jesteśmy w stanie przewidzieć wykorzystanie floty samochodowej poruszającej się obecnie po ulicach Wrocławia - naszego rodzinnego miasta.

Hindsight

Być może pamiętają Państwo naszą analizę elektrycznej sieci współdzielenia samochodów Vozilla, w 2018 roku, kiedy to opublikowaliśmy białą księgę opisującą, czego możemy się nauczyć z długotrwałej obserwacji mapy dostępności samochodów. Przeanalizowaliśmy półroczne dane, ale jest jedna rzecz, której wtedy nie powiedzieliśmy: nie tylko zeskrobaliśmy internetowe API Vozilli, ale także ich lokalnego konkurenta, firmę car-sharingową o nazwie Traficar.

Minęło już trochę czasu i jak piszę te słowa, już od ponad 21 miesięcy skrobamy stronę internetową Traficara co minutę.

W poniższej analizie, scraping stron internetowych był jedynym źródłem danych i nie możemy zagwarantować ich dokładności. Wszelkie wnioski dotyczące dochodów lub rentowności firmy Traficar mogą być po prostu błędne.

Pojedynczy, odizolowany snapshot danych API nie dostarcza wielu informacji - przynosi nam jedynie listę samochodów dostępnych do wynajęcia w danym momencie, wraz z poziomem paliwa i współrzędnymi. Dopiero gdy zaczniemy śledzić takie dane dla dłuższych okresów czasu, możemy rozpocząć odtwarzanie zdarzeń i śledzić pojawiające się wzorce.

Śledząc działalność Traficara w naszym mieście Wrocławiu, pierwsze pytanie powinno brzmieć: ile samochodów jest/było dostępnych do wynajęcia?

Po pogrupowaniu naszych rekordów według dni i zliczeniu dziennych unikalnych numerów tablic, widzimy następujący wykres - dostępnych jest do 149 samochodów na raz, ale w danym przedziale czasu, dokładnie 200 unikalnych samochodów obsługiwało region. Niektóre z nich zostały dodane, inne zniknęły - na krótki okres czasu dostępnych było również kilka elektrycznych ZOE Renault. Jednak w poniższej analizie skupimy się tylko na przejazdach samochodem osobowym Reno Clio, które stanowią ponad 95% całego ruchu firmy.

Jeśli chodzi o działalność w zakresie wynajmu, to odtworzenie zdarzeń związanych z poszczególnymi samochodami wymaga pewnej pracy. Po pierwsze, dla każdego pojazdu musimy zebrać serię nieprzerwanych, minutowych raportów w "dostępne", złożone okresy, które rozpoczynają się i kończą o znanych godzinach. Następnie jesteśmy w stanie zidentyfikować przerwy pomiędzy takimi okresami, które stanowią okresy "wynajmu". Na przykład, jeżeli samochód zniknie w jednym miejscu i czasie, a pojawi się ponownie w innym, możemy określić czas trwania i ruch tego konkretnego wynajmu.

W odróżnieniu od Vozilli, Traficar wyposażony jest w klasyczne samochody spalinowe, które nie wymagają żadnego doładowania, więc prawie każdy z tych "wypożyczeń" jest rzeczywiście rzeczywistym wypożyczeniem. Aby wyeliminować wyjątki, zrzucamy kilkaset imprez dłuższych niż 12 godzin, analizując później ponad 213 000 krótszych.

Przez "jakąś pracę" rozumiemy oczywiście pisanie i uruchamianie skryptów, które przechodzą przez prawie milion plików, wydobywając znacznie ponad sto milionów rekordów, obejmujących działalność 200 samochodów w ciągu 21 miesięcy. Jak zwykle, musimy załatać kilka małych dziur w danych (jak brak minuty czy dwóch tu i ówdzie) i poradzić sobie z dłuższymi lukami w danych - zazwyczaj spowodowanymi przez obsługę strony internetowej Traficara. W dużej mierze ignorujemy takie dziury, ponieważ ponad 99% danych jest poprawnych i zdecydowanie wolimy skupić się na długoterminowych trendach, a nie na krótkoterminowych wahaniach.

Ile więc czynszów i rezerwacji odnotowaliśmy każdego dnia? Podobnie, ile minut wszystkie one sumowały?

Czas trwania pojedynczego wyjazdu nie zmienia się wiele w analizowanym okresie, ale możemy zauważyć dziwną popularność w odniesieniu do wydarzeń trwających 14 i 24 minuty.

Ponieważ limit rezerwacji samochodów wynosi 15 minut i może być przedłużany co 5 minut, może wzory 14/24 minutowe pochodzą od samochodów, które w ogóle się nie poruszały? Dodajmy trochę koloru dla wydarzeń, w których odległość pomiędzy miejscem rozpoczęcia a miejscem zakończenia jest mniejsza niż 10 metrów. Kiedy już to zrobimy, nasze podejrzenia łatwo się potwierdzą, ponieważ około 16% zdarzeń to porzucone rezerwacje. Od teraz będziemy je ignorować.

Możemy teraz przyjrzeć się efektywności wykorzystania sieci samochodowej - a konkretnie liczbie minut, jakie średnio każdy samochód był wypożyczany każdego dnia. Wygląda na to, że z czasem obywatele przyzwyczaili się do Traficar jako sposobu dojazdu do pracy.

Ponadto, pomimo zmniejszenia liczby dostępnych samochodów, średni czas trwania pojedynczego wynajmu wzrósł o 10 minut. Niestety, nie możemy znać czasu trwania przerw w każdym wynajmie, więc nie jesteśmy w stanie oszacować dochodów operatora.

Wgląd

Podczas pracy z danymi, jednym z głównych celów jest odkrywanie ukrytych zależności i zdobywanie wiedzy, która wcześniej była niedostępna. Na przykład, dzięki takiemu podejściu możemy odkryć przebieg pojazdów Traficara. Oczywiście firma o tym wie, ale API zaczęło zatrzymywać tę konkretną zmienną około dwa miesiące po rozpoczęciu zbierania danych. Po 9 stycznia 2018 roku, pole "distanceAccumulated" w odpowiedzi API zostało ustawione na stałą wartość 1.000 km.

Na szczęście w tym czasie samochody były napełniane gazem około 100 razy, dzięki czemu możemy obliczyć średnie zużycie paliwa (a raczej dystans przejechany na jednym litrze benzyny). Korelacja pomiędzy przejechanym dystansem a spaloną benzyną jest wyraźnie liniowa.

Według producenta, Renault Clio TCe 90 powinien spalać do 6 litrów gazu na 100 km w całkowicie sztucznym, ale standardowym "cyklu mieszanym". Rzeczywiste dane z prawdziwego ruchu miejskiego pokazują średnie zużycie znacznie powyżej 10 litrów na 100 km, co daje 8,98 km przejechanych na jednym litrze gazu.

Mając tę liczbę, możemy łatwo oszacować przebieg całej floty, stosując ją do znanego w całym okresie zużycia paliwa. Wykres wygląda teraz bardziej kątowo, ponieważ tankowanie odbywa się co kilkaset kilometrów. Jeśli mamy rację, niektóre samochody Traficar przejechały już 10.000 km.

Foresight

Kiedy prowadzisz ciągły serwis, stały monitoring jest niezbędny, aby wiedzieć, co dzieje się tu i teraz. Tablice rozdzielcze online są powszechnym narzędziem analitycznym, pomagającym dyspozytorom i pracownikom obsługi technicznej elektrowni jądrowych, usługom sieci energetycznej, zarządzaniu flotą firmową, a nawet dostawcom usług w chmurze, a także skalowalnym w dół do maleńkich operatorów handlu elektronicznego i pojedynczych stron internetowych.

Ale "tu i teraz" to nie wystarczy. Musisz zadbać o to, co będzie dalej (lub nawet dalej w przyszłości) i jak będziesz reagować, gdy to się stanie. W przypadku zarządzania flotą car sharing, będziesz (i powinieneś) chcieć przewidzieć popyt, ale także określić zysk krańcowy, jeśli/gdy zmienisz podaż.

Wpisz Machine Learning i prognozowanie szeregów czasowych. Ogólna idea jest banalna: zasilić algorytm danymi historycznymi, pozwolić mu znaleźć wzorce i wewnętrzne zależności, a następnie zastosować odkryte reguły do przewidywania przyszłych wartości.

Jest tylko jeden problem - nie jesteśmy w stanie przewidzieć liczby przejazdów czy minut czasu wynajmu, ponieważ zależy on ściśle od liczby dostępnych samochodów. Ta ostatnia wartość nie jest elastyczna, ponieważ leasing samochodów ma ścisłe terminy, niektóre pojazdy zostaną uszkodzone i tak dalej. Możemy jednak monitorować i przewidywać wykorzystanie floty, w którym to przypadku numer samochodu stanie się niezależnym parametrem. Jak widzimy, średnio około 10% samochodów jest wynajmowanych, ale w zależności od godziny i dnia tygodnia, wartość ta będzie się wahać od 0% do ponad 30%. Ogólnie rzecz biorąc, popyt na wspólne korzystanie z samochodów ma silną sezonowość, z wyraźnymi wzorcami dziennymi, tygodniowymi i miesięcznymi.

Kiedy przybliżymy się do jakiegoś losowego 7-dniowego przedziału, to wygląda to tak:

Do tworzenia rzeczywistych prognoz zdecydowaliśmy się wykorzystać otwartą bibliotekę Proroka opracowaną przez Facebooka, która nie tylko automatycznie wykrywa wzorce sezonowe, ale również umożliwia korzystanie z niestandardowych predykatorów. Z analizy danych Vozilli pamiętamy, że zapotrzebowanie na krótkoterminowe car sharing różni się znacznie w zależności od dni roboczych i weekendów. Mając to na uwadze, zastąpiliśmy pojedynczą godzinową sezonowość podwójnym zestawem, zachowując oddzielnie dni wolne od pracy.

Prorok zapewnia ładny sposób wyświetlania wykrytych składników sezonowości, co pomaga zrozumieć, w jaki sposób dokonuje się ostatecznej prognozy. Oto rozbicie 30-dniowego prognozowania wykorzystania floty (oś y to procentowy udział wynajmowanych samochodów w całej flocie):

W pierwszej części opisano powoli rosnący długoterminowy trend, ale jednocześnie obserwujemy rosnącą niepewność przyszłych wartości. Ogólnie rzecz biorąc, wartość bazowa wykorzystania sieci car sharing znajduje się nieco powyżej wartości 10 procent. Drugim najsilniejszym wskaźnikiem jest wzorzec godzinowy, zarówno dla dni roboczych, jak i weekendów (pierwszy z nich charakteryzuje się porannym załamaniem popytu, którego brakuje w drugim) - ta część przesuwa igłę o 8 punktów procentowych. Dzień powszedni daje do 2 punktów procentowych, a wpływ pory roku jest jeszcze słabszy - jednak nawet tutaj możemy zauważyć niższy popyt w czasie wakacji letnich i wyższe szczyty np. w okolicach Świąt Bożego Narodzenia.

Dla porównania, 30-dniowa prognoza, przedstawiona poniżej, jest o wiele bardziej krytyczna, a wszelkie korelacje między składnikami są znacznie trudniejsze do zauważenia.

Oczywiście, nasze dane opisują tylko popyt w mieście Wrocławiu. Jeśli dla jakiegoś innego miasta Traficar może dostrzec odwrócony wzorzec sezonowy (tzn. wysoki popyt w lecie i spadek w okolicach Nowego Roku), to może mieć sens okresowe przemieszczanie samochodów pomiędzy takimi miejscami, aby zmaksymalizować średnie wykorzystanie. Może to być przykład praktycznego prognozowania zapewnianego przez program Machine Learning, który jest o wiele trudniejszy do zauważenia podczas codziennej konserwacji floty.

Innym przykładem wykorzystania tego foresightu w codziennym zarządzaniu flotą mogłoby być określenie obszarów wysokiego i niskiego popytu w celu oszacowania szans na wynajęcie danego samochodu w ciągu kilku godzin. Każdego tygodnia firmy takie jak ta muszą przeprowadzać przegląd techniczny kilku samochodów; uzbrojeni w te dane serwisanci mogliby upewnić się, że wybierają samochód o najniższym prawdopodobieństwie wynajmu.

Trudno jest przepowiadać, zwłaszcza o przyszłości.

Teraz, gdy nasza prognoza jest gotowa, chcielibyśmy wiedzieć, jak wiarygodna jest. Cóż, w przeciwieństwie do innych dziedzin nauki maszynowej, nie możemy. Przyszłość jest nieznana. Typowa metoda walidacji Machine Learning, dzieląca dane pomiędzy naukę i zestawy testowe, nie sprawdzi się tutaj ze względu na czasowe zależności w naszym pojedynczym strumieniu danych.

To, co możemy zrobić, to dowiedzieć się, jak nasz algorytm będzie przewidywał już znaną przeszłość. Przykładowo, moglibyśmy cofnąć się w czasie o 4 miesiące i przygotować 1-miesięczną prognozę, zapisując ją gdzieś. Następnie moglibyśmy cofnąć się w czasie o tydzień, przygotować miesięczną prognozę, a następnie zapisać ją gdzieś. Wypłukać i powtórzyć jeszcze kilkanaście razy, a następnie sprawdzić osiągniętą dokładność. Ponieważ operujemy tylko na danych historycznych, możemy porównywać przewidywania z rzeczywistymi obserwowanymi wartościami.

Poniższy wykres przedstawia metrykę błędu średniej wielkości bezwzględnej, która mówi nam dokładnie o tym - ile punktów procentowych jesteśmy zazwyczaj od wartości rzeczywistej. Średni błąd leży nieco poniżej 2,5 punktu procentowego, co nie brzmi zbyt źle dla zmiennej przewidywanej w zakresie od 0 do 30 procent.

Czy to jest wystarczająco dobre? Trudno to stwierdzić, szczególnie biorąc pod uwagę fakt, że nasze zeskrobane dane mogą zawierać jakieś nieznane błędy, ale na pewno jest to obiecujący początek.

To, co możemy zrobić, to porównać rozkład średniego błędu bezwzględnego z (lewym) i bez (prawym) podziałem prognozowanego dnia pracy / weekendu. Jak widać na poniższym wykresie, byliśmy w stanie przygotować szacunki z błędami, które są nie tylko mniejsze, ale również rozłożone w bardziej spójnej materii. Godzinowy predykator "out of the box" nie może uchwycić charakterystyki dnia roboczego i weekendu jednocześnie.

Wizualizacja przewidywań KPI

Kluczowe wskaźniki efektywności (KPI) są miarą efektywności służącą do oceny sukcesu organizacji lub konkretnego działania. Pokażemy trzy metody budowania tablicy rozdzielczej online z monitoringiem na żywo najważniejszych wskaźników sieci car sharing. Wszystkie metody wykorzystują liczby surowe z obliczeń wykonanych w języku R, ale metody wizualizacji różnią się od siebie. Co ważne, oprócz prostych wykresów, chcieliśmy także wizualizować pozycje i aktualny stan samochodów na mapie miasta.

Nasze pierwsze podejście polegało na wykorzystaniu zewnętrznej deski rozdzielczej i nie powiodło się. Istnieje kilkadziesiąt, a nawet kilkaset narzędzi KPI online, ale w zdecydowanej większości brakuje nawet podstawowych narzędzi mapowych czy widgetów. Również liczba zewnętrznych złączy danych i jakość narzędzi do wymiany danych pozostawiają wiele do życzenia. Rozczarowały nas takie braki, jak pozostawienie użytkowników bez możliwości wykreślenia dwóch serii danych na jednym wykresie lub brak możliwości powiązania wierszy z dwóch oddzielnych plików, nawet jeśli schematy były w pełni dopasowane.

Później postanowiliśmy wypróbować Power BI i Tableau, dwa wiodące narzędzia do wizualizacji danych, chwalone za ich rozszerzalność i elastyczność. Nasze doświadczenie było tu o wiele lepsze, ponieważ oba produkty pozwoliły nam na import i wizualizację danych - głównie w sposób, w jaki chcieliśmy.

Mimo to, szybko osiągnęliśmy granice możliwości dostosowywania, ponieważ często nie mogliśmy zmieniać widoków map tak bardzo, jak chcieliśmy. Na przykład, jeśli chodzi o PowerBI i Bing Maps, musieliśmy wybierać pomiędzy "zbyt dużym" i "zbyt małym" poziomem powiększenia, nie mając nic pomiędzy nimi.

Przykładowa tablica rozdzielcza wykonana z Tableau

Przykładowa tablica rozdzielcza wykonana z Power BI

Najbardziej elastyczny i konfigurowalny deska rozdzielcza została stworzona przy użyciu samego języka R. Oczywiście metoda ta wymaga umiejętności programistycznych i z pewnością nie jest przyjazna dla osób przyzwyczajonych do interfejsów graficznych, ale wykwalifikowany programista będzie w stanie osiągnąć dowolny efekt wizualny - albo wykorzystując istniejące widżety, albo tworząc nowe od podstaw. Kiedy silnik deski rozdzielczej był już gotowy, generowanie kolejnych obrazów deski rozdzielczej było trywialne, więc poniżej prezentujemy film wideo obejmujący pełną 24h operacji Traficar, z bieżącą wydajnością i przewidywanym wykorzystaniem.

Podsumowanie

Jak widać, nawet z publicznie dostępnych informacji, byliśmy w stanie określić wiele i wygenerować szereg krytycznych spostrzeżeń. Wyobraźcie sobie tylko, co moglibyśmy zrobić z dostępem do pełnego zestawu danych!

Perspektywa biznesowa

Analiza danych w określonych okresach czasu może pokazać wiele możliwości, od dostępności sezonowej do najlepszych czasów, aby zaoferować bardziej konkurencyjne usługi. Jednakże, aby to osiągnąć, należy najpierw przyjrzeć się danym historycznym i aktualnym, aby zidentyfikować kluczowe trendy - coś, co zaawansowane rozwiązania w zakresie danych mogą łatwo usprawnić!

Komentarze (0)

Zostaw komentarz