scikit-learn confusion matrix module Nachdem Sie nun Ihre Verwirrungsmatrix berechnet haben, die eine 2*2-Matrix für jedes binäre Klassifizierungsproblem sein wird, wäre die resultierende Matrix wie folgt:
confusion matrix
A confusion matrix consists of 4 values which are very valuable to know for every data scientist:
Falsch Positiv (FP) — Instanzen, die fälschlicherweise als positive Klasseninstanzen klassifiziert sind (0,1) = 5
Falsch negativ (FN) — Instanzen, die fälschlicherweise als negative Klasseninstanzen klassifiziert sind (1,0) = 10
Wahr Positiv (TP) — Instanzen, die korrekt als positive Klasseninstanzen klassifiziert sind (1,1) = 50
Wahr Negativ (TN) — Instanzen, die korrekt als negative Klasseninstanzen klassifiziert sind (0,0) = 35
Gesamtinstanzen des Datensatzes (Training + Testinstanzen) = 5+10+50+35 = 100
Jetzt können wir 2 wichtige Prozentsätze berechnen:
1- Genauigkeitsrate = Richtig/ Gesamt = (50+35)/ 100 = 85%
2- Fehlerquote = Falsch/ gesamt = (5+10)/ 100 = 15%
Nun, ich sollte feiern, nachdem ich einen solchen Klassifikator gebaut habe, der eine so gute Genauigkeitsrate hat, … oder sollte ich?!
Mal sehen, bitte folgen Sie mir im folgenden Szenario „Sie sind ein Datenwissenschaftler, der in einer Bank arbeitet und ein Klassifizierungsmodell zur Klassifizierung von Betrugs- und Nichtbetrugstransaktionen erstellt hat, Sie möchten Ihr Modell auswerten, also haben Sie sich entschieden, die Verwirrungsmatrix zu berechnen, und das war das Ergebnis:“
Verwirrungsmatrix — Betrugserkennung
Durch die Analyse der Verwirrungsmatrix können wir sagen, dass wir einen ziemlich guten Klassifikator mit einer Genauigkeitsrate von = 9.800 / 10.000 = 98% haben
Aber Der Datenwissenschaftler hat eine ziemlich seltsame Idee, die er ausprobieren möchte; Die Idee ist, den Klassifikator daran zu hindern, eine der Transaktionen als Betrug (positive Klasse ‚1‘) zu klassifizieren, dann berechnete er die neue Verwirrungsmatrix und es war wie folgt:
Die Genauigkeitsrate des Klassifikators = 9.850 / 10.000 = 98,5%, was bedeutet, dass die Genauigkeitsrate um 0,5% erhöht wird, obwohl der Klassifikator nicht richtig funktioniert!
Und das nennt man Genauigkeit, also sagen wir definitiv, dass die Messgenauigkeit nicht ausreicht, um die Frage zu beantworten: Wie gut ist Ihr Klassifikator?!‘
Die Lösung besteht darin, eine andere Messmethode zu versuchen, die
2 ist. Kurve des kumulativen Genauigkeitsprofils (CAP) – Dies ist eine robustere Methode zur Unterstützung unseres Maschinenmodells. Um die Intuition dahinter zu verstehen, müssen Sie mir in den folgenden Szenarien folgen:Szenario 1 – Stellen Sie sich vor, Sie als Datenwissenschaftler arbeiten in einem Unternehmen, das für sein neues Produkt werben möchte, damit es eine E-Mail mit seinem Angebot an alle Kunden sendet und normalerweise 10% der Kundenantworten und tatsächlich kauft das Produkt, damit sie wissen, dass dies für diese Zeit der Fall sein wird und dieses Szenario als zufälliges Szenario bezeichnet wird.
Szenario#2 — Sie arbeiten immer noch in der dasselbe Unternehmen, aber dieses Mal haben Sie sich dafür entschieden, es systematischer zu machen:
Überprüfen Sie Ihre historischen Daten und nehmen Sie eine Gruppe von Kunden, die das Angebot tatsächlich gekauft haben, und versuchen Sie, diese Informationen zu extrahieren
Messen Sie diese Faktoren und versuchen Sie herauszufinden, welcher von ihnen die Anzahl der gekauften Produkte beeinflusst, oder passen Sie die Daten mit anderen Worten an ein logistisches Regressionsmodell an.
Machen Sie eine Vorhersage, welche Kunden das Produkt mit größerer Wahrscheinlichkeit kaufen.
Richten Sie sich dann speziell an diejenigen Personen, von denen Sie vorhergesagt haben, dass sie das Produkt mit größerer Wahrscheinlichkeit kaufen.
Dann durch Messung der Reaktion der Zielgruppe, die in dieser Kurve ‚CAP-Kurve‘ dargestellt ist.
Wir können die Verbesserung definitiv bemerken; Wenn Sie 20.000 Zielkunden kontaktiert haben, haben Sie ungefähr 5.000 positive Antworten erhalten, während Sie in Szenario 1 durch Kontaktaufnahme mit der gleichen Anzahl von Kunden nur 2.000 positive Antworten erhalten haben.
ie können es auf die nächste Ebene bringen, indem Sie ein anderes Modell erstellen, möglicherweise ein SVM- / Kernel-SVM-Modell (Support Vector Machine), um es mit Ihrem aktuellen logistischen Regressionsmodell zu vergleichen.
Aber wie analysiere ich das resultierende Diagramm ?
Je besser Ihr Modell ist, desto größer ist der Bereich zwischen seiner Kappenkurve und der Geraden des zufälligen Szenarios.
Hypothetisch können wir das sogenannte perfekte Modell zeichnen, das ein Modell darstellt, das unmöglich zu bauen ist, es sei denn, Sie haben eine Art Kristallkugel . Es zeigt, dass Sie beim Senden des Angebots an 10.000 mögliche Kunden eine perfekte positive Antwort erhalten haben, bei der alle kontaktierten Personen das Produkt gekauft haben.
Das Zeichnen eines solchen hypothetischen Modells hilft uns als Referenz bei der Bewertung Ihrer Modelle UND Kurven.
Es gibt 2 Ansätze zur Analyse des vorherigen Diagramms:
Erstens —
Fläche unter der perfekten Modellkurve berechnen (aP)
Fläche unter der perfekten Modellkurve berechnen (aR)
Genauigkeitsrate berechnen(AR) = aR/ aP; als (AR) ~ 1 (Je besser Ihr Modell ist) und als (AR)~0 (Je schlechter Ihr Modell ist)
Zweitens —
Zeichnen Sie eine Linie vom 50% -Punkt 50.000) in der gesamten kontaktierten Achse bis zur Modellkappenkurve
Projizieren Sie sie dann von diesem Schnittpunkt auf die gekaufte Achse
Dieser X% -Wert gibt an, wie gut Ihr Modell ist:
Wenn X < 60% /(6000) dann haben Sie ein Müllmodell
Wenn 60% < X < 70% /(7000) dann haben Sie ein schlechtes Modell
Wenn 70% < X < 80% /(8000) dann haben Sie ein gutes Modell
Wenn 80% < X < 90%/ ( 9000) dann haben Sie ein sehr gutes Modell
If 90% < X < 100% / (10.000) dann ist Ihr Modell zu gut, um wahr zu sein! was ich meine ist, dass dies normalerweise aufgrund einer Überanpassung geschieht, was definitiv keine gute Sache ist, da Ihr Modell nur die Daten klassifiziert, auf denen es trainiert ist, aber mit neuen unsichtbaren Instanzen sehr schlecht.