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😉


Galeria zdjęć

Wideo

Machine learning, ships and ports 😉

There is a lot of talk about machine learning right now. And in JellyTech you will find projects that are based or draw on machine learning. We invite you to read the article about the model that we have actually applied and is used in the strictly business area.

ML present in our everyday life

Are you wondering how a machine learning model can serve us in everyday life - sales, transport, trade? These are huge industries that generate petabytes of data every minute. However, these branches show certain tendencies and patterns, the best estimation of which improves our functioning. Machine learning is all about training algorithms to find patterns and correlations in big data. The next step is to make the best forecasts and make optimal decisions.

Our design challenges

Well, now a little more details about our project. Did you know that 90% of world trade is carried out by sea? It is an unbelievable number of ships, ports, routes. We had a great pleasure to implement a project for our client to optimize the logistics of the fleet operated by him. Our client charters thousands of ships that are found in sea and ocean waters all over the world every day. When starting the task, we found ourselves in possession of a large amount of various data, i.e. ship routes, waiting times in ports, meteorological variables and many others.

We started with the appropriate (read: engineering) data connection, then we structured and ordered the variables, all so that they were ready for modeling.
Variables that should be included in the model included:
- geographical location
- cargo
- ship size
- seasonality with latitude
- carrier
- chartered ships
- characteristics of the largest ports in the world (about 50)

It was necessary to understand the characteristics of maritime transport, through conversation with experts and exploratory data analysis (EDA). Thanks to this, we knew how important it was for the model to work at the level of the port, terminal and dock to which the ship is sailing.

Effects

We tested many machine learning models to choose the best one, i.e. one that would allow us to predict the waiting time for our client's ship to enter the port as accurately as possible. Model building, testing and validation yielded truly impressive results with the winner achieving a fit of over 80%. So? 🙂 Until now, our client's ships waited in the port for even (on average) 3 days to enter it, we managed to work out the predictions of the arrival of ships to such an extent that the average expected waiting time for arrival was reduced to 6 hours.

Tools

What tools did we use? We programmed the entire process using the Python language and its libraries, e.g. Pandas, NumPy and Scikit-learn.

Of course, a good atmosphere while working on this model was also necessary.

So 🙂 Sailing 😉

Gallery

Wideo