W ostatnich dniach zbudowałem w programie IBM SPSS Modeler przepływ danych,
którego celem była analiza rozmieszczenia klientów hipotetycznej korporacji
taksówkarskiej Algomine Taxi oraz
kierowców zatrudnionych w tej korporacji. Gotowy przepływ danych wyglądał
następująco:
Na potrzeby przeprowadzonej analizy założyłem, że dane o
położeniu klientów i kierowców pobieram dzięki aplikacji mobilnej
zainstalowanej na ich telefonach. Zakładam, że zarówno klienci, jak i kierowcy
zgodzili się na wykorzystanie danych o ich położeniu w celu poprawy jakości
świadczonych usług. Korporacja Algomine
Taxi działa w Warszawie, a analizowane dane dotyczą ostatniego dnia roku
2013.
Struktura danych o klientach oraz kierowcach jest
następująca:
Przed przystąpieniem do części głównej analizy wykorzystałem,
opisywany we wpisie Możliwości wykorzystania języka R w środowisku IBM
SPSS węzeł Plot Heatmaps.
Węzeł ten umożliwił mi budowę map natężeń pokazujących uśrednione
dla całego dnia położenie kierowców
oraz klientów.
Jak widać obie grupy rozlokowane są głównie w dzielnicy
Ochota, natomiast klientów cechuje większe rozproszenie. W dalszej części
analizy skoncentowałem się na poszukiwaniu miejsc, w których jest najmniejsze
pokrycie klientów przez taksówki.
W pierwszym kroku analizy wykorzystałem, wprowadzony w
edycji 16 programu IBM SPSS Modeler, węzeł Siatka
czasoprzestrzenna. Węzeł ten
umożliwił mi podział analizowanego obszaru na przestrzenie, których gęstość wyznaczana
jest przez kwadrat o zadanej długości boku oraz o zdanym odstępie czasowym. W
moim przypadku jest to odpowiednio 2,4 km oraz 10 minut.
Każda stworzona przestrzeń dostaje swój unikalny
identyfikator np: u3qcj|2013-12-31
07:50:00|2013-12-31 08:00:00, gdzie pierwsze 5 znaków to tak zwany geohash przestrzeni, a pozostałe znaki
odnoszą się do odstępu czasowego.
Następnie korzystając z węzła Agregacja obliczyłem zagęszczenia klientów i taksówek w każdym z
pól siatki, dane te połączyłem ze sobą korzystając z węzła Łączenie, a następnie węzły Wyliczanie,
Selekcja i Agregacja posłużyły mi do wynaczenia obszarów o najgorszym
pokryciu. Do wyznaczenia środków tych obszarów ponownie użyłem węzła Wyliczanie oraz nastepująych funkcji:
stb_centroid_longitude(substring(1,5,STB_GH5_10MINS))
stb_centroid_latitude(substring(1,5,STB_GH5_10MINS))
stb_centroid_latitude(substring(1,5,STB_GH5_10MINS))
Opisane we wpisie Możliwości wykorzystania języka R w środowisku IBM SPSS węzły Reverse Geocoding i Plot Spatial Data
oraz naniesienie ich na mapę.
Teraz już wiem, że w promieniu 2,4
km od adresu ul. Prosta 69 aż 91 razy podczas dnia liczba potencjalnych
klientów była większa od liczby taksówek. Dzięki temu firma Algomine Taxi wie, gdzie powinna rozmieścić
swoich kierowców. Idąc dalej firma Algomine
Taxi będzie wykonywała analogiczne analizy w czasie rzeczywistym lub
zbliżonym do rzeczywistego, co zapewni optymalne rozmieszczenie pojazdów i
zminimalizuje czas oczekiwania klientów.
Podsumowując, w dzisiejszym wpisie starałem się pokazać, w jaki sposób wyobrażam sobie działanie algorytmów stosowanych przez korporacje przewozowe, o których za sprawą firmy Uber zrobiło się niedawno bardzo głośno. Z drugiej strony chciałem pokazać, jak w praktyczny sposób można zastosować węzeł Siatka Czasoprzestrzenna oraz dodatkowe węzły dostępne na stronie analyticszone.
Podsumowując, w dzisiejszym wpisie starałem się pokazać, w jaki sposób wyobrażam sobie działanie algorytmów stosowanych przez korporacje przewozowe, o których za sprawą firmy Uber zrobiło się niedawno bardzo głośno. Z drugiej strony chciałem pokazać, jak w praktyczny sposób można zastosować węzeł Siatka Czasoprzestrzenna oraz dodatkowe węzły dostępne na stronie analyticszone.
Brak komentarzy:
Prześlij komentarz