我有一个非常大的数据集(ds
).一个它的列的是Popularity
类型,factor
("高" /"低").
我将数据分成70%和30%,以便创建训练集(ds_tr
)和测试集(ds_te
).
我使用Logistic回归创建了以下模型:
mdl <- glm(formula = popularity ~ . -url , family= "binomial", data = ds_tr )
然后我创建了一个predict
对象(将再次为它做ds_te
)
y_hat = predict(mdl, data = ds_tr - url , type = 'response')
我想找到对应于截止阈值0.5的精度值,并找到对应于截止阈值0.5的召回值,所以我做了:
library(ROCR) pred <- prediction(y_hat, ds_tr$popularity) perf <- performance(pred, "prec", "rec")
结果是一个包含许多值的表
str(perf) Formal class 'performance' [package "ROCR"] with 6 slots ..@ x.name : chr "Recall" ..@ y.name : chr "Precision" ..@ alpha.name : chr "Cutoff" ..@ x.values :List of 1 .. ..$ : num [1:27779] 0.00 7.71e-05 7.71e-05 1.54e-04 2.31e-04 ... ..@ y.values :List of 1 .. ..$ : num [1:27779] NaN 1 0.5 0.667 0.75 ... ..@ alpha.values:List of 1 .. ..$ : num [1:27779] Inf 0.97 0.895 0.89 0.887 ...
如何找到与截止阈值0.5相对应的特定精度和召回值?