|
|
w<-read.csv("C:\\Users\\Administrator\\Desktop\\mg.csv",header=T)3 @5 F, ^' t9 [5 R$ X
#样本的个数为1385,5折交叉验证/ P& ^ q7 B( r2 o# x1 Q
n=1385
+ k/ i) Y3 R# g8 T H, u$ r6 o. Mzz1=1:n0 j6 [4 e; c" F) F0 p4 O& V
zz2=rep(1:5,ceiling(1385/5))[1:n], N+ b7 p) m+ k+ ~
set.seed(100)
5 g$ Y2 ~8 p8 B5 m* rzz2=sample(zz2,n) #有放回抽样3 r) z: K0 \" N j
NMSE=rep(0,5)
* L% A$ ^5 c3 M- aNMSE0=NMSE
& G( V+ j U8 O2 Vfor(i in 1:5){
7 q$ O4 p0 g* d; @5 c' ] m=zz1[zz2==i]' F, r, L: w+ @, Q( o5 |
a<-lm(y~.,w[-m,]) #线性回归模型
6 y2 O X; _$ x0 D y0<-predict(a,w[-m,]) #对训练集集预测# O/ Y7 j2 m- ?3 o) w. b4 R9 u1 _1 m# q
y1=predict(a,w[m,]) #对测试集预测
. ~* |* v4 x+ N; H) K: u4 T NMSE0[i]=mean((w$y[-m]-y0)^2)/mean((w$y[-m]-mean(w$y[-m]))^2)
4 V' U; D/ K( G3 a) l7 s! M) O( w7 s NMSE[i]=mean((w$y[m]-y1)^2)/mean((w$y[m]-mean(w$y[m]))^2)
3 ?2 b& |9 l- K}
' r8 I/ k# \! S( z/ ~NMSE0=mean(NMSE0) #训练集的标准化均方误差
. Z2 O9 u6 o& V+ iNMSE=mean(NMSE) ; n+ B' H+ c$ C5 t. t
这个可以参考一下。 |
|