def pso_esn_parameters_for_scad(x): # 0: tao, 1:c0, 2:IC_s,3:IC_e 4:IS_s,5:IS_e, ,6:teacher sacling,7:teacher shift # 0:IC_s,1:IC_e, 2:IS_s,3:IS_e, 4:teacher sacling,5:teacher shift,6: tao, 7:c0, ic_s =x[0] ic_e =x[1] is_s = x[2] is_e = x[3] teacher_scaling = x[4] teacher_shift = x[5] tao = x[6] c0 = x[7] esn = ESN(n_inputs = 2, n_outputs = 1, n_reservoir = n_reservoir, spectral_radius = spectral_radius, sparsity = sparsity, noise = noise, input_shift = [is_s,is_e],#[0,0] input_scaling =[ic_s,ic_e],# [0.01, 3] teacher_scaling = teacher_scaling,#1.12, teacher_shift = teacher_shift,#-0.7, out_activation = np.tanh, inverse_out_activation = np.arctanh, random_state = rng, silent = False) esn.penal_tao =tao esn.penal_c0 = c0 internal_states,transient = esn.train_reservior(train_ctrl,train_output) pred_train = esn.train_readout_with_scad(internal_states,train_output,transient) pred_test = esn.predict(test_ctrl) #test_error_rate= np.sqrt(np.mean((pred_test - test_output)**2)) test_error_rate= np.sqrt((pred_test - test_output)**2) #get function name as title title = inspect.stack()[0][3] print "#### {} ## train_error:{},test_error:{}".format(title,esn.train_error_rate,test_error_rate) return test_error_rate 这里画一个原始测试序列的图和一个test_output的图。