我使用 训练了一个二项式模型glm(Xtrain, ytrain, formula='cbind(Response, n - Response) ~ features', family='binomial')
,其中 ytrain 是一个响应矩阵,其中包含计数(是)、计数(否)列。
我提供的测试响应与响应矩阵的形式相同。但是,predict() 函数返回概率——训练数据的每一行一个概率。我现在想使用 ROCR 或 AUC 包来生成 AUC 曲线,但我的预测和观察格式不同。有谁知道如何做到这一点?
好的。添加一个例子。原谅它毫无意义/排名不足/小,我只想说明我的情况。
plants <- c('Cactus', 'Tree', 'Cactus', 'Tree', 'Flower', 'Tree', 'Tree')
sun <- c('Full', 'Half', 'Half', 'Full', 'Full', 'Half', 'Full')
water <- c('N', 'Y', 'Y', 'N', 'Y', 'N', 'N')
died <- c(10, 10, 8, 2, 15, 20, 12)
didntdie <- c(2, 10, 8, 20, 10, 10, 10)
df <- data.frame(died, didntdie, plants, sun, water)
dftrain <- head(df, 5)
dftest <- tail(df, 2)
model <- glm("cbind(died, didntdie) ~ plants + sun + water", data=dftrain, family="binomial")
此时,predict(model, dftest)
返回我的数据框中最后两组特征的对数几率(给出死亡概率)。现在我想计算一条 AUC 曲线。我的观察在dftest[c('died','didntdie')]
. 我的预测本质上是概率。AUC、ROCR 等期望预测和观察都是伯努利响应的列表。我找不到有关如何使用此响应矩阵的文档。任何帮助表示赞赏。