Ho un set di dati molto grande (ds
). Una delle sue colonne è Popularity
, di tipo factor
('Alto'/'Basso').Valutazione di un modello statistico in R
Ho diviso i dati al 70% e al 30% per creare un set di allenamento (ds_tr
) e un set di test (ds_te
).
io ho creato il seguente modello utilizzando una regressione logistica:
mdl <- glm(formula = popularity ~ . -url , family= "binomial", data = ds_tr)
poi ho creato un oggetto predict
(lo farà ancora per ds_te
)
y_hat = predict(mdl, data = ds_tr - url , type = 'response')
Voglio trovare il valore di precisione che corrisponde a una soglia di interruzione di 0,5 e trova il valore di richiamo che corrisponde a una soglia di soglia di 0,5, così ho fatto:
library(ROCR)
pred <- prediction(y_hat, ds_tr$popularity)
perf <- performance(pred, "prec", "rec")
Il risultato è una tabella di molti valori
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 ...
Come faccio a trovare i valori di precisione e di richiamo specifici corrispondenti ad una soglia di taglio di 0,5?
migliorare la spiegazione e spiegare come ottenere il valore richiesto. – PereG