Estimador Final
Até o momento, só utilizamos um Pipeline
para o pré-processamento.
No entanto, na maioria das vezes, esse não é o ponto final. Normalmente, após o pré-processamento, queremos usar esses dados transformados em um Preditor (Modelo).
É por isso que a classe Pipeline
permite que o passo final seja qualquer estimador, geralmente um preditor.
A ilustração a seguir mostra como o Pipeline
funciona quando seu último passo é um preditor.
Nota
Quando chamamos o método .fit()
de um pipeline, o método .fit_transform()
é chamado em todos os transformadores. Mas quando chamamos o método .predict()
, o método .transform()
é invocado. O método .predict()
é usado principalmente para prever novas instâncias, que devem ser transformadas exatamente da mesma forma que o conjunto de treinamento durante o .fit()
.
Se aplicássemos o método .fit_transform()
em vez de .transform()
para transformar novas instâncias, o OneHotEncoder
poderia criar novas colunas em uma ordem diferente, e os Scalers provavelmente escalariam os dados de maneira um pouco diferente. Como resultado, novas instâncias seriam transformadas de forma diferente do conjunto de treinamento, e a previsão seria pouco confiável.
Isso é algo a ter em mente quando você não está usando pipelines. E esse é mais um benefício dos pipelines, pois eles tratam essas etapas automaticamente.
Para usar um estimador final, você apenas precisa adicioná-lo como o último passo do pipeline. Por exemplo, no próximo capítulo, usaremos um modelo KNeighborsClassifier
como um estimador final. A sintaxe é a seguinte:
Tudo estava claro?
Conteúdo do Curso
ML Introduction with scikit-learn
1. Conceitos de Aprendizado de Máquina
2. Pré-processamento de Dados com Scikit-learn
ML Introduction with scikit-learn
Estimador Final
Até o momento, só utilizamos um Pipeline
para o pré-processamento.
No entanto, na maioria das vezes, esse não é o ponto final. Normalmente, após o pré-processamento, queremos usar esses dados transformados em um Preditor (Modelo).
É por isso que a classe Pipeline
permite que o passo final seja qualquer estimador, geralmente um preditor.
A ilustração a seguir mostra como o Pipeline
funciona quando seu último passo é um preditor.
Nota
Quando chamamos o método .fit()
de um pipeline, o método .fit_transform()
é chamado em todos os transformadores. Mas quando chamamos o método .predict()
, o método .transform()
é invocado. O método .predict()
é usado principalmente para prever novas instâncias, que devem ser transformadas exatamente da mesma forma que o conjunto de treinamento durante o .fit()
.
Se aplicássemos o método .fit_transform()
em vez de .transform()
para transformar novas instâncias, o OneHotEncoder
poderia criar novas colunas em uma ordem diferente, e os Scalers provavelmente escalariam os dados de maneira um pouco diferente. Como resultado, novas instâncias seriam transformadas de forma diferente do conjunto de treinamento, e a previsão seria pouco confiável.
Isso é algo a ter em mente quando você não está usando pipelines. E esse é mais um benefício dos pipelines, pois eles tratam essas etapas automaticamente.
Para usar um estimador final, você apenas precisa adicioná-lo como o último passo do pipeline. Por exemplo, no próximo capítulo, usaremos um modelo KNeighborsClassifier
como um estimador final. A sintaxe é a seguinte:
Tudo estava claro?