【发布时间】:2016-04-07 11:52:46
【问题描述】:
我有一个非常大的数据集 (ds)。其中一列是Popularity,类型为factor('High' / 'Low')。
我将数据分成 70% 和 30% 以创建训练集 (ds_tr) 和测试集 (ds_te)。
我使用逻辑回归创建了以下模型:
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 截止阈值的特定精度和召回值?
【问题讨论】:
-
完善解释,说明如何获取请求的值。
标签: r logistic-regression threshold precision-recall