Beliebte Suchanfragen

Cloud Native

DevOps

IT-Security

Agile Methoden

Java

|
//

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

25.3.2020 | 5 Minuten Lesezeit


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.

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] :

Konfidenzintervall

Wobei p=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 %
z1,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 %.

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

|

Beitrag teilen

Gefällt mir

2

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//

Gemeinsam bessere Projekte umsetzen.

Wir helfen deinem Unternehmen.

Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.

Hilf uns, noch besser zu werden.

Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.