Machine-Learning-Modelle bewerten – die Crux mit den Testdaten

Keine Kommentare


Machine-Learning-Technologien lassen sich erfolgreich und praxisnah im Unternehmensumfeld einsetzen. Ein konkreter, überschaubarer Anwendungsfall und somit fokussierter Einsatz von Machine-Learning-Modellen kann dabei echten Mehrwert generieren. Dieser Mehrwert hängt natürlich vom Anwendungsfall und der Performance der trainierten Modelle ab. Das heisst, es gilt zu klären wie gut ein Modell die jeweilige Herausforderung eigentlich unterstützten kann. In diesem Artikel möchte ich daher erläutern, wie sich die Bewertung der Performance gestaltet, insbesondere abhängig davon wie viele Testdaten überhaupt zur Verfügung stehen oder stehen sollten.

Testdatenumfang

Mit Hilfe eines zurückbehaltenen repräsentativen Test-Sets und verschiedener Metriken lassen sich Scores berechnen und die Modelle bewerten sowie vergleichen. Das Test-Set wird dabei vor dem Training zurückgelegt und zur Optimierung des Models weitere Validierung-Sets aus den verbleibenden Daten erzeugt.
Train-Test-Split beim trainieren von Machine Learning Modellen
Sind für den jeweiligen Anwendungsfall sinnvolle Metriken gefunden und zu erreichende Zielwerte definiert, stellt sich die Frage, inwieweit man den erreichten Werten eigentlich vertrauen kann. Schließlich können diese nur auf einer reduzierten Menge von Beispieldaten basieren. Wie viele Testdaten nun für eine aussagekräftige Bewertung nötig sind hängt von dem zu erreichenden Score und dem gewünschten Vertrauen in die Bewertung ab.
Allerdings sind für das Sammeln und im Falle des Supervised Learning, das Labeln der Daten, oft manuelle Schritte nötig und stellen unter Umständen einen nicht zu unterschätzende Kostenfaktor dar. Das heisst, es gilt einen guten Trade-Off zwischen Vertrauen in die Bewertung und den zu erwartenden Kosten für das Sammeln und Aufbereiten der Testdaten zu finden.

Anwendungsfall

Zur weiteren Erläuterung greife ich auf das Beispiel des Artikels: Machine Learning Modelle bewerten – die Crux mit der Metrik zurück.

Ein Hersteller von Trinkgläsern möchte in seiner Produktion defekte Gläser erkennen und aussortieren. Dazu soll ein Modell zur Bildklassifikation trainiert und eingesetzt werden. Die Datenbasis besteht aus Bildern von unversehrten und defekten Gläsern.[1]

Die Anzahl der Bilder von defekten Gläsern sei hier sehr beschränkt, so dass mit gewissem Aufwand erst nach einiger Zeit Bilder von ca. 500 unversehrten und 500 defekten Gläsern zum Training und Testen der Modelle zur Verfügung stehen – insbesondere weil defekte Gläser in der Produktion eher selten auftreten. Aus diesen 1000 Bildern wird dann ein repräsentatives Test-Set vor dem Training zurückgelegt.

Wieviele Testdaten sind nun für eine aussagekräftige Bewertung nötig? Bzw. was bedeutet aussagekräftig in diesem Zusammenhang? Sind 10 % bis 20 % der Datenbasis in diesem Falle 100 bis 200 Bilder ausreichend?
Sei nun in diesem Beispiel die Metrik Accuracy gewählt und das Modell erreicht nach ein wenig Training und Optimierung eine Performance von 80 % korrekter Klassifizierungen – auf einer Basis von 100 Testbildern.
Zur Abschätzung wie vertrauenswürdig dieses Ergebnis eigentlich ist, können Bordmittel der Statistik zum Einsatz kommen.

Vertrauensbereich

Ob ein Bild vom Modell richtig bewertet wurde oder nicht, lässt sich als ein Experiment mit den zwei möglichen Ergebnissen Erfolg oder Misserfolg auffassen. Das Testen eines Models ist ferner eine Serie von gleichartigen unabhängigen Versuchen, so dass die Binominalverteilung bzw. deren Annäherung [2] an die Normalverteilung zur Einschätzung des Ergebnisses anwendbar ist.
Inwieweit man nun dem ermittelten Wert „vertrauen“ kann, lässt sich mit Hilfe eines Vertrauensbereichs, dem Konfidenzintervall, darstellen.
Der Nutzen eines Konfidenzintervalles liegt in der Möglichkeit, die Unsicherheit einer Stichprobe, beispielsweise ein Testlauf auf 100 Bildern, und der daraus resultierenden Schätzung zu quantifizieren. Schätzung deshalb, weil die Testdaten nur einen kleinen Teil der möglichen Datenmenge bzw. Grundgesamtheit darstellen und somit das Modell nur mit einem kleinem Teil von Daten und nicht mit allen jemals möglicherweise vorkommenden Daten getestet wurde.

Das Konfidenzintervall gibt den Bereich an, der bei unendlicher Wiederholung eines Zufallsexperiments mit einer gewissen Wahrscheinlichkeit (dem Konfidenzniveau) die wahre Lage des Parameters einschließt.[3]

