この関数を実行してn倍交差検証を実行しています。誤分類率は、折り畳みに応じて変化しない。私は10または50を実行する場合、私はまた、警告を取得しています:私のGLMのn倍交差検証中に `predict`エラーが発生しました
:私は実行する場合
「警告メッセージ
『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は、各折りたたみからのすべての予測を持つベクトルとして欲しいです。この関数では、私はちょうど戻って189になるはずです。次に、このベクトルの長さ189を使ってレートを生成します。 – user7090012