def create_series(in_array, window_size, period, minV, maxV, layer_nodes=[2, 3], sigmoid='tanh', epochs=50000): global_max = maxV global_min = minV X_train = [] y_train = [] for i in range(len(in_array) - window_size): X = [] for j in range(window_size): X.append(_scale_to_binary(in_array[i + j], global_min, global_max)) X_train.append(X) y_train.append( _scale_to_binary(in_array[i + window_size], global_min, global_max)) X_train = np.array(X_train) y_train = np.array(y_train) layers = [] layers.append(window_size) for i in range(len(layer_nodes)): layers.append(layer_nodes[i]) n = NeuralNetwork(layers, sigmoid) n.fit(X_train, y_train, epochs) X_test = in_array[-window_size:] for i in range(len(X_test)): X_test[i] = _scale_to_binary(X_test[i], global_min, global_max) preds = [] X_test = deque(X_test) for i in range(period): val = n.predict(X_test) preds.append(rescale_from_binary(val[0], global_min, global_max)) X_test.rotate(-1) X_test[window_size - 1] = val[0] return preds
def create_series(in_array,window_size,period, minV, maxV, layer_nodes = [2,3], sigmoid = 'tanh', epochs = 50000): global_max = maxV global_min = minV X_train = [] y_train = [] for i in range(len(in_array)-window_size): X = [] for j in range(window_size): X.append(_scale_to_binary(in_array[i+j],global_min,global_max)) X_train.append(X) y_train.append(_scale_to_binary(in_array[i+window_size],global_min,global_max)) X_train = np.array(X_train) y_train = np.array(y_train) layers = [] layers.append(window_size) for i in range(len(layer_nodes)): layers.append(layer_nodes[i]) n = NeuralNetwork(layers,sigmoid) n.fit(X_train,y_train, epochs) X_test = in_array[-window_size:] for i in range(len(X_test)): X_test[i]=_scale_to_binary(X_test[i],global_min,global_max) preds = [] X_test = deque(X_test) for i in range(period): val = n.predict(X_test) preds.append(rescale_from_binary(val[0], global_min, global_max)) X_test.rotate(-1) X_test[window_size-1] = val[0] return preds