k折交叉验证原理及实现-python
K折就是讲数据集切分成K小块,验证集和测试集相互形成补集,循环交替
import numpy as np
k = 3
num_val_samples = len(train_data) // k
num_epochs = 100
all_scores = []
for i in range(k)
print('prcessing fold #', i)
val_data = train_data[i * num_val_samples: (i+1) * num_val_samples]
val_targets =train_tagets [i * num_val_samples:(i+1)*num_val_samples ]
partial_train_data = np.concatenate([train_data[:i *num_val_sampes],train_data[(i+1)* num_val_samples:]],axis =0)
partial_train_targets = np.concatenate([train_data[:i *num_val_samples],train_targets(i+1)*num_val_samples:]],axis=0)
model = build_model() #构建keras模型(已编译)
model.fit(partial_train_data, partial_train-targets,epochs=num_epochs,batch_size=1,verbose=0)
#训练模型,静默模式verbose=0
val_mes, val mae = model.evaluate(val_data, val_targets, verbose = 0)
#在验证数据上评估模型
all_scores.append(val_mae)