DeepFin / cnn_model.py
Amós e Souza Fernandes
Upload 120 files
5f10e37 verified
import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv1D, MaxPooling1D, Flatten, Dense, Dropout
from tensorflow.keras.optimizers import Adam
def carregar_e_preparar_dados(caminho_csv):
df = pd.read_csv(caminho_csv, parse_dates=["Date"], index_col="Date")
df = df[["Open", "High", "Low", "Close", "Volume"]]
scaler = MinMaxScaler()
dados_escalados = scaler.fit_transform(df)
X, y = [], []
for i in range(len(dados_escalados) - 60):
X.append(dados_escalados[i:i+60])
y.append(dados_escalados[i+60][3])
return np.array(X), np.array(y), scaler
def criar_modelo_cnn(input_shape):
model = Sequential([
Conv1D(64, 3, activation='relu', input_shape=input_shape),
MaxPooling1D(2),
Conv1D(128, 3, activation='relu'),
MaxPooling1D(2),
Flatten(),
Dense(64, activation='relu'),
Dropout(0.2),
Dense(1)
])
model.compile(optimizer=Adam(0.001), loss='mean_squared_error')
return model