Python

Diferencias entre fit(), predict() y fit_predict() en Scikit-learn

Scikit-learn (muchas veces reverenciada como sklearn) es posiblemente la librería de Aprendizaje Automático más popular actualmente en Python. Lo que se debe a la cantidad de modelos que implementa y su sencillez. En la mayoría de los objetos de esta librería se encuentran implementados los métodos fit(), predict() y fit_predict() usados para entrenar y realizar predicciones con los modelos.

Para que se utiliza fit(), predict() y fit_predict()

En las clases de Scikit-learn los métodos fit(), predict() y fit_predict() se emplean para lo siguiente:

  • fit(): Este método se utiliza para entrenar los modelos con los datos de entrenamiento. Es decir, se utiliza para obtener los parámetros del modelo con los que se minimiza el error de predicción en los datos de entrenamiento. Debido a que se emplea para entrenar el modelo fit() se suele usar sobre los datos de entrenamiento.
  • predict(): Este método se utiliza para realizar obtener las predicciones de un modelo sobre un conjunto de datos de entrada desconocidos. Es decir, una vez entrenado el modelo, se puede utilizar el método predict() saber los valores o etiquetas que asigna el modelo a una conjunto de datos. Dada la finalidad de este método, suele usarse con los datos de test o cualquier conjunto desconocido.
  • fit_predict(): Este método se utiliza para ajustar un modelo con los datos de entrenamiento y obtener las predicciones que realiza el modelo sobre estos. Básicamente combina en un único paso los métodos fit() y predict() sobre el conjunto de datos de entrenamiento. Es habitual emplear este método en los modelos de aprendizaje no supervisado donde no existe una valor o etiqueta objetivo y la finalidad del modelo suele ser agrupar los datos.

Resumiendo, fit() se utiliza para entrenar los modelos, predict() para obtener predicciones y fit_predict() cuando se desea entrenar y obtener una predicción para el modelo

Los métodos transform() y fit_transform() para transformers

En las clases transformer, las que transforma los datos en lugar de ajustarlas a un modelo como puede ser StandardScaler, no existen los métodos predict() ni fit_predict(), en su lugar existen transform() y fit_transform(). En estas clases se utilidad es:

  • transform(): Este método se utiliza para transformar los datos con un transformer ya entrenado. Al igual que los clasificadores los transformer se ajustan con un conjunto de datos de referencia mediante el método fit(). Por lo tanto, transform() es el equivalente de predict() en los transformers.
  • fit_transform(): Este método se utiliza para ajustar y obtener los valores transformados con un transformer. Su uso es bastante habitual dado que normalmente el entrenamiento de estos objetos se realiza para transformar los datos.

Conclusiones

En esta ocasión se han repasado las diferencias que existe entre los métodos fit(), predict() y fit_predict() de Scikit-learn. Tres métodos que son muy utilizados cuando se trabaja con esta librería. También se ha visto los métodos equivalentes que existen en los transformers.

Imagen de macroworlds en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Scikit-Learn

Recent Posts

Cómo Comparar Dos Hipotecas con Todos los Gastos Incluidos

Comparar dos hipotecas parece sencillo: la que tenga el TIN más bajo es la mejor…

5 días ago

Segmentación RFM: cómo clasificar tu cartera de clientes antes de calcular el CLV

En un artículo anterior vimos la fórmula clásica del CLV junto a sus limitaciones. Una…

7 días ago

Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)

Y llegamos al final de una serie que había programado para ser de tres entradas.…

2 semanas ago

PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado

Un modelo de credit scoring no es un artefacto estático. Se construye en un momento…

2 semanas ago

Los indicadores que se autocumplen, o cuando medir es modificar – El bestiario de los indicadores económicos absurdos (parte 7)

En las seis entregas anteriores hemos paseado por casi todos los géneros del disparate económico:…

3 semanas ago

Customer Lifetime Value: la fórmula clásica que todo analista debería dominar

El Customer Lifetime Value (CLV) es, probablemente, la métrica más importante que puede calcular una…

3 semanas ago

This website uses cookies.