0

私は R を初めて使用し、MARS 回帰の相互検証のために (stackoverflow のおかげで) 次のコードを使用しようとしています。コードを実行するとエラーが発生します。

上記の質問に加えて、相互検証の結果をすべて出力する方法はありますか?

誰か助けていただければ幸いです。

library(earth)
library(pls)

set.seed(1)

k <- 10;
result <- 0;
folds <- cvsegments(nrow(trees), k);

for (fold in 1 : k){
  currentFold <- folds[fold][[1]];
  fit = earth(Volume ~ ., data=trees[-currentFold,])
  pred = predict(fit, trees[currentFold,]);
  result <- result + table(true=trees[currentFold,3], pred=pred)
}
4

2 に答える 2

0

k 分割交差検証は、各実行でケース (行) ごとに正確に 1 つの予測を取得するため、予測をベクトル (またはマトリックス、より多くの反復/反復および/またはケースごとの複数の予測値の場合) に簡単に収集できます。

library(earth)
library(pls)
set.seed(1)

k <- 10;
folds <- cvsegments(nrow(trees), k);
result <- rep (NA, nrow (trees))

for (fold in 1 : k){
  currentFold <- folds[[fold]]
  fit = earth(Volume ~ ., data=trees[-currentFold,])
  result [currentFold] <- predict(fit, trees[currentFold,]);
}

その後、自由に結果を確認できます。

> plot (trees$Volume, result)  

cv 結果のキャリブレーション プロット

> head (cbind (trees, pred.Vol = result))
  Girth Height Volume  pred.Vol
1   8.3     70   10.3  9.701729
2   8.6     65   10.3 10.627089
3   8.8     63   10.2 10.737521
4  10.5     72   16.4 16.313330
5  10.7     81   18.8 21.297516
6  10.8     83   19.7 22.408600
于 2013-08-20T09:06:43.910 に答える