Wenn Sie ein Problem mit der binären Klassifizierung haben, werden Sie irgendwann auf Konfusionsmatrizen stoßen. Während der Auswertung verwenden Sie eine confusion matrix, um zu verstehen, ob Ihr Modell Ihren Anforderungen entspricht. Aber was ist eine confusion matrix? Welche Erkenntnisse können Sie aus einer confusion matrix ableiten? Diese Fragen werden wir in diesem Leitfaden beantworten.
In diesem Tutorial besprechen wir, was eine confusion matrix ist, was ihr Inhalt bedeutet und wie Konfusionsmatrizen auf binäre Klassifizierungsprobleme angewendet werden. Fangen wir an!
Was ist eine Verwirrungsmatrix?
Eine confusion matrix ist ein Informationsraster, das die Anzahl der True Positives [TP], False Positives [FP], True Negatives [TN] und False Negatives [FN] anzeigt, die beim Anwenden eines Testdatensatzes auf einen Klassifizierungsalgorithmus zurückgegeben werden. Mithilfe einer confusion matrix können Sie herausfinden, wie oft Ihr Modell richtige und falsche Vorhersagen macht.
Konfusionsmatrizen können sowohl bei der Ein- als auch bei der Mehrlabelklassifizierung verwendet werden. Bei der Ein-Labelklassifizierung wird ein einzelnes Label zugewiesen, um ein Bild zu klassifizieren. Ein-Labelklassifizierungsalgorithmen werden auf einer 2×2-confusion matrix dargestellt. Bei der Mehrlabelklassifizierung können mehrere Labels zugewiesen werden, um ein Bild zu klassifizieren. Diese Klassifizierungsmethode wird auf einer größeren Matrix dargestellt, je nachdem, wie viele Labels jedem Bild zugewiesen werden sollen.
Lassen Sie uns ein Beispiel durchgehen. Angenommen, Sie möchten klassifizieren, ob ein Bild erkranktes Pflanzenmaterial enthält . Dies soll als Teil eines Qualitätskontrollprozesses verwendet werden, um zu verhindern, dass gefährliche Pflanzenkrankheiten auf einen Bauernhof gelangen. Wenn eine Pflanzenkrankheit auf einen Bauernhof gelangt, könnte der Ertrag sowohl des Bauernhofs selbst als auch der benachbarten Bauernhöfe beeinträchtigt werden.
The Atlantic berichtete, dass zwischen 2012 und 2017 Kaffeerost – eine Krankheit, die Kaffeepflanzen befällt und durch infizierte Pflanzen übertragen werden kann, die auf eine Farm umgesiedelt werden – Schäden in Höhe von über 3 Milliarden Dollar verursachte und „fast 2 Millionen Bauern von ihrem Land vertrieb“. Dies zeigt, in welchem Ausmaß infizierte Pflanzen die Lebensmittel- und Getränkeproduktion beeinträchtigen können.
Als Teil unserer Prüfungen könnten wir ein binäres Klassifizierungsmodell erstellen . Dieses Modell würde „ja“ zurückgeben, wenn eine Pflanze wahrscheinlich erkranktes Material enthält, und „nein“, wenn die Pflanze in Ordnung zu sein scheint.
Wenn unser Modell fertig ist, müssen wir uns eine wichtige Frage stellen: Wie effektiv funktioniert das Modell? Hier kommt eine confusion matrix ins Spiel.
Die Verwirrungsmatrix: Ein tiefer Einblick
Die confusion matrix liefert uns vier Informationen über unseren Klassifikator.
Wahres Positiv
Ein True Positive [TP] liegt vor, wenn einem Bild erfolgreich die richtige Klasse zugewiesen wird. In unserem Beispiel von vorhin bezieht sich ein TP darauf, wie oft ein Bild einer Pflanze als krank klassifiziert wird, wenn die Pflanze krank ist, und als nicht krank, wenn die Pflanze gesund ist.
Falsch-Positiv
Ein falsch-positives Ergebnis (FP) liegt vor, wenn ein Bild als etwas identifiziert wird, das tatsächlich nicht auf dem Bild zu sehen ist. In unserem Fall ist ein FP das Bild einer gesunden Pflanze, die als krank markiert wird.
Wahres Negativ
Ein True Negative [TN] ist ein Bild, das als nicht zu einer Klasse gehörend identifiziert wird, obwohl es nicht zu dieser Klasse gehört. In unserem Beispiel ist ein Bild einer gesunden Pflanze, das als gesund identifiziert wird, ein True Negative.
Falsch negativ
Ein Falsch-Negativ [FN] ist ein Bild, das als nicht zu einer Klasse gehörend klassifiziert wurde, obwohl es zu dieser Klasse gehört. In unserem Pflanzenbeispiel ist ein Bild einer kranken Pflanze, das als gesund klassifiziert wird, ein Falsch-Negativ.
Auswertung der confusion matrix
Wie Sie eine confusion matrix auswerten, hängt von der Art des Problems ab, das Sie lösen. Kein Modell ist perfekt. Daher kann es eine bestimmte Klassifizierungskategorie geben, für die Sie optimieren möchten. Das bedeutet, dass Sie Ihr Modell so optimieren, dass Sie eine höhere Rate einer bestimmten Klasse (d. h. Falsch-positiv) und eine niedrigere Rate einer anderen Klasse (d. h. Falsch-negativ) erhalten.
Im Allgemeinen möchten Sie die Anzahl korrekter Identifizierungen maximieren. Dies bedeutet, dass Sie eine hohe Rate an Wahr-Positiven und Wahr-Negativen erreichen möchten. Je höher die Rate korrekter Identifizierungen, desto genauer ist Ihr Modell.
Bei den anderen beiden Klassen wird die Auswertung schwieriger: Falsch-positiv und Falsch-negativ.
In manchen Szenarien ist eine höhere Rate an Falsch-Positiv-Ergebnissen wünschenswert, auch wenn sich eine höhere Rate an Falsch-Positiv-Ergebnissen auf die Rate an Wahr-Positiv-Ergebnissen auswirkt. Betrachten wir unser früheres Szenario, in dem wir feststellen müssen, ob eine Kaffeepflanze krank ist. Wenn eine Pflanze als krank gekennzeichnet wird, obwohl sie gesund ist (ein Falsch-Positiv-Ergebnis), bedeutet dies lediglich, dass wir einen Forscher eine Pflanze, die in Ordnung ist, manuell überprüfen lassen müssen.
Bedenken Sie jedoch, was passieren würde, wenn unser Modell eine hohe Rate an Falsch-Negativ-Ergebnissen hätte. Eine kranke Pflanze könnte als gesund markiert und auf die Farm gebracht werden, um dort angepflanzt zu werden. Dies ist mit hohen Kosten für die Farm verbunden. Sie müssen möglicherweise einen Teil ihrer Farm absperren, einen landwirtschaftlichen Spezialisten zur Unterstützung einstellen und können einen Teil oder die gesamte Farm verlieren, wenn die kranke Pflanze nicht früh genug entdeckt wird.
Tatsächlich hängen die Quadranten der Matrix, für die Sie optimieren möchten, von den Kosten ab. Hier sind zwei Punkte, über die Sie nachdenken sollten:
- Wenn die Kosten eines falschen Modells hoch sind, möchten Sie die Rate falsch-negativer Ergebnisse so weit wie möglich reduzieren, selbst wenn dies bedeutet, dass die Rate falsch-positiver Ergebnisse höher ist.
- Wenn die Kosten eines falschen Modells gering sind, können Sie möglicherweise mehr falsch-negative Ergebnisse in Kauf nehmen, solange Ihr Modell weiterhin genau ist.
Nehmen wir beispielsweise an, wir erstellen einen Klassifikator, der nach einer Krankheitskontrolle erkennt, ob Pflanzen für einen Supermarkt richtig bewässert werden. Verfärbte Blätter sind ein Zeichen für zu wenig oder zu viel Wasser, was wiederum ein Hinweis auf ein potenzielles Qualitätssicherungsproblem in der Fabrik sein könnte. Wenn Pflanzen nicht richtig bewässert werden, könnte ein Manager informiert werden, die Bewässerungspläne zu überprüfen. Supermärkte würden zu wenig bewässerte Waren ablehnen.
Eine höhere Rate an falsch-negativen Ergebnissen (wenn eine Pflanze nicht verfärbt ist, aber als verfärbt markiert wird) kann akzeptabel sein, wenn Ihr Modell auch eine höhere Rate an richtig-positiven Ergebnissen aufweist. Dies liegt daran, dass es für Sie weniger kostspielig wäre, ab und zu eine zu wenig oder zu viel gegossene Pflanze zu übersehen, wenn Sie dadurch die Anzahl der Pflanzen verringern, die manuell überprüft werden müssen.
Messen der Gesamtleistung des Modells: Genauigkeit und Präzision
Mit den oben besprochenen Metriken können wir zwei wichtige Statistiken berechnen, die uns über die Gesamtleistung unseres Modells informieren. Diese Statistiken sind Genauigkeit und Präzision.
Was ist Genauigkeit in der Computer Vision?
Die Genauigkeit gibt an, wie viel Prozent der Vorhersagen das Modell richtig gemacht hat. Anhand dieser Informationen können wir grob schätzen, wie viele unserer zukünftigen Vorhersagen falsch sein werden, wenn unser Modell in der Produktion eingesetzt wird. Je höher die Genauigkeit, desto besser.
Die Genauigkeit wird mit der folgenden Formel ermittelt:
Anders ausgedrückt besagt diese Formel, dass die Genauigkeit gleich der Anzahl der korrekten Vorhersagen (TP + TN) geteilt durch die Anzahl der getroffenen Vorhersagen ist. Die Genauigkeit wird normalerweise als Zahl zwischen 0 und 1 angegeben und dann in einen Prozentsatz umgerechnet.
Sie können die Genauigkeit jedoch nicht ohne Berücksichtigung des Kontexts betrachten, in dem die Zahl angegeben wird. Kehren wir zu unserem Beispiel zur Identifizierung von Pflanzenkrankheiten von vorhin zurück. Nehmen wir an, unser Modell hat eine Genauigkeitsrate von 0,94 (94 %). Das ist großartig! Das bedeutet, dass von 100 Vorhersagen 94 richtig sein werden.
Moment mal … 94 ist richtig? Das bedeutet, dass von 100 Pflanzen, die ins Labor kommen, 6 krank sind. Während einige davon für die Sammlung vielleicht nicht allzu schädlich sind, reicht schon eine Pflanze mit einer schlimmen Krankheit aus, um im Labor ernsthaften Schaden anzurichten.
Wenn Sie hingegen feststellen möchten, ob ein Bild Vögel enthält (z. B. für eine Wildtiererhebung), kann eine Unterzählung von 6 von 100 akzeptabel sein.
Was ist Präzision in der Computer Vision?
Präzision ist der Prozentsatz der positiven Identifikationen, die ein Modell vornimmt und die richtig sind. Mithilfe der Präzision können wir feststellen, wie viele Bilder, von denen gesagt wurde, dass sie ein Objekt enthalten, tatsächlich das vom Modell identifizierte Objekt enthielten.
Betrachten wir unser Pflanzenbeispiel. Ein Modell mit einer hohen Präzisionsrate hätte in mehr Fällen, in denen ein Bild eine Krankheit enthalten könnte, recht gehabt.
Die Formel zur Berechnung der Präzision lautet: Anzahl der True Positives geteilt durch die Summe aller True Positives und False Positives. Wie bei der Genauigkeit wird die Präzision als Zahl zwischen 0 und 1 gemessen und normalerweise in einen Prozentsatz umgerechnet executive producer.
Hier ist die ausgeschriebene Formel:
Angenommen, unser Pflanzenidentifikationsmodell hat eine Präzisionsrate von 0,75. Das bedeutet, dass 75 % der True-Positive-Vorhersagen zutreffen. 25 % der True-Positive-Vorhersagen sind in diesem Fall falsch klassifiziert, was bedeutet, dass die Pflanze im Bild keine Krankheit hat.
Bei der Identifizierung von Pflanzen ist ein niedrigerer Präzisionswert kein allzu großes Problem, da ein Mensch manuell überprüfen kann, dass eine Pflanze keine Krankheit hat, und sie ins Labor bringen kann. Daher ist uns die Optimierung der Genauigkeit – also die Sicherstellung, dass unser Modell mehr richtige Vermutungen anstellt – wichtiger als die Präzision. Wenn das bedeutet, dass wir Leute bitten müssen, mehr Pflanzenproben zu überprüfen, ist das für unser Beispiel ein akzeptables Risiko.
Berechnen einer confusion matrix für eine Objekterkennungsaufgabe
Mit dem supervisionPython-Paket können Sie eine confusion matrix berechnen, die zeigt, wie Ihr Modell bei gegebenen Daten funktioniert. Sie können eine confusion matrix in wenigen Codezeilen berechnen.
Installieren Sie zunächst die Überwachung:
Um eine confusion matrix zu berechnen, benötigen Sie:
- Ein Auswertungs- oder Testsatz zur Verwendung mit Ihrer confusion matrix und;
- Ein Modell, auf dessen Grundlage Inferenzen ausgeführt werden können.
Erstellen Sie eine neue Python-Datei und fügen Sie den folgenden Code hinzu:
In diesem Code initialisieren wir ein YOLOv8-Modell. Anschließend laden wir mithilfe der API einen Datensatz im YOLO PyTorch TXT-Format supervision.DetectionDataset. Anschließend definieren wir einen Rückruf, der eine Inferenz auf einem Bild ausführt und zurückgibt sv.Detections. Diese Erkennungen können zur Berechnung einer confusion matrix verwendet werden.
Schließlich berechnen wir unsere confusion matrix mit der ConfusionMatrix.benchmark()Methode. Dies gibt eine 2D np.ndarray-Form zurück (len(classes) + 1, len(classes) + 1), die die Anzahl von TP, FP, FNund TNfür jede Klasse enthält. Sie können eine geordnete Liste von Klassen sehen, die der Matrix im classesAttribut unserer initialisierten confusion matrix entsprechen.
Fazit
Die confusion matrix ist ein wichtiges Werkzeug bei der Bildklassifizierung. Sie liefert Ihnen vier wichtige Statistiken, mit denen Sie die Leistung Ihres Computer Vision-Modells verstehen können. Konfusionsmatrizen enthalten die Felder „Richtig positiv“, „Falsch positiv“, „Falsch negativ“ und „Richtig negativ“.
Wenn Sie ein binäres Klassifizierungstool erstellen, ist es wichtig, dass Sie die Kosten einer höheren Rate in den Feldern „Falsch positiv“ und „Falsch negativ“ verstehen. Diese Informationen helfen Ihnen dabei, zu entscheiden, welche Teile des Quadranten Sie optimieren möchten.
Denken Sie daran: Kein Modell ist perfekt. Daher ist es wichtig, dass Sie versuchen, Ihr Modell an Ihre Bedürfnisse anzupassen und Risiken zu minimieren, anstatt nach Perfektion zu streben.
Zitieren Sie diesen Beitrag
Verwenden Sie den folgenden Eintrag, um diesen Beitrag bei Ihrer Recherche zu zitieren:
James Gallagher . (25. November 2022). Was ist eine confusion matrix? Ein Leitfaden für Anfänger. Roboflow-Blog: https://blog.roboflow.com/what-is-a-confusion-matrix/
Besprechen Sie diesen Beitrag
Wenn Sie Fragen zu diesem Blogbeitrag haben, starten Sie eine Diskussion im Roboflow-Forum .