Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Inversão dos dados

Olá! Tudo bem?

Tenho uma dúvida: estou tentando aplicar a função inverse_transform nos dados para trazer os valores ao formato original, mas não estou conseguindo. Tentei buscar ajuda na Luri, mas acabei ficando mais confuso. Poderiam me ajudar?

Esse é o código que utilizei para fazer a inversão:

d = {'datas': xteste_novo, 'passageiro': y_predito[:,0]}

resultado_teste = pd.DataFrame(data=d)

Esse é o erro que aparece:

ValueError: Per-column arrays must each be 1-dimensional

Estou na parte em que o professor Allan acabou de gerar as previsões com o modelo LSTM.

Obrigado

4 respostas

Vi que o motivo do problema é que a dimensão de xteste_novo e y_predito são diferentes. Preciso deixá-los na mesma dimensão, mas não consigo fazer isso. Poderiam me ajudar?

Oi Lucas,

Se puder compartilhar o seu notebook eu tento rodar o código aqui para entender melhor o ponto onde está acontecendo o erro.

Mas antes tente fazer isso:

import numpy as np
import pandas as pd

# Supondo que xteste_novo e y_predito já foram definidos anteriormente
xteste_novo = np.array(xteste_novo).flatten()  # Garantir que seja unidimensional
y_predito = np.array(y_predito).flatten()  # Garantir que seja unidimensional

# Criação do DataFrame
d = {'datas': xteste_novo, 'passageiro': y_predito}

resultado_teste = pd.DataFrame(data=d)

print(resultado_teste.head())

Passei esse código porque mensagem de erro ValueError: Per-column arrays must each be 1-dimensional geralmente ocorre quando se tenta criar um DataFrame a partir de arrays que não são unidimensionais.

Pelo o que entendi você já tem a previsão, mas apenas não está conseguindo encaixar no dataframe.

Professor, obrigado pela resposta! Tentei executar o código que o senhor me forneceu e a parte da conversão dos dados para o tipo correto funcionou perfeitamente. No entanto, quando tento transformar o dicionário 'd', estou encontrando um erro. Esse é o erro que apresenta:

ValueError: All arrays must be of the same length

Pelo que vi as dimensões tem que ser iguais, mas não entendi muito bem. Vou deixar o notebook que estou utilizando anexado aqui no comentário.

Clique aqui para acessar o notebook.

solução!

Oi Lucas,

Perdão pela demora. Eu saí de férias e acabei esquecendo de olhar as conversas que eu havia começado no fórum.

Para corrigir o problema eu fiz isso aqui:

d = {'datas':df_bicicleta['datas'][tamanho_treino+10: len(df_bicicleta)], 'passageiro': y_predito}

O problema estava no fato de que as datas não eram dadas pelo xteste_novo. Lembre que no decorrer do curso nós fizemos um pré-processamento dos dados para a rede "entender" o caráter sequencial dos dados. Por isso, o xteste_novo tem muito mais elementos que o y_predito. Para colocar as informações no dataframe eu peguei a quantidade de pontos diretamente do df_bicicleta. Repare que também fizemos isso na construção desse gráfico:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade