Verwirrungsmatrix in R: Erstellen und Berechnen [mit Beispielen]
Veröffentlicht: 2021-03-09R hat sich heute zu einem der führenden Softwarepakete für Daten- und statistische Analysen entwickelt. Es ist eine Open-Source-Umgebung, die wegen ihrer starken Computer-, visuellen und grafischen Fähigkeiten bevorzugt wird. Wenn Sie ein Ingenieurstudent, ein Business-Analytics-Experte oder jemand mit großem Interesse an Data Science sind, kann Ihnen das Erlernen der Programmiersprache R in vielerlei Hinsicht helfen.
In diesem Artikel werden wir einige grundlegende Konzepte des maschinellen Lernens durch diese integrierte Suite behandeln. Genauer gesagt werden wir diskutieren, wie man eine Konfusionsmatrix in R berechnet .
Aber bevor wir zu den technischen Einzelheiten übergehen, lassen Sie uns zunächst verstehen, warum wir uns für diesen Zweck für R entschieden haben. Aufgrund der folgenden Vorteile gewinnt diese Programmiersprache unter Statistikern und Datenwissenschaftlern weltweit an Popularität:
- Reproduzierbar: Mit R können Sie Berichte reproduzieren und wiederverwendbaren Code schreiben
- Teilbar: Es hat eine niedrige Lernkurve, die Wege für die Zusammenarbeit eröffnet
- Wiederholbar: Jeder kann nicht nur verstehen, was Sie getan haben, sondern auch die Schritte wiederholen, um dieselben Funktionen auf seinen Computern zu erstellen
Die Verwendung der Sprache R im Bereich des maschinellen Lernens hat aus den oben genannten Gründen ebenfalls zugenommen. Sie müssen kein erfahrener Programmierer sein, um die Syntax zu verstehen. Deshalb stellen wir Ihnen im nächsten Abschnitt einige Grundlagen vor.
Inhaltsverzeichnis
Was ist eine Verwirrungsmatrix?
Eine Konfusionsmatrix oder Fehlermatrix befasst sich mit dem Standardklassifikationsproblem in der Statistik. Es umfasst ein spezifisches Tabellenlayout, das es Datenanalysten erleichtert, die Leistung eines Algorithmus zu visualisieren. Dies gilt insbesondere für überwachte Lernalgorithmen.
Um dies weiter auszuführen, folgt eine Konfusionsmatrix einem N x N-Format, wobei sich N auf die Anzahl der Zielklassen bezieht. Sie können diese Tabelle oder Matrix verwenden, um die Leistung eines Klassifizierungsmodells zu bewerten. Dies ist möglich, weil die Matrix die vorhergesagten Werte mit den Zielwerten vergleicht.
Kurz gesagt, Sie können beschreiben, wie Ihr maschinelles Lernmodell, in diesem Fall ein Klassifikator, mit einer Reihe von Testdaten arbeitet (für die Sie bereits die wahren Werte haben).
Um diese Methode zu verstehen, müssen Sie mit den folgenden Begriffen vertraut sein:
- True Positive (TP): Positive Werte werden korrekt vorhergesagt
- Falsch positiv (FP): Negative Werte werden fälschlicherweise als positiv vorhergesagt
- Falsch negativ (FN): Positive Werte werden als negativ vorhergesagt
- True Negative (TN): Negative Werte, die als tatsächliche negative Werte vorhergesagt werden
Schauen wir uns einige Beispiele an, um mehr Klarheit zu gewinnen.
Beispiele für Verwirrungsmatrix
- Richtig positiv
Als Sie vorausgesagt hatten, dass Indien die Cricket-Weltmeisterschaft gewinnen würde, und es gewann.
- Falsch positiv
Als Sie erwartet hatten, dass Indien gewinnt, aber es verlor.
- Falsch negativ
Als Sie vorausgesagt hatten, dass Frankreich nicht gewinnen würde, aber es hat gewonnen.
- Wahres Negativ
Als Sie prognostizierten, dass Indien die Cricket-Weltmeisterschaft „nicht gewinnen“ würde und es die Serie im wirklichen Leben verlor.
Im weiteren Verlauf sollten Sie sich daran erinnern, dass alle vorhergesagten Werte wie folgt beschrieben werden: Positiv, Negativ, Wahr und Falsch.
Wie berechnet man die Verwirrungsmatrix in R?
Stellen Sie sich ein Szenario vor, in dem Sie eine Liste mit erwarteten oder bekannten Werten und eine weitere Liste mit Vorhersagen aus Ihrem maschinellen Lernmodell haben. In R können Sie die Konfusionsmatrix mit einer einfachen Funktion aus der Caret-Bibliothek berechnen: ConfusionMatrix(). Es kann nicht nur die Matrix berechnen, sondern auch einen detaillierten Bericht für die Ergebnisse zurückgeben.
Sie können die unten aufgeführten Schritte befolgen, um den Prozess des Data Mining zu üben:
- Testen Sie den angegebenen Datensatz mit den erwarteten Ergebnissen.
- Sagen Sie die Zeilen Ihres Testdatasets voraus.
- Bestimmen Sie die Gesamtzahl der richtigen und falschen Vorhersagen für jede Klasse.
Sobald Sie dies getan haben, finden Sie die Nummern wie folgt organisiert:
- Jede Zeile der Matrix entspricht einer vorhergesagten Klasse und jede Spalte wird mit einer tatsächlichen Klasse verknüpft.
- Die Gesamtzahl der richtigen und falschen Klassifizierungen wird in der Tabelle zusammen mit den Summen für jede Klasse wiedergegeben.
Angenommen, Sie haben 10 Personen, die in zwei Klassen eingeteilt sind, männlich und weiblich. Sie müssen die Informationen als Verwirrungsmatrix anordnen, wenn Sie wissen, dass 2 Männer als Frauen eingestuft wurden, während 1 Frau als Mann eingestuft wurde.
Frauen Männer
Frauen 3 1
Männer 2 4
Hier sind die korrekten Werte in einer diagonalen Linie von links oben nach rechts unten in der Matrix angeordnet (3 + 4). Die Ergebnisse zeigen uns, dass es mehr Fehler gibt, männliche Mitglieder als Frauen vorherzusagen, als weibliche als Männer vorherzusagen. Der Algorithmus hat 7 richtige Vorhersagen von 10 möglichen Ergebnissen gemacht, was bedeutet, dass er eine Genauigkeit von 70 % hat.
Leitfaden zum Erstellen und Berechnen einer Konfusionsmatrix in R
Wie Sie sehen können, ist die Konfusionsmatrixfunktion ein nützliches Werkzeug, um die möglichen Ergebnisse Ihrer Vorhersagen zu untersuchen. Bevor Sie also mit der Erstellung Ihrer Matrix beginnen, müssen Sie zunächst einen „Schnitt“ Ihrer Wahrscheinlichkeitswerte vornehmen. Mit anderen Worten, Sie müssen einen Schwellenwert markieren, um Ihre Wahrscheinlichkeiten in Klassenvorhersagen umzuwandeln.
Dazu können Sie die Funktion ifelse() verwenden. Zum Beispiel:
Klassenvorhersage <-
ifelse (probability_prediction > 0,50,
„positive_klasse“,
„negative_klasse“
)
Sie können auch die table()-Funktion schreiben, um eine Kontingenztabelle in Basis R zu erstellen. Die verwirrteMatrix()-Funktion ist jedoch dafür bekannt, wertvolle Hilfsstatistiken zu liefern.
Der nächste Schritt besteht darin, die Konfusionsmatrix und andere zugehörige Statistiken zu berechnen. Hier benötigen Sie die prognostizierten und tatsächlichen Ergebnisse. Nehmen Sie zum Beispiel die folgende Aussage:
Verwirrungsmatrix (vorhergesagt, tatsächlich)
Jetzt sollten Sie damit fortfahren, Ihre numerischen Vorhersagen in einen Vektor von Klassenvorhersagen, sat p_class, umzuwandeln. Angenommen, Sie möchten einen Grenzwert von 0,50 verwenden.
Vergessen Sie beim Treffen von Vorhersagen auch nicht, die positiven und negativen Klassen mit separaten Indikatoren zu benennen. Nennen wir die positiven Klassen „T“ und die negativen „L“. Dies geschieht, um Klassen mit den Originaldaten abzugleichen.
Nachdem Sie nun eine p_class und tatsächliche Werte im Testdatensatz haben, können Sie mit der Erstellung Ihrer Verwirrungsmatrix beginnen, indem Sie die Funktion verwirrungMatrix() aufrufen.
Alternativ möchten Sie vielleicht sicher sein, dass Ihr Data-Mining-Modell genau ist. In solchen Fällen ist es ratsam, einen Schwellenwert von 0,10 und nicht 0,90 zu verwenden. Danach können Sie mit den gleichen Schritten wie in der vorherigen Übung fortfahren.
Mit Ihren neu vorhergesagten Klassen können Sie diesen Aufruf wiederholen:
pred <- ifelse(Wahrscheinlichkeit > Schwelle, „T“, „L“)
Schließlich können Sie die Funktion verwirrtMatrix() in Caret verwenden:
Verwirrungsmatrix (vorhergesagt, tatsächlich)
Damit schließen wir dieses Tutorial zur Konfusionsmatrixfunktion für maschinelles Lernen in R ab. Ich hoffe, Sie fanden es hilfreich!
Fazit
Wenn Sie neugierig sind, mehr über R, Data Science, zu erfahren, schauen Sie sich unser PG-Diplom in Data Science an, das für Berufstätige entwickelt wurde und mehr als 10 Fallstudien und Projekte, praktische Workshops, Mentoring mit Branchenexperten, 1-on- 1 mit Branchenmentoren, mehr als 400 Stunden Lern- und Jobunterstützung bei Top-Unternehmen.
Die folgenden Gründe führen uns in die Vorteile einer Verwirrungsmatrix ein und wie sie mit Leistungsproblemen umgeht. Die Konfusionsmatrix in R kann mit der Funktion „confusionMatrix()“ der Caret-Bibliothek berechnet werden. Diese Funktion berechnet nicht nur die Matrix, sondern gibt auch einen detaillierten Bericht der Matrix zurück. Sie müssen einige Schritte befolgen, um Ihre Konfusionsmatrix zu berechnen. Sie können die Genauigkeitsrate eines Modells berechnen, indem Sie eine 2x2-Verwirrungsmatrix verwenden. Mit der folgenden Formel erhalten Sie die Erfolgsrate oder die Genauigkeitsrate:Was ist die Notwendigkeit, eine Konfusionsmatrix zu erstellen?
1. Die Konfusionsmatrix wird benötigt, um das Problem mit Klassifikationsgenauigkeit zu beseitigen. Das Klassifizierungsverhältnis verursacht oft einige Probleme, indem es die notwendigen Details des Modells verschleiert.
2. Die Konfusionsmatrix gibt einen Einblick in die Vorhersagen und die Art der im Klassifizierungsmodell gemachten Fehler. Die richtigen und fehlerhaften Vorhersagen werden zusammengefasst dargestellt.
3. Die Fehler und ihre Typen werden klassifiziert, um Ihnen ein Verständnis der Leistung Ihres Modells zu vermitteln. Wie berechnet man die Konfusionsmatrix in R?
1. Testen Sie Ihren Datensatz.
2. Sagen Sie die Gesamtzahl der Zeilen voraus.
3. Sagen Sie die gesamten richtigen und falschen Vorhersagen für jede Klasse voraus.
Sobald Sie Ihre Daten abgebaut haben, erhalten Sie die Zahlen in Reihen organisiert. Die Zeilen werden mit der vorhergesagten Klasse verbunden, während die Spalten mit der tatsächlichen Klasse verbunden werden. Die korrekten Werte werden in einer diagonalen Linie angezeigt. Addieren Sie alle Werte und Sie erhalten den Genauigkeitsprozentsatz Ihrer Matrix. Wie misst man die Leistung in einer Konfusionsmatrix?
Genauigkeit = (TP+TN)/(TP+TN+FP+FN)
Wobei TP = richtig positiv, TN = richtig negativ, FP = falsch positiv, FN = falsch negativ
Die Fehlerrate Ihres Modells kann auch mit der Ratenberechnungsformel berechnet werden, die lautet:
Genauigkeit = (TP+TN)/(TP+TN+FP+FN) = 1-Genauigkeit
Das Konzept der Fehlerquote ist sehr einfach. Angenommen, Ihr Modell hat eine Genauigkeitsrate von 80 %, dann beträgt die Fehlerrate Ihres Modells 20 %.