Uczenie maszynowe, statki i porty 😉
Dużo mówi się teraz o machine learning. I w JellyTech znajdziecie projekty, które bazują lub czerpią właśnie z uczenia maszynowego. Zapraszamy do lektury artykułu o modelu, który realnie zaaplikowaliśmy i jest używany w obszarze stricte biznesowym.
ML obecne w naszej codzienności
Zastanawiacie się może jak model uczenia maszynowego może służyć nam w codzienności - sprzedaży, transporcie, handlu? Są to wielkie gałęzie gospodarki, które w każdej minucie wytwarzają petabajty danych. Gałęzie te wykazują jednak pewne tendencje i schematy, których jak najlepsze oszacowanie usprawnia nasze funkcjonowanie. W uczeniu maszynowym chodzi właśnie o uczenie algorytmów pod kątem znajdowania wzorców i korelacji w wielkich zbiorach danych. Dalszym krokiem jest najlepsze formułowanie prognoz i podejmowanie optymalnych decyzji.
Nasze wyzwania projektowe
No to teraz troszkę więcej szczegółów o naszym projekcie. Czy wiedzieliście, że 90% wolumenu handlu światowego odbywa się drogą morską? To nieprawdopodobna liczba statków, portów, szlaków. Mieliśmy wielką przyjemność realizować dla naszego klienta projekt optymalizujący logistykę obsługiwanej przez niego floty. Nasz klient czarteruje statki liczone w tysiącach sztuk, które każdego dnia znajdują się na wodach morskich i oceanicznych całej Ziemi. Przystępując do zadania znaleźliśmy się zatem w posiadaniu wielkiej ilości różnorodnych danych tj. trasy statków, czas oczekiwania w portach, zmienne meteorologiczne i wiele wiele innych.
Zaczęliśmy od odpowiedniego (czyt. inżynieryjnego) połączenia ze sobą danych, następnie ustrukturyzowaliśmy i uporządkowaliśmy zmienne, wszystko po to, aby były gotowe do modelowania.
Zmienne które powinien uwzględniać model zawierały:
- położenie geograficzne
- cargo
- wielkość statku
- sezonowość z szerokością geograficzną
- przewoźnik,
- czarterowane statki
- charakterystykę największych portów na świecie (ok. 50-ciu)
Niezbędne było zrozumienie charakterystyki transportu morskiego, poprzez rozmowę z ekspertami i eksploracyjną analizę danych (EDA - exploratory data analysis). Dzięki temu wiedzieliśmy jak ważne jest, aby model działał na poziomie portu, terminala, jak i doku do którego płynie statek.
Efekty
Przetestowaliśmy wiele modeli uczenia maszynowego, aby wybrać najlepszy, czyli taki, który pozwoliłby nam jak najdokładniej przewidzieć czas oczekiwania na wpłynięcie statku naszego klienta do portu. Budowanie modelu, testowanie i walidacja dały naprawdę imponujące wyniki, zwycięzca bowiem osiągnął ponad 80% dopasowania. Czyli?🙂 Do tej pory statki naszego klienta czekały w porcie nawet (średnio) 3 dni by do niego wpłynąć, nam się udało wypracować predykcje przybycia statków do tego stopnia, że średni przewidywany czas oczekiwania na wpłynięcie skrócił się do 6 godzin.
Narzędzia
Jakich narzędzi używaliśmy? Cały proces zaprogramowaliśmy przy użyciu języka Python i jego bibliotek, m.in. Pandas, NumPy i Scikit-learn.
Oczywiście niezbędna była też dobra atmosfera podczas pracy nad tym modelem.
Więc🙂 Sailing😉