La siguiente explicación se basa en la fit_transformde Imputerla clase, pero la idea es la misma para fit_transformlas otras clases scikit_learn gusta MinMaxScaler.
transformreemplaza los valores faltantes con un número. Por defecto, este número es el medio de las columnas de algunos datos que elija. Considere el siguiente ejemplo:
imp = Imputer()
# calculating the means
imp.fit([[1, 3], [np.nan, 2], [8, 5.5]])
Ahora el ordenador ha aprendido a usar una media (1 + 8) / 2 = 4.5 para la primera columna y una media (2 + 3 + 5.5) / 3 = 3.5 para la segunda columna cuando se aplica a datos de dos columnas:
X = [[np.nan, 11],
[4, np.nan],
[8, 2],
[np.nan, 1]]
print(imp.transform(X))
obtenemos
[[4.5, 11],
[4, 3.5],
[8, 2],
[4.5, 1]]
Entonces, fitel imputador calcula los medios de las columnas a partir de algunos datos, y transformaplica esos medios a algunos datos (que simplemente reemplaza los valores faltantes con los medios). Si ambos datos son iguales (es decir, los datos para calcular las medias y los datos a los que se aplican las medias), puede utilizarlos, fit_transformque es básicamente un fitseguido de a transform.
Ahora tus preguntas:
¿Por qué podríamos necesitar transformar datos?
"Por varias razones, muchos conjuntos de datos del mundo real contienen valores faltantes, a menudo codificados como espacios en blanco, NaN u otros marcadores de posición. Sin embargo, estos conjuntos de datos son incompatibles con los estimadores de aprendizaje de scikit que suponen que todos los valores en una matriz son numéricos" ( fuente )
¿Qué significa ajustar el modelo en los datos de entrenamiento y transformarlos en datos de prueba?
El uso fitde una impresora no tiene nada que ver con el fitutilizado en el ajuste del modelo. Por lo tanto, usar los fitdatos de entrenamiento de la computadora solo calcula los medios de cada columna de datos de entrenamiento. El uso transformde datos de prueba reemplaza los valores faltantes de datos de prueba con medios que se calcularon a partir de los datos de entrenamiento.