Я выполняю эту функцию, чтобы выполнить кросс-валидность n-fold. Уровень ошибочной классификации не изменяется по сложениям, например. если я бегу 10 или 50. Я также получаю предупреждение:Ошибка `предсказания` при выполнении n-кратной перекрестной проверки для моего GLM
"Предупреждение сообщение:
'NewData' было 19 строк, но переменные, найденные у 189 строк"
Если я бегу код, не являющийся частью функции, он хочет, я хочу -> например для складок == 1 он вытягивает 10%, управляя моделью на 90% данных и прогнозируя остальные 10%. У кого-нибудь есть идеи относительно того, почему он не показывает вариацию по переменной и количество складок?
library("MASS")
data(birthwt)
data=birthwt
n.folds=10
jim = function(x,y,n.folds,data){
for(i in 1:n.folds){
folds <- cut(seq(1,nrow(data)),breaks=n.folds,labels=FALSE)
testIndexes <- which(folds==i,arr.ind=TRUE)
testData <- data[testIndexes, ]
trainData <- data[-testIndexes, ]
glm.train <- glm(y ~ x, family = binomial, data=trainData)
predictions=predict(glm.train, newdata =testData, type='response')
pred.class=ifelse(predictions< 0, 0, 1)
}
rate=sum(pred.class!= y)/length(y)
print(head(rate))
}
jim(birthwt$smoke, birthwt$low, 10, birthwt)
Благодарим за это - прогнозы должны быть (<0,5, 0,1). Функция все еще не правильная, но спасибо за ваше наблюдение. – user7090012
Я хочу pred.class как вектор, который имеет все прогнозы из каждой складки. В этой функции я просто получаю 19 назад, когда это должно быть 189. Затем я произвожу скорость, используя этот вектор длины 189. – user7090012