Ich habe einen sehr großen Datensatz (ds
). Eine ihrer Spalten ist Popularity
, vom Typ factor
('High'/'Low').Auswerten eines statistischen Modells in R
Ich teile die Daten auf 70% und 30%, um einen Trainingssatz (ds_tr
) und einen Testsatz (ds_te
) zu erstellen.
Ich habe das folgende Modell erstellt eine logistische Regression:
mdl <- glm(formula = popularity ~ . -url , family= "binomial", data = ds_tr)
dann habe ich ein predict
Objekt (wird es wieder tun für ds_te
)
y_hat = predict(mdl, data = ds_tr - url , type = 'response')
Ich möchte die Präzision Wert finden was einer Abschaltschwelle von 0,5 entspricht und den Rückrufwert findet, der einer Abschaltschwelle von 0,5 entspricht, also tat ich:
library(ROCR)
pred <- prediction(y_hat, ds_tr$popularity)
perf <- performance(pred, "prec", "rec")
Das Ergebnis ist eine Tabelle mit vielen Werten
str(perf)
Formal class 'performance' [package "ROCR"] with 6 slots
[email protected] x.name : chr "Recall"
[email protected] y.name : chr "Precision"
[email protected] alpha.name : chr "Cutoff"
[email protected] x.values :List of 1
.. ..$ : num [1:27779] 0.00 7.71e-05 7.71e-05 1.54e-04 2.31e-04 ...
[email protected] y.values :List of 1
.. ..$ : num [1:27779] NaN 1 0.5 0.667 0.75 ...
[email protected] alpha.values:List of 1
.. ..$ : num [1:27779] Inf 0.97 0.895 0.89 0.887 ...
Wie kann ich die spezifischen Precision und Recall-Werte entsprechend einem Cutoff-Schwellwert von 0,5 finden?
die Erklärung verbessern und erklären, wie man den gewünschten Wert zu erhalten. – PereG