gpt4 book ai didi

r - 评估 R 中的统计模型

转载 作者:行者123 更新时间:2023-12-04 21:37:27 24 4
gpt4 key购买 nike

我有一个非常大的数据集( ds )。它的一列是 Popularity , 类型 factor ('前高后低')。

我将数据分成 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 的截止阈值对应的特定精度和召回值?

最佳答案

访问权限 性能对象的slots(通过@+list的组合)

我们创建一个包含所有可能值的数据集:

probab.cuts <- data.frame(cut=perf@alpha.values[[1]], prec=perf@y.values[[1]], rec=perf@x.values[[1]])

您可以查看 全部 关联值
probab.cuts

如果您想 选择 请求的值,很容易做到:
tail(probab.cuts[probab.cuts$cut > 0.5,], 1)

说明书 检查
tab <- table(ds_tr$popularity, y_hat > 0.5)
tab[4]/(tab[4]+tab[2]) # recall
tab[4]/(tab[4]+tab[3]) # precision

关于r - 评估 R 中的统计模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34581482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com