Estimador Final
Pipeline foi utilizado anteriormente para pré-processamento, mas seu verdadeiro propósito é encadear o pré-processamento com um preditor final. A última etapa em um pipeline pode ser qualquer estimador (tipicamente um modelo) que produza previsões.
Ao chamar .fit(), cada transformador executa .fit_transform().
Ao chamar .predict(), o pipeline utiliza .transform() antes de enviar os dados para o estimador final.
Isso é necessário porque novos dados devem ser transformados exatamente como os dados de treinamento.
Por que .transform()?
Utilizar .fit_transform() em novos dados pode alterar codificações (por exemplo, em OneHotEncoder), criando colunas incompatíveis e previsões não confiáveis.
.transform() garante pré-processamento consistente, ignorando categorias não vistas e mantendo a mesma ordem das colunas.
Veja como os dados de treinamento codificados com one-hot aparecem:
Veja as novas instâncias para previsão:
Se .fit_transform() fosse aplicado a novas instâncias, o OneHotEncoder poderia gerar colunas em uma ordem diferente ou até mesmo introduzir novas colunas. Isso faria com que os novos dados fossem transformados de forma inconsistente com o conjunto de treinamento, tornando as previsões não confiáveis.
No entanto, o uso de .transform() garante que os novos dados sejam codificados exatamente como os dados de treinamento, ignorando categorias não vistas durante o treinamento:
Adicionando o Estimador Final
Basta adicionar o modelo como o último passo do pipeline:
pipe = make_pipeline(
ct,
SimpleImputer(strategy='most_frequent'),
StandardScaler(),
KNeighborsClassifier()
)
pipe.fit(X, y)
pipe.predict(X_new)
Isso permite que todo o fluxo de trabalho—pré-processamento + predição—seja executado com uma única chamada.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Incrível!
Completion taxa melhorada para 3.13
Estimador Final
Deslize para mostrar o menu
Pipeline foi utilizado anteriormente para pré-processamento, mas seu verdadeiro propósito é encadear o pré-processamento com um preditor final. A última etapa em um pipeline pode ser qualquer estimador (tipicamente um modelo) que produza previsões.
Ao chamar .fit(), cada transformador executa .fit_transform().
Ao chamar .predict(), o pipeline utiliza .transform() antes de enviar os dados para o estimador final.
Isso é necessário porque novos dados devem ser transformados exatamente como os dados de treinamento.
Por que .transform()?
Utilizar .fit_transform() em novos dados pode alterar codificações (por exemplo, em OneHotEncoder), criando colunas incompatíveis e previsões não confiáveis.
.transform() garante pré-processamento consistente, ignorando categorias não vistas e mantendo a mesma ordem das colunas.
Veja como os dados de treinamento codificados com one-hot aparecem:
Veja as novas instâncias para previsão:
Se .fit_transform() fosse aplicado a novas instâncias, o OneHotEncoder poderia gerar colunas em uma ordem diferente ou até mesmo introduzir novas colunas. Isso faria com que os novos dados fossem transformados de forma inconsistente com o conjunto de treinamento, tornando as previsões não confiáveis.
No entanto, o uso de .transform() garante que os novos dados sejam codificados exatamente como os dados de treinamento, ignorando categorias não vistas durante o treinamento:
Adicionando o Estimador Final
Basta adicionar o modelo como o último passo do pipeline:
pipe = make_pipeline(
ct,
SimpleImputer(strategy='most_frequent'),
StandardScaler(),
KNeighborsClassifier()
)
pipe.fit(X, y)
pipe.predict(X_new)
Isso permite que todo o fluxo de trabalho—pré-processamento + predição—seja executado com uma única chamada.
Obrigado pelo seu feedback!