confusionMatrix für die Logistische regression in R
Möchte ich berechnen zwei confusion matrix für mein Logistische regression mit meiner Ausbildung meine Daten und meine Testdaten:
logitMod <- glm(LoanStatus_B ~ ., data=train, family=binomial(link="logit"))
ich die Schwelle der vorhergesagten Wahrscheinlichkeit bei 0,5:
confusionMatrix(table(predict(logitMod, type="response") >= 0.5,
train$LoanStatus_B == 1))
Und der code unten funktioniert gut für mein training setzen.
Jedoch, wenn ich den test-Satz:
confusionMatrix(table(predict(logitMod, type="response") >= 0.5,
test$LoanStatus_B == 1))
gab es mir einen Fehler von
Error in table(predict(logitMod, type = "response") >= 0.5, test$LoanStatus_B == : all arguments must have the same length
Warum ist das so? Wie kann ich dieses Problem beheben? Danke!
- Sie müssen den test bestehen, dataset, um die Vorhersage-Funktion, sonst wird es Vorhersagen, die auf den Zug dataset. ie
predict(logitMod, newdata=test, type="response")
- Thx es funktioniert!..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, es ist ein problem mit der Verwendung von Vorhersagen, da Sie vergessen haben, die neuen Daten. Sie können auch verwenden die Funktion
confusionMatrix
von dercaret
- Paket zur Berechnung und Anzeige der Verwirrung Matrizen, aber Sie brauchen nicht zu Tabelle Ihre Ergebnisse vor, die anrufen.Hier habe ich eine Spielzeug-dataset, das enthält eine repräsentative binäre Zielvariable und dann trainierte ich ein Modell ähnlich zu dem, was Sie getan haben.
Nun, Sie können Vorhersagen, die Daten (z.B. Ihre Ausbildung) und verwenden Sie dann
confusionMatrix()
, nimmt zwei Argumente:Hier sind die Ergebnisse
?confusionMatrix()
. Zum Beispiel:confusionMatrix(data = as.numeric(pdata>0.5), reference = train$LoanStatus_B, positive = "1")
confusionMatrix(data = as.factor(c("A","B", "B", "B", "A", "A", "A", "A", "B", "B")), reference = as.factor(c("A","A", "A", "B", "A", "A", "A", "A", "B", "A")), positive = "A")
und die gleiche Zeile mitpositive = "B"
. Ich hoffe, das war nützlich. Wenn dem so ist, bitte bestätigen meine Antwort. Dank