DeepFin / agents /cnn_model.py
amos-fernandes's picture
Upload 151 files
b3a7985 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