Léonard Noth
ENFRDE
← Projekte

KOCO Predict

Einen Container vorhersagen, damit Lastwagen nicht mehr zu leeren fahren

Vorhersagen, wie schnell sich ein Abfallcontainer füllt, damit Sammelfahrzeuge nicht mehr zu Behältern fahren, die gar nicht voll sind.

Rolle
Forschungsingenieur
Umfang
Datenpipeline · Modellauswahl · Evaluationsdesign · Auslieferungswerkzeuge
Gebaut mit
Python, Darts, Prophet, PyTorch, Docker, pandas
Team
Mandat des iSIS-Instituts für die KOCO Solutions AG, betreut von Dr. Sandy Ingram; Vorarbeiten von zwei Kolleginnen und Kollegen
Zeitraum
Innosuisse-Innovationsscheck 71039.1 INNO-ICT · meine Arbeit von Mai 2024 bis Mai 2025
Ergebnis
Prophet senkte den mittleren absoluten Fehler von 75,0 kg beim Bestandssystem auf 48,04 kg an echten Sammeltagen und den MAPE von 40,4% auf 19,8%. Beide Partner bewerteten das Projekt im Schlussbericht an Innosuisse mit 1 von 4 (sehr erfolgreich).

Das Problem

KOCOs bisherige Prognose war eine adaptive lineare Regression: die Füllrate zwischen zwei Leerungen mitteln und fortschreiben. Das funktioniert, sieht aber immer nur Daten von Sammeltagen, eine Handvoll Punkte pro Woche. Das Unternehmen wollte wissen, ob achtzehn Monate spärlicher Wägungen etwas Besseres tragen können.

Meine Rolle

Forschungsingenieur. Als ich dazustiess, gab es Vorarbeiten; ich habe den grössten Teil davon neu gemacht, die Evaluation entworfen und die Ergebnisse vor dem Kunden vertreten.

Lesen als
Das Wesentliche in zwei Minuten

Wirkung

48,0 kg vs. 75,0 kg
MAE Prophet vs. Bestand
19,8% vs. 40,4%
Mittlerer absoluter Fehler in %
5, zweifach ausgewertet
Verglichene Modellfamilien
25,6% vs. 2,15%
Echte Punkte, Tag vs. Stunde
71039.1 INNO-ICT
Innosuisse-Projekt

Der Systementwurf

  1. Ein Container nach dem anderen

    Der Export wird auf einen einzigen Chip, eine Sammelstelle und eine Abfallart heruntergefiltert. Die Modelle gelten pro Container, nicht global.

    • 27’722 Rohwägungen über 372 Containerreihen und 118 Sammelstellen
  2. Aus spärlichen Wägungen eine durchgehende Rate

    Jede Leerung wird zu einem linearen Segment: das hinzugekommene Gewicht durch die verstrichenen Tage teilen und zwischen den Messungen interpolieren, um eine Reihe in kg/Tag zu erhalten.

    • Eine synthetische Nullzeile nach jeder Messung markiert die Leerung
    • Bei stündlicher Auflösung waren nur 2,15% der entstehenden Punkte echte Messungen; bei täglicher 25,6%
  3. Logarithmieren, aufteilen, anpassen

    Den Logarithmus der Zielgrösse nehmen, damit eine einzelne riesige Wägung nicht dominiert, das letzte Stück als Testmenge zurückhalten und jede Modellfamilie anpassen.

    • Ausreisser beschädigten die Anpassung; der Logarithmus behält jede Beobachtung, statt echte Sammelereignisse zu löschen
  4. Zweimal bewerten

    Jedes Modell gegen das Bestandssystem antreten lassen, einmal über alle interpolierten Punkte und einmal nur über echte Sammeltage.

    • Das erste misst, ob die Kurve stimmt; das zweite, ob sie an dem Tag nützt, an dem ein Disponent entscheidet
    • Die beiden Ranglisten waren sich nicht einig, und diese Uneinigkeit war der Befund
  5. Etwas Lauffähiges übergeben

    Eine dockerisierte Trainings- und Inferenzstrecke, gesteuert über eine Konfigurationsdatei, dazu ein separates Analyse-Toolkit.

    • Den Zielcontainer zu wechseln, sind drei Zeilen in der Konfiguration
    • Sieben parametrierbare Analysen, jede schreibt eine Tabelle und einen Satz Diagramme
