【R言語】k分割交差検証
k分割交差検証
Rによる統計学習入門 5章リサンプリング法に出ていた
交差検証について再確認する。
データセットをk個に分割して、残りの(k-1)個を検証にする手法である。
LOOCVより計算量が減るだけでなく、テスト誤差をより高い精度で推定できる。
(バイアスと分散のトレードオフ)
このへんはバイアスと分散の概念を理解する必要がある。
library(ISLR) library(glmnet) library(boot) df_Auto <- Auto set.seed(17) #k分割交差検証を行う #データセットを10分割して9個で訓練1個で平均二乗誤差MSEを計算する。そして10回繰り返しの平均値を計算する cv_err_10 <- rep(0,10) i<-1 for(i in 1:10){ glmfit <- glm(mpg~poly(horsepower,i),data=df_Auto)#poly(x,5)で1-5次まで含む cv_err_10[i] <- cv.glm(df_Auto,glmfit,K=10)$delta[1] } cv_err_10 #cv.glmはいくつかの要素を持つリストを生成 #deltaがMSE