Hi,
I'm using the ESNClassification to classify a binary outcome from data which is input in the format (N,T,V). I've played around with the hyperparameters but no matter the combination, I get either only ones or only zeroes.
Here is the config set-up:
`config['seed'] = 1
np.random.seed(config['seed'])
Hyperarameters of the reservoir
config['n_internal_units'] = 100 # size of the reservoir
config['spectral_radius'] = 0.4 # largest eigenvalue of the reservoir
config['leak'] = 0.5 # amount of leakage in the reservoir state update (None or 1.0 --> no leakage)
config['connectivity'] = 0.1 # percentage of nonzero connections in the reservoir
config['input_scaling'] = 0.1 # scaling of the input weights
config['noise_level'] = 0.01 # noise in the reservoir state update
config['n_drop'] = 0 # transient states to be dropped
config['bidir'] = False # if True, use bidirectional reservoir
config['circ'] = False # use reservoir with circle topology
Dimensionality reduction hyperparameters
config['dimred_method'] ='tenpca' # options: {None (no dimensionality reduction), 'pca', 'tenpca'}
config['n_dim'] = 40 # number of resulting dimensions after the dimensionality reduction procedure
Type of MTS representation
config['mts_rep'] = 'last' # MTS representation: {'last', 'mean', 'output', 'reservoir'}
config['w_ridge_embedding'] = 5.0 # regularization parameter of the ridge regression
Type of readout
config['readout_type'] = 'mlp' # readout used for classification: {'lin', 'mlp', 'svm'}
Linear readout hyperparameters
config['w_ridge'] = 5.0 # regularization of the ridge regression readout
SVM readout hyperparameters
config['svm_gamma'] = 0.005 # bandwith of the RBF kernel
config['svm_C'] = 5.0 # regularization for SVM hyperplane
MLP readout hyperparameters
config['mlp_layout'] = (40,1) # neurons in each MLP layer
config['num_epochs'] = 20 # number of epochs
config['w_l2'] = 0.05 # weight of the L2 regularization
config['nonlinearity'] = 'relu' # type of activation function {'relu', 'tanh', 'logistic', 'identity'}`
And the format of the input for training:
print(X_tr.shape) print(X_te.shape) print(y_tr.shape) print(y_te.shape)
with output:
(7801, 200, 130) (1132, 200, 130) (7801, 1) (1132, 1)
when I train on X_tr and y_tr, the output are either all ones or all zeroes. Any guidance on what could be causing this error?
Cheers