Plattformdienste
  • Darts + Prophet

    Eine gemeinsame fit/predict-Schnittstelle für statistische und neuronale Modelle, damit der Vergleich vergleichbar bleibt

  • pandas + openpyxl

    Liest den Excel-Export, den der Kunde tatsächlich schickt, unverändert

  • PyTorch Lightning

    Trug die RNN-, LSTM- und Transformer-Experimente, die am Ende verloren

  • TOML-Konfiguration

    Jeder Regler steckt in der Konfiguration statt im Code, sodass ein erneutes Training keine Entwicklerin braucht

  • Docker Compose

    Training und Inferenz als unabhängig schaltbare Dienste

  • Jupyter-Toolkit

    Ein zweites Ergebnis: Saisonalität, Messintervalle und Trends je Abfallart, filterbar

Fünf Modellfamilien gegen das Bestandssystem

Nur Sammeltage, die Zahl, auf die ein Disponent tatsächlich reagiert. Mittlerer absoluter Fehler und mittlerer absoluter prozentualer Fehler, auf dem Container, auf den die ausgelieferte Konfiguration zeigt.

KOCOs lineares ModellProphetFFTRNNLSTMTransformer
Mittlerer absoluter Fehler75,0 kg48,04 kg (best)60,69 kg92,37 kg61,39 kg150,31 kg
Mittlerer absoluter Fehler in %40,42%20,8% (best)30,16%36,7%27,68%57,93%
Wurzel des mittleren quadratischen Fehlers94,93 kg65,43 kg (best)75,31 kg112,57 kg76,93 kg164,45 kg

Zentrale Entscheidungen

Täglich statt stündlich

statt · Die feinere stündliche Auflösung, ursprünglich mit dem Kunden vereinbart

Bei stündlicher Auflösung war rund 98% der Reihe durch Interpolation erfunden, und nichts im Feld belegte, dass sich ein Behälter innerhalb eines Tages linear füllt. Der Wechsel auf Tage machte das Modell nicht klüger: er hob den ehrlichen Anteil der Daten von 2% auf 26%. Die gröbere Option zu wählen ist das, was die Zahlen belastbar gemacht hat.

Zwei Auswertungen, nicht eine

statt · Ein einziger Train/Test-Wert, wie ihn jede Standardschleife liefert

Über alle Punkte zu bewerten misst die Übereinstimmung mit einer Interpolation, die wir selbst erfunden haben. Ein Modell kann gut aussehen, weil es eine Gerade gut nachzeichnet. Über Sammeltage zu bewerten misst das, worauf der Disponent reagiert. Erst beides zusammen hat den Unterschied sichtbar gemacht.

Die statistischen Modelle ausliefern, die tiefen fallen lassen

statt · RNN, LSTM und Transformer härter treiben, mit mehr Kapazität und einer echten Hyperparametersuche

Sie kosteten im Training und im Betrieb dasselbe und lieferten weniger. Bei ein paar hundert Tagespunkten pro Container gibt es für ein grosses Netz nichts zu finden, und die Struktur, die tatsächlich da ist, ein Jahreszyklus und ein Wochenrhythmus, ist genau das, wofür eine additive Zerlegung und eine Fourier-Transformation gebaut sind.

Die Fähigkeit zum Nachtrainieren liefern, nicht ein Modell

statt · Die Notebooks übergeben, das Ergebnis des ersten Jahres

Ein Modell, das nur seine Autorin neu trainieren kann, ist kein Ergebnis, sondern eine Beratungsabhängigkeit. Konfigurationsgesteuertes Training und Inferenz als getrennte Dienste heissen, dass sie monatlich ohne uns neu trainieren können.

KOCO Solutions verkauft Software für die Abfallsammlung, und ihre bisherige Prognose war eine adaptive lineare Regression: die Füllrate zwischen zwei Leerungen mitteln und fortschreiben. Das funktioniert, sieht aber immer nur Daten von Sammeltagen, eine Handvoll Punkte pro Woche.

