def __create_sequences(self): input_sequence = [] output_sequence = [] percent_values = self.__percentage_changes for start_day in range(len(percent_values) - self.sequence_length - 1): input_sequence.append(percent_values[start_day: start_day + self.sequence_length]) output_sequence.append(percent_values[start_day + self.sequence_length]) np_input = np.array(input_sequence) print_shape(np_input, "debug_np_input") np_output = np.array(output_sequence) print_shape(np_output, "debug_np_output") np_input = np.reshape(np_input, (len(np_input), self.sequence_length, 1)) np_output = np.reshape(np_output, (len(np_output), 1)) x_train = np_input[:-self.__days_to_predict] x_test = np_input[-self.__days_to_predict:] y_train = np_output[:-self.__days_to_predict] y_test = np_output[-self.__days_to_predict:] return x_train, y_train, x_test, y_test
def __create_sequences(self): input_sequence = [] output_sequence = [] price_values = self.__all_data_grouped_by_date.values for start_day in range(len(price_values) - self.__sequence_length - 1): input_sequence.append(price_values[start_day:start_day + self.__sequence_length]) output_sequence.append(price_values[start_day + self.__sequence_length]) np_input = np.array(input_sequence) print_shape(np_input, "debug_np_input") np_output = np.array(output_sequence) print_shape(np_output, "debug_np_output") np_output = np.reshape(np_output, (len(np_output), 1)) x_train = np_input[:-self.__days_to_predict] x_test = np_input[-self.__days_to_predict:] y_train = np_output[:-self.__days_to_predict] y_test = np_output[-self.__days_to_predict:] x_train = np.reshape(x_train, (len(x_train) * self.__sequence_length, 1)) x_test = np.reshape(x_test, (len(x_test) * self.__sequence_length, 1)) x_train = self.__min_max_scaler.fit_transform(x_train) x_test = self.__min_max_scaler.transform(x_test) y_train = self.__min_max_scaler.transform(y_train) y_test = self.__min_max_scaler.transform(y_test) x_train = np.reshape(x_train, (len(x_train) // self.__sequence_length, self.__sequence_length, 1)) x_test = np.reshape( x_test, (len(x_test) // self.__sequence_length, self.__sequence_length, 1)) return x_train, y_train, x_test, y_test
def log_data_shapes(self): print("Data loaded:") print_shape(self.x_train, "x_train") print_shape(self.y_train, "y_train") print_shape(self.x_test, "x_test") print_shape(self.y_test, "y_test")