|
|
w<-read.csv("C:\\Users\\Administrator\\Desktop\\mg.csv",header=T) x; P- u: J% k
#样本的个数为1385,5折交叉验证/ q0 T+ [1 E0 V. G9 G$ j
n=1385 o9 P! l4 _$ v4 v+ M S
zz1=1:n3 ] u; [; P4 G- T' r: C
zz2=rep(1:5,ceiling(1385/5))[1:n]4 j3 A& O( @+ l' Q6 M3 T, F1 F7 I6 b
set.seed(100)
- C6 R+ ]2 F/ d' ?7 Lzz2=sample(zz2,n) #有放回抽样- i u1 Y5 [; B
NMSE=rep(0,5) J' y9 d1 ^" ^
NMSE0=NMSE
$ i- v: J x* k& c5 Y F* yfor(i in 1:5){+ e$ B( L3 Z6 A) q
m=zz1[zz2==i]3 `. G7 _3 e8 v; h3 `9 ^- b
a<-lm(y~.,w[-m,]) #线性回归模型
7 V/ ]- q; b& h y0<-predict(a,w[-m,]) #对训练集集预测
~2 r' R5 H& @( A$ \7 e' X y1=predict(a,w[m,]) #对测试集预测$ l6 p) p8 }; G$ [. C4 W. R
NMSE0[i]=mean((w$y[-m]-y0)^2)/mean((w$y[-m]-mean(w$y[-m]))^2)1 ^% V1 b d' o! h5 Q# ~7 L
NMSE[i]=mean((w$y[m]-y1)^2)/mean((w$y[m]-mean(w$y[m]))^2)5 S3 ~! P6 f g1 A! i5 j
}2 g; B3 V f/ f/ o
NMSE0=mean(NMSE0) #训练集的标准化均方误差- b* D' i) Q% { R+ ~
NMSE=mean(NMSE)
/ N7 |4 {2 A' @: K9 z这个可以参考一下。 |
|