Die kurze Antwort: Ich splitte Kfz-Schadendaten nie nach Einzelbild, sondern immer nach Fahrzeug, Schadensfall oder Bildserie. Sonst landet derselbe Fall teils im Training und teils im Test. Das macht Kennzahlen schnell zu gut.
Wenn ich es sauber machen will, beachte ich vor allem diese Punkte:
- Ich halte jede Fahrzeug-ID nur in einem Set.
- Ich lasse komplette Bildserien zusammen.
- Ich nutze keine Daten, die erst nach der Erstaufnahme entstanden sind.
- Ich prüfe die Klassenverteilung in Train, Validierung und Test.
- Ich tune nur mit Validierungsdaten und nutze den Testsatz genau einmal am Schluss.
Gerade bei Schadendaten mit vielen Fotos pro Fall ist das der Knackpunkt: 100 Bilder sind nicht 100 unabhängige Beispiele. Oft sind es nur 1 Fahrzeug, 1 Schadenfall und viele ähnliche Perspektiven. Wenn ich das ignoriere, messe ich Wiedererkennung statt Leistung auf neuen Fällen.
Zur Einordnung helfen mir drei feste Rollen:
- Training: Hier lernt das Modell aus Bildern und Metadaten.
- Validierung: Hier passe ich Modell, Schwellen und Parameter an.
- Test: Hier prüfe ich das fertige Modell am Ende auf bis dahin unberührten Fällen.
Ein grober Richtwert für die Aufteilung ist oft 80/10/10, 70/15/15 oder 60/20/20. Entscheidend ist aber nicht die Bildzahl, sondern die Zahl unabhängiger Gruppen und ob seltene Schadensklassen in allen Sets genug vorkommen.
| Bereich | Wofür ich ihn nutze | Was ich vermeide |
|---|---|---|
| Training | Modell lernen lassen | Testinfos einfließen lassen |
| Validierung | Modellwahl, Tuning, Schwellen | Testsatz zum Nachsteuern nutzen |
| Test | Einmalige Endprüfung | Mehrfaches Nachmessen |
Kurz gesagt: Ein sauberer Split blockiert Leckagen, trennt Gruppen statt Bilder und hält den Testsatz bis zum Ende geschlossen. Genau so bekomme ich Kennzahlen wie F1-Score je Klasse oder Balanced Accuracy, die für neue Schadenfälle mehr aussagen.
Kfz-Schadendaten sauber splitten: 3-Schritte-Prozess
Schritt 1: Die wichtigsten Leckagequellen finden und blockieren
Vor dem Split müssen Leckagequellen raus. Sonst misst du am Ende nicht, wie gut das Modell verallgemeinert, sondern nur, wie gut es bekannte Muster wiedererkennt.
Bei Kfz-Schadendaten tauchen drei Probleme immer wieder auf: dasselbe Fahrzeug landet in mehreren Datensätzen, fast identische Bildserien aus einer Inspektion werden getrennt verteilt, und es fließen Merkmale ein, die erst nach der Schadensbewertung entstehen.
| Leckagequelle | Warum sie das Ergebnis verzerrt | Korrekte Lösung |
|---|---|---|
| Gleiches Fahrzeug in Trainings- und Testdaten | Wiedererkennung statt Generalisierung | Gruppierung nach VIN, Fahrzeug-ID oder Schaden-ID; alle Datensätze einer Gruppe in nur einen Split |
| Bildserie oder Inspektionsserie aufgeteilt | Nahezu identische Bilder im Test | Serien-ID als Gruppenkey verwenden; alle Bilder einer Aufnahmereihe im selben Split halten |
| Reparaturergebnis oder Regulierungssumme als Merkmal | Merkmale liegen zum Vorhersagezeitpunkt noch nicht vor | Alle Merkmale mit Zeitstempel nach der Erstmeldung aus dem Feature-Set ausschließen |
So lässt sich das in der Praxis umsetzen:
Dasselbe Fahrzeug aus mehreren Datensätzen heraushalten
Nutze Schaden-ID, VIN oder eine interne Fahrzeug-ID als Gruppenschlüssel. Alle Daten eines Schadenfalls bekommen denselben Schlüssel. Gesplittet wird dann auf Ebene der eindeutigen Gruppen-IDs - nicht auf Ebene einzelner Zeilen oder Bilder.
Die Prüffrage ist simpel: Nach dem Split darf kein VIN-Wert und keine Schaden-ID in mehr als einem Datensatz auftauchen.
Bildserien und Inspektionsserien als Einheit behandeln
Solche Serien dürfen nie über mehrere Splits verteilt werden. Warum? Weil der Testsatz sonst Bilder enthält, die den Trainingsbildern fast wie ein Zwilling gleichen.
Erkennen lassen sich diese Serien über Zeitstempel, Geräte-IDs, Standort-Metadaten oder Serien-IDs aus dem Dokumentationssystem. Fehlen diese Angaben, kann Ähnlichkeits-Hashing helfen. Damit lassen sich nahezu identische Bilder clustern und als gemeinsame Gruppe behandeln.
Nachreparatur- oder Zukunftsinformationen aus dem Modell-Input ausschließen
Merkmale wie Endrechnung, Restwert oder ein nachträgliches Label wie „wirtschaftlicher Totalschaden" kennt das Modell zum Vorhersagezeitpunkt noch gar nicht. Wenn solche Felder trotzdem im Input landen, ist das Ergebnis von Anfang an schief.
Deshalb sollte jedes Merkmal einen Zeitstempel bekommen, der zeigt, wann es zum ersten Mal im System erfasst wurde. Alles, was nach dem definierten Vorhersagezeitpunkt entsteht, wird als potenziell leckend markiert und aus dem Feature-Set entfernt. Gerade Sachverständige erkennen solche versteckten Zielwerte oft sehr schnell.
Damit sind die wichtigsten Leckagequellen vor dem Split blockiert.
sbb-itb-d35113a
Schritt 2: Nach Fahrzeug, Schadensfall oder Bildserie splitten – nicht nach Einzelbild
Wenn Leckagen blockiert sind, kommt es auf den Split an. Er entscheidet, wie belastbar die spätere Auswertung ist. Deshalb wird nicht auf Ebene einzelner Bilder gesplittet, sondern auf Gruppenebene. Ein Fahrzeug, ein Fall oder eine Bildserie bleibt immer zusammen.
Konkret heißt das: Kein Zufallssplit über Einzelbilder. Stattdessen trennst du nach Fahrzeug-, Fall- oder Seriengruppe. Sonst landet ein Teil derselben Situation im Training und ein anderer Teil im Testset. Das sieht auf dem Papier gut aus, verfälscht aber das Ergebnis.
Gruppierungsschlüssel in der richtigen Reihenfolge wählen
Wähle den Gruppierungsschlüssel in dieser Reihenfolge:
- zuerst die Fahrzeug-ID
- danach die Schadensfall-ID oder Gutachtenfall-ID
- zuletzt die Aufnahme-ID oder Serien-ID bei Fotobursts
Der Split muss vor dem Feature Engineering passieren. Das ist ein kleiner Schritt mit großer Wirkung. Wenn du erst Merkmale baust und danach splittest, schleppen sich Infos leicht von einem Set ins andere.
Danach prüfst du die Klassenverteilung über alle Sets.
Schadensklassen-Balance über alle drei Sets erhalten
Bei seltenen Schadenstypen reicht ein normaler Gruppensplit oft nicht aus. Dann brauchst du gruppenbasiertes, stratifiziertes Sampling, damit Train-, Validierungs- und Testset die Gesamtverteilung so gut wie möglich abbilden.
Warum ist das wichtig? Ganz einfach: Wenn ein seltener Schaden fast nur im Trainingsset auftaucht, sagt dir das Testergebnis später kaum etwas. Und wenn er nur im Testset liegt, wirkt das Modell schwächer, als es vielleicht ist.
Seeds, Regeln und Datumsbereiche für Reproduzierbarkeit festhalten
In die Doku gehören mindestens:
- der verwendete Zufallsseed
- die Gruppierungslogik
- die Split-Verhältnisse
- die Datumsbereiche der enthaltenen Fälle im deutschen Format TT.MM.JJJJ
Diese Angaben sollten sauber festgehalten werden. Ein Split nach Datum bildet den Betrieb näher ab und macht Drift sichtbar.
Diese Regeln sind die Grundlage für die Splitquoten und Metriken im nächsten Schritt.
Schritt 3: Splitquoten und Auswertungsregeln passend zum Schadenworkflow festlegen
Nach dem Gruppensplit zählt nur noch die Zahl unabhängiger Fahrzeuge – nicht die Zahl der Bilder. Wenn die Gruppen sauber getrennt sind, sagt die Größe der Sets aus, wie belastbar die Auswertung am Ende ist. 20 Fotos desselben Schadensfalls sind eben ein Fahrzeug mit vielen Blickwinkeln und nicht 20 getrennte Fälle. Genau darum geht es: Du willst Generalisierung messen, nicht bloße Wiedererkennung.
Genauso wichtig ist die Verteilung der Schadensklassen. Train, Validierung und Test sollten hier möglichst ähnlich aufgestellt sein. Nur so lassen sich die Ergebnisse pro Klasse später sinnvoll gegeneinander halten.
Quoten nach Fahrzeuganzahl und Klassenabdeckung wählen
Als grobe Regel haben sich diese Aufteilungen bewährt:
- Kleiner Datensatz: 80/10/10
- Mittlerer Datensatz: 70/15/15
- Großer Datensatz: 60/20/20
Bei sehr seltenen Klassen reicht so eine Faustregel allein oft nicht aus. Diese Klassen müssen in Validierung und Test oft genug vorkommen, sonst wirken die Kennzahlen zwar sauber, sagen aber nur wenig aus.
Validierung zum Tunen, Test nur einmal am Ende
Lernrate, Architektur und Wahrscheinlichkeitsschwellen passt du nur auf Basis der Validierungsdaten an. Das Testset bleibt komplett außen vor.
Ausgewertet wird das Testset genau einmal am Schluss. Nur dann bekommst du eine saubere Schätzung der Modellleistung auf Fahrzeugen, die das Modell nie gesehen hat. Wer das Testset mehrmals nutzt, um Entscheidungen zu treffen, macht daraus praktisch ein zweites Validierungsset. Damit geht die ehrliche Schlussprüfung verloren.
Leistung mit klassenspezifischen Metriken berichten
Ob diese Quoten im Alltag tragen, zeigen erst die richtigen Metriken. Die Gesamtgenauigkeit (Accuracy) allein kann bei unausgewogenen Schadensklassen schnell in die Irre führen. Deshalb solltest du Precision, Recall und F1-Score je Klasse berichten, plus den Makro-Durchschnitt. So verschwinden seltene Schäden nicht einfach im Mittelwert.
Fazit: Kurze Checkliste für saubere Schadensdaten-Splits
Am Ende zählt im Grunde nur eine Sache: Splitte nach unabhängigen Gruppen, nie nach Einzelbildern. Nur so testest du Generalisierung statt bloßer Wiedererkennung.
Die wichtigsten Regeln auf einen Blick:
- Jede Fahrzeug-ID nur in einem Set: Jede Fahrzeug- oder Schadenvorgangs-ID darf nur in einem Split vorkommen.
- Bildserien nicht aufteilen: Alle Fotos einer Aufnahmeserie bleiben in einem Split.
- Keine Nachher-Daten als Feature: Nutze nur Felder, die schon bei der Erstaufnahme vorlagen.
- Klassenbalance prüfen: Vergleiche die Schadenklassen in Train, Validierung und Test.
- Validierung fürs Tuning, Test nur einmal: Testdaten wertest du erst ganz am Ende aus.
In digitalen Schadenprozessen ist ein sauberer Split die Grundlage für belastbare KI-Fahrzeugschadenserkennung.
Saubere Splits liefern belastbare Metriken für echte Schadensfälle.
FAQs
Wann reicht ein Split nach Schadenfall statt nach Fahrzeug-ID?
Ein Split nach Schadenfall ist dann sinnvoll, wenn die Unabhängigkeit der Daten gewahrt bleiben soll. Das gilt zum Beispiel bei mehreren verschiedenen Schäden an demselben Fahrzeug oder bei getrennten Schadenereignissen im Zeitverlauf.
So lässt sich Datenleckage vermeiden: Das Modell erkennt nicht bloß bekannte Merkmale eines Fahrzeugs wieder, sondern lernt, die jeweilige Schadensart sauber zu verallgemeinern.
Wie gehe ich mit sehr seltenen Schadensklassen beim Split um?
Bei sehr seltenen Schadensklassen zählt vor allem eins: eine breite und große Datenbasis. Fehlen genug Beispiele, kippen Modelle leicht in Richtung Bias. Genau deshalb sollten Sie gezielte Bias-Tests mit seltenen Schadensmustern einplanen und die Ergebnisse direkt in die nächste Trainingsphase zurückführen.
Hilfreich ist außerdem Transfer Learning. Damit kann ein Modell auf bereits gelerntem Wissen aufbauen, statt bei null zu starten. Das ist gerade dann nützlich, wenn für bestimmte Schadensarten nur wenig Material vorliegt.
Für die Validierung passt ein hybrider Ansatz gut. Dabei prüft das Modell die Standardfälle, während komplexe oder untypische Fälle zusätzlich von menschlichen Fachleuten bewertet werden. So sinken Fehlurteile dort, wo sie am ehesten passieren.
Wann ist ein zeitbasierter Split sinnvoller als ein Zufallssplit?
Ein zeitbasierter Split ist die bessere Wahl, wenn die zeitliche Reihenfolge der Daten einen Einfluss auf die Vorhersage hat. Gerade bei KI-Modellen für die KFZ-Schadensbewertung liefert das eine Einschätzung, die näher an der späteren Praxis liegt.
Der Grund ist einfach: Fahrzeugmodelle ändern sich, Reparaturmethoden entwickeln sich weiter, und auch Schadensbilder sehen mit der Zeit oft anders aus. Ein zeitbasierter Split bildet diese Entwicklung besser nach. Das Modell greift dadurch nicht auf Informationen aus der Zukunft zu und bleibt auch bei neuen, unbekannten Schadenfällen verlässlich.
Verwandte Blogbeiträge
- Wie Transfer Learning die Schadensbewertung beschleunigt
- Wie KI und Computer Vision Fahrzeugschäden erkennen
- Wie Deep Learning Fahrzeugschäden erkennt
- Wie funktioniert Kreuzvalidierung bei Schadensmodellen?
