Frachtpreisprognose

Die KI-Werkstatt an mit verschiedenen Unternehmen aus verschiedenen Branchen zusammengearbeitet. Aus diesen Kooperationen haben sich fünf Themenfelder herauskristallisiert.

Eine Kooperationspartner war ein Transportunternehmen für Abfallprodukte. Das Unternehmen verwertet die Abfälle nicht selbst, sondern transportiert diese durch ganz Deutschland. Die Kunden des Unternehmens zahlen für die Entsorgung und das Unternehmen verbringt den Abfall zu entsprechenden Verwertern. Um kein Verlustgeschäft zu machen, ist es also wichtig zu wissen, welcher Frachtpreis für die benötigte Lösung des Kunden auf dem Speditionsmarkt zu erwarten ist.

Im Folgenden soll anhand des Beispiel des Transportunternehmens ein Projekt der KI-Werkstatt vorgestellt werden. Der Fokus liegt dabei auf dem Prozess der Datenauswahl. Die Datenauswahl begleitet Beteiligte in ML-Projekten vom ersten Treffen bis hin zur Modellbildung.
Wird daher durch die ersten drei Phasen des CRISP-DM beschrieben.

Aus den Daten des Unternehmens werden die für das Problem möglicherweise relevanten Daten extrahiert.
Daten haben verschiedenen Typen und Qualitäten, die im Rahmen des Projektes untersucht werden müssen.
Über statistische und grafische Auswertungen werden Kernattribute identifiziert und irrelevante Attribute ausgeschlossen.

Was können Datenquellen für ein initiales Datenset sein?
Je nach Problemstellung kommen unterschiedliche Daten in Betracht.

Wie schon im CRISP-DM angedeutet, basiert jede KI-Anwendung auf Daten, im Zusammenhang mit der Fragestellung. In unserem Beispielprojekt wird das Geschäft über Access abgebildet und in einer SQL Datenbank gespeichert. Für die Fragestellung wurden daraus vier wesentliche Tabellen extrahiert Für das KI-Modell werden diese Daten miteinander verknüpft, sodass großer Datenwürfel mit den zu untersuchenden Frachtdaten entsteht. Die Zusammenführung und Analyse der Daten erfolgt in der Programmiersprache Python. Im Data Science Bereich haben sich zudem sogenannte Notebooks etabliert.

Die gesammelten Daten sind eine Vielzahl von sogenannten Attributen, also beschreibende Elemente für einen Zusammenhang. Für ein Auto könnten die Attribute beispielweise folgende sein: Farbe, Marke, Modell, Baujahr, Preis, Kaufdatum, E-Auto (ja/nein) etc.
In der ML-Anwendung wird eine Unterscheidung in Zielattribut und beschreibende Attribute vorgenommen. Diese lassen sich unterteilen in numerische und kategorische Attribute.



Der Datensatz in unserem Beispielprojekt umfasst insgesamt 22 Attribute. Dabei ist der Frachtpreis das Zielattribut. Alle anderen sind beschreibende Attribute und stehen jeweils mehr oder weniger in einem Verhältnis zum Frachtpreis. Wie sehr dieses Verhältnis ausgeprägt ist, gilt es in den nächsten Schritten herauszufinden. Stark ausgeprägte Beziehungen helfen später dem Algorithmus bei der Prognose.
Wir sehen zudem die Anzahl unterschiedlicher Werte und auch, dass in Spalten keine Werte enthalten sind. Dies ist für jedes Attribut zu prüfen.
Da unser Zielattribut nur 13824 Werte enthält, ist es sinnvoll auch nur diese Einträge zu berücksichtigen (es sei denn in Absprache mit dem Unternehmen können sinnvolle Annahmen bei fehlenden Werten getroffen werden)

Im nächsten Schritt der Datenauswahl gilt es die Daten zu untersuchen.
Die erste Untersuchung des Zielwertes ergab, dass eine Vielzahl von Aufträgen mit Gesamtpreisen zwischen 0€ und weniger als 30€ liegen (Anzahl Aufträge/Frachtpreis). Demzufolge entstand folgender Klärungsbedarf: Was sind dies für Werte, sind diese ggf. trotzdem nutzbar? Entsteht Handlungsbedarf im Rahmen der Datenvorbereitung?

Bei der Untersuchung der Daten sollte auch die Datenqualität jedes Attributs überprüft werden.
In vielen Unternehmen sind Freitextfelder noch usus. Für Datenauswertungen und datenbasierte Entscheidungen wie bei ML ist dies mindestens eine Herausforderung. Es konnten viele unterschiedliche Einträge mit gleicher Aussage identifiziert werden.
Unternehmen sollten stets versuchen Daten möglichst weit zu strukturieren, um Auswertbarkeit sicherzustellen.

