| import numpy as np | |
| import matplotlib.pyplot as plt | |
| from keras.models import load_model | |
| def load_model_and_predict(model_path, X_val, y_val, ticker_index=0): | |
| """ | |
| Carrega um modelo CNN salvo e plota previsão vs. valor real para um ticker específico. | |
| Args: | |
| model_path (str): Caminho para o modelo salvo (ex: 'cnn_model.keras') | |
| X_val (np.ndarray): Dados de entrada de validação (shape: [tickers, time, features]) | |
| y_val (np.ndarray): Valores reais de saída de validação | |
| ticker_index (int): Índice do ticker a ser visualizado | |
| """ | |
| print(f"Carregando modelo de {model_path}...") | |
| model = load_model(model_path) | |
| X_sample = X_val[ticker_index] | |
| y_true = y_val[ticker_index] | |
| if len(X_sample.shape) == 2: | |
| X_sample = X_sample[np.newaxis, ...] | |
| y_pred = model.predict(X_sample).squeeze() | |
| y_true = y_true.squeeze() | |
| plt.figure(figsize=(10, 5)) | |
| plt.plot(y_true, label='Real', linewidth=2) | |
| plt.plot(y_pred, label='Previsto', linestyle='--') | |
| plt.title(f'CNN - Previsão vs Real (Ticker {ticker_index})') | |
| plt.xlabel('Dias Futuros') | |
| plt.ylabel('Preço Normalizado') | |
| plt.legend() | |
| plt.tight_layout() | |
| plt.show() | |