【发布时间】:2018-06-02 11:56:57
【问题描述】:
我想知道如何用 R 绘制 ROC 图。 我创建了一个带有 k 折交叉验证的逻辑回归模型。
dt3 - 主数据集
dt3Training - 从主数据集分割训练
dt3Test - 从主数据集进行的测试拆分
以下是用于逻辑回归的代码:
ctrl<- trainControl (method="repeatedcv", number = 10, repeats =5, savePredictions="TRUE"
modelfit <- train (Attrition~., data=dt3, method="glm", family="binomial", trControl=ctrl)
pred = predict (modelfit, newdata=dt3Test)
confusionMatrix(data=pred, dt3Test$Attrition)
我的问题是,pred 没有显示为预测,而是显示为数据表。因此下面的代码给出了一个错误。
perf1 <- performance(pred,"tpr","fpr")
plot(perf1)
如果您能帮我解决这个问题,我将不胜感激。
更新:查看k-fold cross validation - how to get the prediction automatically? 后,我将代码更改为以下:
library("caret", lib.loc="~/R/win-library/3.4")
load (df) ## load main dataset "df"
tc <- trainControl("cv",10,savePred=T) ##create folds
(fit<-train(Attrition~.,data=df,method="glm",family="binomial",trControl=tc)) ##train model, predict Attrition with all other variables
我想试试 Claus Wilke 下面的代码,但是我很困惑,因为我只有我的主要数据 (df) 和我的模型 (fit)。
data.frame(predictor = predict(fit, df),
known.truth = fit$Attrition,
model = "fit")
或
data.frame(predictor = predict(fit, tc),
known.truth = tc$Attrition,
model = "fit")
对不起,如果我问了一个非常愚蠢的问题,但我没有太多时间来完成我的项目。而且我以前没有使用 R 的经验。
【问题讨论】:
-
请按照stackoverflow.com/questions/5963269/… 中的说明制作可重现的示例。最起码报错信息和使用的包,没有它就帮不了你。
标签: r prediction roc