J'utilise cette fonction pour effectuer une validation croisée n fois. Le taux de mauvaise classification ne varie pas au cours des plis, par ex. si je lance 10 ou 50. Je reçois également un avertissement:Erreur «predict» lors d'une validation croisée n-fold pour mon GLM
"message d'avertissement:
'newdata' avait 19 lignes, mais les variables trouvées ont 189 lignes"
Si je cours le code sans faire partie d'une fonction, c'est faire ce que je veux -> eg pour les plis == 1, il sort 10%, exécute le modèle sur 90% des données, et prédire les 10% restants. Est-ce que quelqu'un a des idées pour expliquer pourquoi il ne montre pas de variation par variable et le nombre de plis?
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)
Merci pour cela - les prédictions doivent être (<0,5, 0,1). La fonction n'est toujours pas correcte, mais merci pour votre observation. – user7090012
Je veux que pred.class soit un vecteur qui a toutes les prédictions de chaque pli. Dans cette fonction, je récupère juste 19, quand il devrait être 189. Ensuite, je produis le taux en utilisant ce vecteur de longueur 189. – user7090012