Responder a: Adicionar Novo Registro com Variável Categórica

Home Fóruns Fórum Machine Learning e Data Science com Python de A à Z Adicionar Novo Registro com Variável Categórica Responder a: Adicionar Novo Registro com Variável Categórica

#28465

Olá Nikolas, segue a resposta do instrutor Denny:

O novo registro deve primeiro passar por todo o processamento da mesma forma que o dataset usado no treinamento passou, ou seja, todas as etapas de LabelEncoder e o OneHotEncoder no final, mas desta vez usando o método transform já que fit é usado somente com os dados de treinamento. Entretanto, você precisa observar que, sempre que usa o método fit_transform na mesma instância do LabelEncoder (no caso, labelencoder_previsores), como foi mostrado na aula, ele perde a informação referente à variável que já havia processado. Para evitar isso, é preciso criar uma instância separada para cada variável, como por exemplo:

labelencoder_previsores_1 = LabelEncoder()
labelencoder_previsores_3 = LabelEncoder()
labelencoder_previsores_5 = LabelEncoder()
[...]
labelencoder_previsores_13 = LabelEncoder()

Aí você aplica cada instância separadamente a cada variável:

previsores[:,1] = labelencoder_previsores_1.fit_transform(previsores[:,1])
previsores[:,3] = labelencoder_previsores_3.fit_transform(previsores[:,3])
previsores[:,5] = labelencoder_previsores_5.fit_transform(previsores[:,5])
[...]
previsores[:,13] = labelencoder_previsores_13.fit_transform(previsores[:,13])

E depois, no novo registro, somente o método transform:

novo_registro[:,1] = labelencoder_previsores_1.transform(novo_registro[:,1])
novo_registro[:,3] = labelencoder_previsores_3.transform(novo_registro[:,3])
novo_registro[:,5] = labelencoder_previsores_5.transform(novo_registro[:,5])
[...]
novo_registro[:,13] = labelencoder_previsores_13.transform(novo_registro[:,13])

O ColumnTransformer não precisa mudar, já que ele processa mais de uma coluna por vez:

novo_registro = column_transformer.transform(novo_registro).toarray()

Aí é só chamar seu modelo com o método predict para classificar o novo registro.

  • Esta resposta foi modificada 1 mês, 3 semanas atrás por Fábio Spak.