Aber auch vermeintlich nützliche Attribute können nicht aussagekräftig sein. Hier ist die grafische Auswertung anhand von Scatterplots hilfreich. (X-Achse: Ladegewicht, y-Achse: Frachtpreis, jeder Punkt = ein Auftrag)
• Viele Punkte bei 0 kg. Gewicht
• starke Streuung hinsichtlich des Frachtpreises
• Fehlerhafte Werte Y > 30-40 tonnen.
Es ist somit keine Korrelation zum Frachtpreis erkennbar.

Maßnahmen aus der vorangegangenen Exploration der Daten sind im Rahmen der Datenvorbereitung umzusetzen. Der bisherige Datensatz wird im Rahmen der Datenauswahl auf die relevanten Daten eingegrenzt. Ein wichtiger Schritt dabei ist die Datenbereinigung. Irrelevante oder Attribute mit zu geringer Datenqualität sind zu entfernen. Genauso kann aber auch die Erstellung neuer Daten oder die Ableitung anderer Attribute hilfreich sein. Zudem können weitere externe Attribute genutzt werden um den Datensatz mit Informationen anzureichern.

Der Datensatz beinhaltet bereits viele Informationen. Allerdings könnten noch weitere Informationen relevant sein. Hierzu ist wichtig, in welchem Geschäftsbereich man sich befindet und welche Zielgrößen gesucht werden. Wo können weitere Daten bezogen werden?

In den folgenden wird gezeigt, wie wir zusätzliche Informationen in den Spalten genutzt haben. Zu Beginn jedoch noch einmal zurück zu dem ungleich verteilten Zielattribut. Zunächst wurden in €/to angegebene Preise mit dem Ladegewicht multipliziert (Ladegewicht hier also noch hilfreich!) Dazu bekamen wir vom Unternehmen die Freigabe simple Annahmen zu treffen:
– Unter 200km / Fixpreis 250-350€
– Über 200km // 1,40€ – 1,50€ pro km annehmen.
So wird eine deutlich harmonischere und vor allem realistischere Verteilung erreicht, mit der wir weiter arbeiten können. Generell werde am Telefon eher über den Frachtpreis/km und nicht der Gesamt-FP verhandelt. Das eigentliche Zielattribut ist somit gar nicht im Datensatz enthalten.

Um den Frachtpreis pro km zu berechnen, fehlt das Attribut Distanz in der Datenbank vom Projektpartner. Jede Fracht einzeln bei Maps eingeben, ist keine Option, weder für die bestehenden Daten, noch für eine zukünftige Anwendung. Es kann allerdings eine bestehende Google Schnittstelle genutzt werden. Mit ein wenig Programmcode können nun über die verfügbaren PLZ und Orte die Distanzen und Fahrtdauern aller Aufträge ermittelt und in den Datensatz eingespeist werden. Ein erstes Beispiel dafür, wie auch unternehmensexterne Daten für KI-Anwendungen genutzt werden können. Es ist somit ein klarer Zusammenhang zwischen der Verteilung der Frachtpreise/km und den Aufträgen aufgeteilt nach Distanz und ihrem Frachtpreis zu erkennen.

Als weiteres neues Attribut bietet sich im Transportwesen der Dieselpreis an. Ein Vergleich des durchschnittlichen Frachtpreises/km und dem Dieselpreis unterstreicht die Beziehung. Insbesondere ab 2017 schwanken die Werte in der Tendenz miteinander. Eine Integration erscheint damit sinnvoll und kann auch über eine automatische Schnittstelle umgesetzt werden.
Es ist zu beachten, dass das Modell nur Preise bis Ende 2021 abbildet. Die extremen Preise von 2022 wurden durch das Modell noch nicht erfasst. Es zeigt sich somit, dass der Dieselpreis heute noch eine größere Bedeutung hat.

Weiterhin ist interessant, von wo nach wo der Transport stattfindet und ob dieser Weg über Autobahnen oder Landstraßen, oder durch Stadtgebiet oder Nadelöre mit Staupotenzial führt. Aus den Google-Daten lässt sich neben der Distanz auch die Dauer ableiten, woraus die Zeit/km berechnet werden kann, also ein Indikator für die Durchschnittsgeschwindigkeit. Die Grafik links zeigt den Frachtpreis je km in Abhängigkeit von der Zeit je km. In der Tendenz steigt der Frachtpreis, je länger man für einen km braucht. Die Transportrichtung scheint hier ein entscheidender Faktor zu sein. Beispielsweise ist die Zeit/km auf der Kurzstrecke im Norden und Westen am höchsten. Während die längeren Strecken Süd-Nord und Ost-West die geringsten Werte aufweisen. Dies schlägt sich auch in den FP/km nieder.
Genau diese Varianz ist ein idealer Anknüpfungspunkt für die KI.

