【发布时间】:2019-12-18 04:02:21
【问题描述】:
我创建了这个代码的函数来执行逻辑回归的 5 折交叉验证。
require(ISLR)
folds <- cut(seq(1,nrow(Smarket)),breaks=5,labels=FALSE)
log_cv=sapply(1:5,function(x)
{
set.seed(123)
testIndexes <- which(folds==x,arr.ind=TRUE)
testData <- Smarket[testIndexes, ]
trainData <- Smarket[-testIndexes, ]
glm_log=glm(Direction ~ Lag1 + Lag2 + Lag3 +
Lag4 + Lag5 + Volume ,family = "binomial", data = trainData)
glm.prob <- predict(glm_log, testData, "response")
glm.pred <- ifelse(glm.prob >= 0.5, 1, 0)
return(glm.pred)
}
)
上述函数的输出给出了每一折的预测值。
> head(log_cv)
[,1] [,2] [,3] [,4] [,5]
1 1 1 0 1 1
2 0 1 1 1 1
3 0 1 1 1 0
4 1 1 0 1 1
5 1 1 1 1 1
6 1 1 1 0 1
>
有没有什么方法可以结合以上结果使用5折交叉验证得到混淆矩阵?
【问题讨论】:
标签: r cross-validation confusion-matrix