Esempio n. 1
0
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的图。
Esempio n. 2
0
def compair_readout():
    esn = ESN(n_inputs = 8,
             n_outputs = 1,
             n_reservoir = n_reservoir,
             spectral_radius = spectral_radius, 
             sparsity = sparsity,
             noise = noise,
             input_shift = [0.51293657,0.51293657,0.51293657,0.51293657,0.03489584,0.03489584,0.03489584,0.03489584],
             input_scaling = [0.18636639,0.18636639,0.18636639,0.18636639, 0.11791364, 0.11791364, 0.11791364, 0.11791364],
             teacher_scaling = 1.45377531,
             teacher_shift = -0.7997228,
             out_activation = np.tanh,
             inverse_out_activation = np.arctanh,
             random_state = rng,
             silent = False)
             
    esn = ESN(n_inputs = 8,
          n_outputs = 1,
          n_reservoir = n_reservoir,
          spectral_radius = spectral_radius, 
          sparsity = sparsity,
          noise = noise,
          input_shift = [0,0,0,0,0,0,0,0],
          input_scaling = [0.01,0.01,0.01,0.01,0.01,0.01,3,3],
          teacher_scaling = 1.12,
          teacher_shift = -0.7,
          out_activation = np.tanh,
          inverse_out_activation = np.arctanh,
          random_state = rng,
          silent = False)
    esn.penal_tao =0.57201544
    esn.penal_c0 = 3.76108161

    esn.penal_tao = 0.1
    esn.penal_c0 = 3.7
    #pred_train = esn.fit(train_ctrl,train_output,inspect=True)
    internal_states,transient = esn.train_reservior(train_ctrl,train_output)
#    esn_Lasso = copy.deepcopy(esn)
#    esn_Ridge = copy.deepcopy(esn)
#    esn_ElasticNet = copy.deepcopy(esn)
    esn_SCAD = copy.deepcopy(esn)
    esn.dump_parameters()
#    print "####pin"
#    pred_train = esn.train_readout_with_pin(internal_states,train_output,transient)
#    test_error("pinv",esn,pred_train)
#    exit()
#
#    print "####ridge"
#    pred_train = esn_Ridge.train_readout_with_ridge(internal_states,train_output,transient)
#    test_error("pinv",esn_Ridge,pred_train)
#
#    print "####Lasso"
#    pred_train = esn_Lasso.train_readout_with_lasso(internal_states,train_output,transient)
#    test_error("pinv",esn_Lasso,pred_train)
#
#    print "####ElasticNet"
#    pred_train = esn_ElasticNet.train_readout_with_elasticnet(internal_states,train_output,transient)
#    test_error("pinv",esn_ElasticNet,pred_train)

    print "####SCAD"
    pred_train = esn_SCAD.train_readout_with_scad(internal_states,train_output,transient)
    test_error("pinv",esn_SCAD,pred_train)