Auch aus bestehenden Attributen lassen sich neue Erkenntnisse generieren. Aus einem einfachen Datumsfeld etwa, können Schwankungen unter der Woche oder im Jahresverlauf ermittelt werden. Eine interessante Frage ist, ob die Frachtpreise über das Jahr oder unter der Woche schwanken:
Wie man sieht kommt es im Laufe des Jahres zum Teil zu deutlichen Unterschieden. Auffällig sind die Vorweihnachtszeit und sowie die abnehmende Tendenz in den Sommermonaten. Auch innerhalb einer Woche zeigen sich deutliche Schwankungen. Am Donnerstag erreicht die Frachtrate ihren Höhepunkt. Zum Wochenende sinkt der Frachtpreis/km ab. Genau nach solchen Varianzen sucht der Algorithmus, um bei zukünftigen Aufträgen die Prognose mit der richtigen Tendenz einzuordnen. Monat und Wochentag sind also neue Attribute, die wir in das Modell einfließen lassen können.

Zusammenfassend kann also gesagt werden, dass der Datenauswahlprozess ein iterativer Prozess ist, der die Integration neuer, aber auch das Verwerfen alter Attribute beinhaltet. Wir haben gesehen, dass wir neue Attribute aus bestehenden kreieren können.
Zudem können bestehende Attribute abgewandelt werden. Etwa aus der Abfalltypnummer neue, gröbere Kategorien entwerfen, um Rückschlüsse auf Preise für bestimmte Abfallgruppen zu errechnen. Zudem lassen sich neue, externe Attribute über Schnittstellen integrieren. Hier sind die Unternehmer die besten Experten für mögliche potenziell, relevante Informationen. Der Haken, nicht immer sind diese umsonst.
Genauso sollten Attribute entfernt werden, die nicht interpretierbar sind und das Modell verwirren. Außerdem zeigen Studien, dass einige Modelle schlechter werden mit zunehmenden irrelevanten Informationsgehalt.

Dies ist insbesondere von Bedeutung, da kategorische Attribute im Rahmen der Modellierung noch umgewandelt werden müssen in lesbare Daten für Maschinen. Bspw. entstehen beim sogenannten Encoding aus einer Spalte mit 5 Farben (orange, rot, grün, blau, weiß) die Modellierung 5 Spalten in denen eine 1 steht, falls zutreffend. Aus diesem Grund ist es ratsam nach dem manuellen Prozess noch einen automatischen Prozess den sogenannten Feature Selection anzuschließen. Im Beispielprojekt hat sich gezeigt, dass das Modell bei Auswahl von 11 Attributen am besten prognostiziert. Die Attribute werden geprüft, inwiefern sie zu einer präziseren Vorhersage beitragen oder nicht. Gemessen in Feature Importance. Rechts ist dargestellt welche Attribute dem Modell am meisten helfen.

Mit diesen 11 Attributen startet nun der Modellierungsprozess. Im Folgenden wird dieser nicht beschrieben, allerdings wird auf das Ergebnis des Projekts eingegangen.

Beim Supervised Learning wird das Modell mit Trainingsdaten trainiert. Dies ist nichts anderes als eine große Tabelle in denen alle Aufträge stehen mit ihren Attributen. Gleichzeitig erhält das Modell die dazugehörigen Frachtpreise und lernt die Zusammenhänge in extrem hoher Geschwindigkeit. Der Lernprozess verläuft bei jedem Algortihmus anders und kann durch Parameter eingestellt werden. Eine weitere wichtige Stellschraube um an die letzten Prozente Performance heranzukommen. Der entstanden Algorithmus wird nun mit den Testdaten konfrontiert. Also Frachtdaten ohne die dazugehörigen Frachtpreise. Durch das Gelernte kann das Modell dann eine Prognose erstellen, die gegen die wahren Frachtpreise der Testdaen abgeglichen werden. Im Idealfall liegen alle auf einer Geraden. Die Performance wird durch den durchschnittlichen Abstand der Punkte zur Gerade gemessen.

Dieses Vorgehen wurde für verschiedene Algorithmen auf das Problem der Frachtpreisprognose angewendet.
Es ist zu sehen, dass die Benchmark-Excel-Prognose eine mittlere Abweichung von 21 Cent schafft. Eine einfach lineare Regression liegt darüber.
Durch Anwendung von Algorithmen, die auch mehrdimensionale, nicht lineare Zusammenhänge identifizieren können, kann der Fehler jedoch bis auf 9 Cent Abweichung reduziert werden. Das sind ca. 60% Einsparungen für die Firma.

Kontakt

Thorben Green, M.Sc.