HOWTO · R
Visualisieren Sie die Verwirrungsmatrix mit dem Caret-Paket in R
In diesem Artikel wird erläutert, wie Sie eine Verwirrungsmatrix mithilfe des Caret-Pakets in R . visualisieren können
Auf dieser Seite
Dieser Artikel zeigt mehrere Methoden zur Visualisierung einer Konfusionsmatrix mit dem Paket caret in R.
Verwenden Sie die Funktion confusionMatrix, um eine Konfusionsmatrix in R . zu erstellen
Die Funktion confusionMatrix ist Bestandteil des Pakets caret und kann aus den Faktoren oder Tabellendatentypen eine Konfusionsmatrix erstellen. Beachten Sie, dass wir zwei Zufallsfaktoren mit den Funktionen sample und rep konstruieren. confusionMatrix nimmt als erstes Argument den Faktor der vorhergesagten Klassen und als zweites den Faktor der als wahre Ergebnisse zu verwendenden Klassen.
library(caret)
confusionMatrix(
factor(sample(rep(letters[1:4], 200), 50)),
factor(sample(rep(letters[1:4], 200), 50)))
Confusion Matrix and Statistics
Reference
Prediction a b c d
a 2 5 6 2
b 3 2 4 2
c 3 5 2 2
d 5 1 2 4
Overall Statistics
Accuracy : 0.2
95% CI : (0.1003, 0.3372)
No Information Rate : 0.28
P-Value [Acc > NIR] : 0.9260
Kappa : -0.0672
Mcnemar's Test P-Value : 0.7795
Statistics by Class:
Class: a Class: b Class: c Class: d
Sensitivity 0.1538 0.1538 0.1429 0.4000
Specificity 0.6486 0.7568 0.7222 0.8000
Pos Pred Value 0.1333 0.1818 0.1667 0.3333
Neg Pred Value 0.6857 0.7179 0.6842 0.8421
Prevalence 0.2600 0.2600 0.2800 0.2000
Detection Rate 0.0400 0.0400 0.0400 0.0800
Detection Prevalence 0.3000 0.2200 0.2400 0.2400
Balanced Accuracy 0.4012 0.4553 0.4325 0.6000
Verwenden Sie die Funktion fourfoldplot, um die Konfusionsmatrix in R . zu visualisieren
Die Funktion confusionMatrix gibt die Textdaten aus, aber wir können den Teil davon mit Hilfe der Funktion fourfoldplot visualisieren. fourfoldplot konstruiert einen vierfachen Graphen mit zwei mal zwei mal k Kontingenztabelle. Die Kontingenztabelle sollte in Arrayform oder als 2x2-Matrix übergeben werden, wenn k gleich 1 ist. Beachten Sie, dass das folgende Beispiel die Verwendung von fourfoldplot mit den hartcodierten Tabellendaten demonstriert.
ctable <- as.table(matrix(c(42, 6, 8, 28), nrow = 2, byrow = TRUE))
fourfoldplot(ctable, color = c("cyan", "pink"),
conf.level = 0, margin = 1, main = "Confusion Matrix")
Andererseits können wir confusionMatrix als Objekt speichern und das Element table daraus an den fourfoldplot übergeben, um die Konfusionsmatrix zu visualisieren.
library(caret)
cmat <- confusionMatrix(
factor(sample(rep(letters[1:2], 200), 50)),
factor(sample(rep(letters[1:2], 200), 50)))
fourfoldplot(cmat$table, color = c("cyan", "pink"),
conf.level = 0, margin = 1, main = "Confusion Matrix")
Verwenden Sie die Funktion autoplot, um die Verwirrungsmatrix in R . zu visualisieren
Alternativ können wir die Funktion autoplot aus dem Paket ggplot2 verwenden, um die Konfusionsmatrix anzuzeigen. In diesem Fall konstruieren wir die Matrix mit der Funktion conf_mat, die ein Objekt der Klasse conf_mat erzeugt, das direkt als erstes Argument an die Funktion autoplot übergeben werden kann. Letzterer bestimmt automatisch, einen entsprechenden Graphen für das Objekt zu zeichnen.
library(yardstick)
library(ggplot2)
set.seed(123)
truth_predicted <- data.frame(
obs = sample(0:1,100, replace = T),
pred = sample(0:1,100, replace = T)
)
truth_predicted$obs <- as.factor(truth_predicted$obs)
truth_predicted$pred <- as.factor(truth_predicted$pred)
cm <- conf_mat(truth_predicted, obs, pred)
autoplot(cm, type = "heatmap") +
scale_fill_gradient(low = "pink", high = "cyan")