LOOCV交叉驗證題

2021-09-24 00:27:36 字數 1045 閱讀 4871

#p是多少個變數x,p=1;n是100,記錄了n行資料

set.seed(1)

y=rnorm(100)

x=rnorm(100)

y=x-2x^2+rnorm(100)

plot(x,y)

##############

set.seed(1)

y=rnorm(100)

x=rnorm(100)

y=x-2x^2+rnorm(100)

error=c() #因為迴圈裡出現了error[i]

d=cbind(x,y) #c是豎著合併 r是橫著合併

d=as.data.frame(d)

#前兩步可合併為 d= data.frame(x,y)

for(i in 1:100)

sum(error^2)/dim(d)[1] #mse loocv 1代表行,2代表列,即100

###################

library(boot)

ml=glm(y~x,data=d)

mlr=cv.glm(data=d,glmfit=ml,k=100) #k=n=100 #廣義線性模型的交叉驗證:估算k折交叉驗證的預計誤差

mlr$delta

ml2=glm(y~poly(x,2),data=d)

mlr2=cv.glm(data=d,glmfit=ml2,k=100)

mlr2$delta

ml3=glm(y~poly(x,3),data=d)

mlr3=cv.glm(data=d,glmfit=ml3,k=100)

mlr3$delta

ml4=glm(y~poly(x,4),data=d)

mlr4=cv.glm(data=d,glmfit=ml4,k=100)

mlr4$delta

##########這樣可以找最小的mse

error=c()

e = c()

d=data.frame(x,y)

for (j in 1:4)

}which.min(e)

scikit learning 交叉驗證

import numpy as np from sklearn import datasets from sklearn.cross validation import train test split from sklearn.neighbors import kneighborsclassifi...

交叉驗證(cross validation)

交叉驗證是資料分析時模型選擇的方法之一,將資料集分為三份,分別為訓練集 training set 驗證集 valication set 和測試集 test set 分別功能為訓練模型,選擇模型和對學習方法的評估。其演算法的思想為重複的使用資料,使得模型的精度越來越高。交叉驗證的方法有以下三種 1.簡...

交叉驗證(Cross validation

交叉驗證 cross validation 交叉驗證用於防止模型過於複雜而引起的過擬合 作用 如何交叉驗證 我這裡主要介紹k交叉驗證 1 將資料集分成k份 2 對於每乙個模型 拿多項式回歸舉例,m 2為乙個模型,m 3為乙個模型。我們主要就是尋找最好的m for j 1,2,k 將除第j份的所有資料...