1
resposta

[Dúvida] Deploy dados categoricos

Professora, quando tento realizar o predict como os meus novos dados apresenta o seguinte erro:

Minha variável X inclui tanto dados numéricos quanto categóricos. Realizei a transformação usando o método OneHotEncoder nas variáveis categóricas. Após essa etapa, salvei o modelo usando o joblib. No entanto, ao tentar processar os resultados do modelo salvo, recebi uma notificação indicando a ausência de dados.

Poderia me auxiliar como contornar esse caso?

----> 2 previsoes = modelo.predict(novos_dados)

4 frames /usr/local/lib/python3.10/dist-packages/sklearn/base.py in _check_feature_names(self, X, reset) 479 ) 480 --> 481 raise ValueError(message) 482 483 def _validate_data(

ValueError: The feature names should match those that were passed during fit. Feature names seen at fit time, yet now missing:

  • EIXO_4X2
  • EIXO_6X4
  • EIXO_8X2
  • EIXO_8X4
  • EIXO_N/I
1 resposta

Oi, Paulo, tudo bem?

Pelo que interpretei da mensagem de erro, parece que o problema está relacionado à inconsistência entre os nomes das características (features) usadas para treinar o modelo e as que estão sendo usadas para fazer previsões. Isso é um erro comum quando se trabalha com dados categóricos que foram transformados usando métodos como o OneHotEncoder.

Nesse processo de transformação, cada categoria única se torna uma nova coluna (ou feature) no seu conjunto de dados. É crucial que o conjunto de dados usado para fazer previsões após o modelo ser carregado tenha exatamente as mesmas colunas de features que foram usadas durante o treinamento do modelo. Se houver colunas faltando ou extras, você encontrará esse tipo de erro.

Verifique se as colunas dos novos dados transformados correspondem exatamente às que foram usadas para treinar o modelo. Você pode fazer isso comparando os nomes das colunas do DataFrame.

E, quando receber novos dados, garanta que eles passem pela mesma transformação que os dados de treino.

Espero que dê tudo certo!

Abraços.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!