我正在使用R的ROCR包来计算大数据集曲线下的面积。但是,该代码不适用于除少数数据集之外的所有数据集。
我使用过的代码:
pred <- prediction(mydata$Total.Regexes, mydata$actual)
perf <- performance(pred, "tpr", "fpr")
我检查了数据集,数据集中没有非Na点。但是,由于数据集很大,它可能会超出我的视线。那么,是否有任何其他过程来细化数据集(对于非NA值,如果有的话)而不会干扰剩余的值?
这是它为一些数据集显示的错误:
Error in approxfun(x.values.1, y.values.1, method = "constant", f = 1, :
zero non-NA points
我查了一下:
is.na(dataset)
dataset <- na.omit(dataset)
但仍然不起作用。数据集中不存在非Na值。我无法使用简单数据集重现错误,因此我已将问题数据集发布到我的保管箱中。
https://www.dropbox.com/s/pjko6o6h23m43le/DC4.csv
请帮助!
答案 0 :(得分:2)
我遇到了类似的问题。
通过“投射”prediction
的参数,我设法使一切正常运作。
尝试:
pred <- prediction(as.numeric(mydata$Total.Regexes), as.numeric(mydata$actual))
perf <- performance(pred, "tpr", "fpr")
答案 1 :(得分:0)
我遇到了类似的问题。这是解决它的“坏”方法:
MODEL&lt; - glm(y~x + z,my_data,family =“binomial”) pred_probab&lt; - predict(MODEL,type =“response”)
为返回预测样本指定type =“response”作为概率
pr&lt; - 预测(pred_probab,Two_levels_factor) aboutfun中的错误(x.values.1,y.values.1,method =“constant”,f = 1,: 零非NA点
带有n = 2000
的示例“Two_levels_factor”只有一个级别值“positive_result”。对于logit回归,它必须有两个级别。
水平(Two_levels_factor) [1]“负面结果” Two_levels_factor [1]&lt; - “positive_result” 水平(Two_levels_factor) [1]“positive_result”“negative_result”
pr&lt; - prediction(pred_probab,Two_levels_factor)