Das erste Problem war nicht die Modellierung, sondern die Form der Daten. Die an den Sammelstellen erfassten Gewichte mussten zu einer durchgehenden Reihe werden, bevor ein Zeitreihenmodell überhaupt ansetzen kann. Also haben wir die Messungen in eine Kette linearer Regressionen überführt und dazwischen interpoliert, um eine Füllrate in kg/Tag zu erhalten. Begonnen hatten wir mit kg/Stunde und es verworfen: dort waren nur 2,15% der Punkte echte Messungen gegenüber 25,6% bei Tagesauflösung, und es gab keinen Feldbeleg dafür, dass die Befüllung innerhalb eines Tages linear verläuft. Die gröbere Auflösung zu wählen war die Entscheidung, die die Zahlen belastbar gemacht hat.

Danach haben wir fünf Modellfamilien (Prophet, FFT, RNN, LSTM, Transformer) gegen das bestehende System gestellt, alle nach demselben zweiteiligen Protokoll: ein Wert über alle interpolierten Punkte, einer nur über echte Sammeltage. Der erste misst, ob die Kurve stimmt, der zweite, ob sie an dem Tag nützt, an dem ein Disponent entscheidet.

Die tiefen Modelle verloren. RNNs, LSTMs und Transformer landeten auf oder leicht unter KOCOs linearer Basis, bei vergleichbarem Aufwand für Training und Betrieb. Prophet und FFT gewannen, Prophet deutlich: 48,04 kg mittlerer absoluter Fehler gegenüber 75,0 kg beim Bestandssystem, und 19,80% MAPE gegenüber 40,42%. Der Rest der Empfehlungen kam aus der explorativen Analyse, nicht aus dem Bauchgefühl: Ausreisser richteten echten Schaden an, also kamen Log-Transformation und eine Trennung der Container nach Grösse dazu.

Ausgeliefert wurde etwas, das sie ohne uns betreiben können: eine dockerisierte Trainings- und Inferenzstrecke, über TOML konfiguriert, dazu ein modulares Analyse-Toolkit für Saisonalität, Messintervalle und Trends je Abfallart. Auch die operativen Fragen, an denen eine Einführung hängt, haben wir beantwortet. Rund vier Monate Historie bei ein bis drei Messungen pro Woche genügen fürs Training, und für einen neuen Container an einem bestehenden Standort trifft ein Modell eines gleichartigen Nachbarn auf ±5%.

Beide Partner bewerteten das Projekt im Schlussbericht an Innosuisse mit 1 von 4, sehr erfolgreich.

Was ich gelernt habe

  • Das Nützlichste, was ich getan habe, war, die Auflösung zu senken. Feiner fühlte sich besser an, bis ich gemessen habe, wie viel der feineren Reihe echt war: rund 2%.
  • Sobald es zwei Auswertungen gab, stimmten die Ranglisten nicht mehr überein, und diese Uneinigkeit war das eigentliche Ergebnis. Ein Modell, das einer Geraden gut folgt, ist kein Modell, das einem Disponenten sagt, ob er einen Lastwagen schicken soll.
  • Ich habe rekurrente Netze und einen Transformer zweimal getunt, bei zwei Auflösungen, und sie verloren gegen eine Fourier-Transformation und eine additive Zerlegung. Zum grössten Modell zu greifen ist eine Gewohnheit, keine Methode.
  • Die Rückmeldung des Kunden hat mir gezeigt, was ich unterschätzt hatte: ihr lineares Modell greift schon ab weniger als fünf Messungen, meines braucht rund vier Monate Historie. Auf einer Flotte, in der viele Container kaum gemessen werden, ist das kein Detail, sondern die entscheidende Einschränkung.

Was es nicht leistet

  • Es war Forschung, kein Produktivbetrieb: die Modelle wurden nie auf KOCOs Flotte ausgerollt.
  • Der herausgestellte Vergleich ist ein Aggregat. Pro Container sieht es weniger schmeichelhaft aus: auf dem Container, der in der ausgelieferten Konfiguration steht, liegt das bestehende lineare Modell an zurückgehaltenen Sammeltagen weiterhin knapp vor Prophet.
  • Der ganze Ansatz braucht rund vier Monate Historie bei ein bis drei Messungen pro Woche, was das Bestandssystem nicht braucht.