Estimador Final
Até este ponto, o Pipeline foi utilizado principalmente para pré-processamento. No entanto, o pré-processamento é apenas uma etapa intermediária. Uma vez que os dados são transformados, eles geralmente são passados para um preditor (modelo) para produzir resultados ou previsões.
A classe Pipeline oferece suporte a isso permitindo que o estimador—frequentemente um preditor—seja a etapa final. A ilustração abaixo demonstra como um Pipeline opera quando seu último componente é um preditor.
Quando o método .fit() de um pipeline é chamado, cada transformador executa .fit_transform(). Em contraste, quando .predict() é chamado, o pipeline aplica .transform() aos dados antes de passá-los ao preditor.
O método .predict() é utilizado principalmente para novas instâncias, que devem passar pelas mesmas transformações que os dados de treinamento durante o .fit().
Por que .transform()?
O pipeline aplica .transform() em vez de .fit_transform() ao lidar com novas instâncias de dados para predição. Isso garante transformação consistente entre os conjuntos de treinamento e teste.
Por exemplo, considere um conjunto de dados com uma característica categórica 'Color' que deve ser codificada antes do treinamento do modelo:
Veja como os dados de treinamento codificados com one-hot ficam:
Aqui estão 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, utilizar .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
Para utilizar o estimador final, basta adicioná-lo como última etapa do pipeline. Por exemplo, no próximo capítulo, será utilizado o modelo KNeighborsClassifier como estimador final.
A sintaxe é a seguinte:
# Creating a pipeline
pipe = make_pipeline(ct,
SimpleImputer(strategy='most_frequent'),
StandardScaler(),
KNeighborsClassifier()
)
# Training a model using pipeline
pipe.fit(X, y)
# Predicting new instances
pipe.predict(X_new)
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.13
Estimador Final
Deslize para mostrar o menu
Até este ponto, o Pipeline foi utilizado principalmente para pré-processamento. No entanto, o pré-processamento é apenas uma etapa intermediária. Uma vez que os dados são transformados, eles geralmente são passados para um preditor (modelo) para produzir resultados ou previsões.
A classe Pipeline oferece suporte a isso permitindo que o estimador—frequentemente um preditor—seja a etapa final. A ilustração abaixo demonstra como um Pipeline opera quando seu último componente é um preditor.
Quando o método .fit() de um pipeline é chamado, cada transformador executa .fit_transform(). Em contraste, quando .predict() é chamado, o pipeline aplica .transform() aos dados antes de passá-los ao preditor.
O método .predict() é utilizado principalmente para novas instâncias, que devem passar pelas mesmas transformações que os dados de treinamento durante o .fit().
Por que .transform()?
O pipeline aplica .transform() em vez de .fit_transform() ao lidar com novas instâncias de dados para predição. Isso garante transformação consistente entre os conjuntos de treinamento e teste.
Por exemplo, considere um conjunto de dados com uma característica categórica 'Color' que deve ser codificada antes do treinamento do modelo:
Veja como os dados de treinamento codificados com one-hot ficam:
Aqui estão 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, utilizar .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
Para utilizar o estimador final, basta adicioná-lo como última etapa do pipeline. Por exemplo, no próximo capítulo, será utilizado o modelo KNeighborsClassifier como estimador final.
A sintaxe é a seguinte:
# Creating a pipeline
pipe = make_pipeline(ct,
SimpleImputer(strategy='most_frequent'),
StandardScaler(),
KNeighborsClassifier()
)
# Training a model using pipeline
pipe.fit(X, y)
# Predicting new instances
pipe.predict(X_new)
Obrigado pelo seu feedback!