Die Darstellung des Intervalls erfolgt dabei mit Hilfe eines unteren und oberen Grenzwertes und der Annahme die Testläufe seien ziemlich oft auf verschiedenen unabhängigen Testdaten-Sets gleicher Größe wiederholt worden. Sodass beispielsweise im Mittel in 95 % der gedachten Testdurchläufe die resultierenden Grenzwerte den ermittelten Score einschließen.

Intervalle berechnen

Die Grenzwerte lassen sich beispielsweise wie folgt berechnen [4]:

$$i = \pm p-z*{\sqrt{\frac{p*(1-p)}{n}}}$$

Wobei \(p=\frac{1}{score}\), \(n\) die Anzahl der Daten und \(z\) eine Konstante ist, die für das gewünschte „Vertrauen“ (Konfidenzniveau), aus der Standardnormalverteilungstabelle abgelesen werden kann. Gängige Werte sind beispielsweise:

Niveau90 %95 %97 %99 %99,5 %
\(z\)1,281,641,962,332,58

Das heisst, für das Konfidenzniveau 95 % ergibt sich bei 100 Testdatensätze und einem gemessenen Score des Modells von 80 % das Intervall: 72 % bis 88 %. Diese Spanne ist schon recht groß und für manche Anwendungsfälle wohl nicht genau genug.

Die Crux

Aber selbst bei der Verdoppelung der Testdaten auf 200 Datensätze ist das resultierende Intervall: 74 % bis 86 % nicht viel kleiner. Im folgenden Diagramm sind für das Konfidenzniveau 95 % ein paar weitere Beispiele für die Accuracy Scores von 80 %, 90 %, 95 % und 99 % sowie für die Testdatengröße 100, 200, 1000, 10000 dargestellt. Ab 10000 Datensätze berechnet sich ein Rahmen von +-1% und ist vielleicht akzeptabel für eine Score von 80 %.
Machine Learning Modelle testen – Intervalle pro Score und Test-Set Größe

Allerdings berechnet sich für ein Ergebnis von 85 % auf Basis von 100 Testdaten das Intervall zu 78 % bis 92 %. Es überdeckt damit auch einen Wert von 80 %. Das legt den Gedanken nahe, dass es unter Umständen möglich ist, mit weniger Trainingsdaten zu arbeiten und das Testdaten-Set besser auszustatten. Es ist schließlich möglich, dass bei einem schlechteren Score, beispielsweise durch ein Training auf weniger Daten, die Grenzwerte des Konfidenzintervalles den ursprünglich besseren Score immer noch mit einschließen.
Ferner kann das Fokussieren auf die letzten Promille Verbesserung, ermittelt auf Basis einen kleines Tests-Sets, ein nicht zielführendes Unterfangen sein. Oder gar der Effekt eintreten, dass nach Aufstockung der Testdaten ein vorher vielleicht nicht so gut erscheinendes Modell besser abschneidet, als das durch einen unwesentlich höhere Score ursprünglich präferierte.
Das heisst, eine Aussage über die Performance des Modells und Abgrenzung gegenüber anderen Modellen auf Basis einer überschaubaren Anzahl von Testdaten ist nur bedingt möglich.
Allgemein gilt: Je größer die Stichprobe, aus der die Schätzung gezogen wurde, desto präziser ist die Schätzung und desto kleiner und besser das Konfidenzintervall.

Fazit

Letztendlich sollte die Bewertung eines Modells mit Augenmaß erfolgen und die Größe eines Test-Sets in die Bewertung mit einfließen. Gerade bei Ergebnissen, die sich nicht wesentlich unterscheiden, muss die Auswahl eines Modells nur anhand dieser Bewertungen nicht immer erfolgsvorsprechend sein. Ein Feldtest von mehreren, nicht eindeutig abgrenzbaren Modellen in der Praxis, beispielsweise durch A/B-Testing, kann dabei eine Entscheidung unterstützen.

Referenzen:

[1] codecentric blog, Machine Learning Modelle bewerten – die Crux mit der Metrik
[2] Wikipedia, Satz von Moivre-Laplace
[3] Wikipedia, Konfidenzintervall
[4] Wikipedia, Konfidenzintervall für die Erfolgswahrscheinlichkeit der Binomialverteilung

Berthold Schulte

Berthold ist Informatiker mit langjähriger Erfahrung in der Konzeption und Realisierung von Softwarelösungen verschiedenster Komplexität und Größenordnung.
Er fokussiert sich auf Methoden und Technologien des Machine und Deep Learnings und ist als Consultant im Data Science und AI Umfeld tätig.

Über 1.000 Abonnenten sind up to date!

Die neuesten Tipps, Tricks, Tools und Technologien. Jede Woche direkt in deine Inbox.

Kostenfrei anmelden und immer auf dem neuesten Stand bleiben!
(Keine Sorge, du kannst dich jederzeit abmelden.)

* Hiermit willige ich in die Erhebung und Verarbeitung der vorstehenden Daten für das Empfangen des monatlichen Newsletters der codecentric AG per E-Mail ein. Ihre Einwilligung können Sie per E-Mail an datenschutz@codecentric.de, in der Informations-E-Mail selbst per Link oder an die im Impressum genannten Kontaktdaten jederzeit widerrufen. Von der Datenschutzerklärung der codecentric AG habe ich Kenntnis genommen und bestätige dies mit Absendung des Formulars.

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.