|
|
w<-read.csv("C:\\Users\\Administrator\\Desktop\\mg.csv",header=T)
: l$ m' P' h* b* l, l#样本的个数为1385,5折交叉验证* N4 O9 Y3 Z1 r2 y
n=1385. w+ r$ g) j! A; {+ w' H
zz1=1:n
5 I: x( b8 v7 V' Q# X- \zz2=rep(1:5,ceiling(1385/5))[1:n]2 S& P6 ^# D2 y0 d7 N
set.seed(100). `: m0 u1 r7 ~! h! B
zz2=sample(zz2,n) #有放回抽样
- U) ^) I7 q8 r9 @9 H4 BNMSE=rep(0,5)! f. e5 ?/ C$ ~
NMSE0=NMSE
0 `0 q, |8 {6 _% Q& K7 K$ ffor(i in 1:5){
" Z4 c1 E/ C( e! J m=zz1[zz2==i]
( p9 f6 Z8 @: F- ?) f; p a<-lm(y~.,w[-m,]) #线性回归模型
9 Y3 F; N* d2 F# f5 i, T( @2 N y0<-predict(a,w[-m,]) #对训练集集预测% t8 F4 c' M$ h8 D
y1=predict(a,w[m,]) #对测试集预测
. Y. O" _( [" l8 f3 ?0 Y* L NMSE0[i]=mean((w$y[-m]-y0)^2)/mean((w$y[-m]-mean(w$y[-m]))^2)1 `2 V3 R; H6 W: Y! N5 D" c1 H
NMSE[i]=mean((w$y[m]-y1)^2)/mean((w$y[m]-mean(w$y[m]))^2)6 v n0 y; }' E% n% w
}: g( T. b% M! w6 E! o5 B4 z
NMSE0=mean(NMSE0) #训练集的标准化均方误差
* Y3 E$ ^* `# G+ I( O# BNMSE=mean(NMSE) % Z! Y, Q' f: j8 n
这个可以参考一下。 |
|