L'explication suivante est basée sur fit_transform
de la Imputer
classe, mais l'idée est la même pour fit_transform
d'autres classes de scikit_learn aiment MinMaxScaler
.
transform
remplace les valeurs manquantes par un nombre. Par défaut, ce nombre représente la moyenne des colonnes de certaines données que vous avez choisies. Prenons l'exemple suivant:
imp = Imputer()
# calculating the means
imp.fit([[1, 3], [np.nan, 2], [8, 5.5]])
Maintenant, les imputateurs ont appris à utiliser une moyenne (1 + 8) / 2 = 4,5 pour la première colonne et une moyenne (2 + 3 + 5,5) / 3 = 3,5 pour la deuxième colonne lorsque celle-ci est appliquée à une donnée à deux colonnes:
X = [[np.nan, 11],
[4, np.nan],
[8, 2],
[np.nan, 1]]
print(imp.transform(X))
on a
[[4.5, 11],
[4, 3.5],
[8, 2],
[4.5, 1]]
Ainsi, fit
l'imputer calcule les moyennes des colonnes à partir de certaines données et les transform
applique à certaines données (ce qui remplace simplement les valeurs manquantes par les moyennes). Si ces deux données sont identiques (c'est-à-dire les données permettant de calculer les moyennes et les données auxquelles les moyennes sont appliquées), vous pouvez utiliser fit_transform
ce qui est fondamentalement un fit
suivi de a transform
.
Maintenant vos questions:
Pourquoi avons-nous besoin de transformer des données?
"Pour diverses raisons, de nombreux ensembles de données du monde réel contiennent des valeurs manquantes, souvent codées sous forme de blancs, de NaN ou d'autres espaces réservés. De tels ensembles de données sont toutefois incompatibles avec les estimateurs scikit-learn qui supposent que toutes les valeurs d'un tableau sont numériques" ( source )
Qu'est-ce que cela signifie d'ajuster le modèle sur les données d'apprentissage et de le transformer pour tester les données?
L' fit
imputer d'un imputer n'a rien à voir avec fit
utilisé dans l'ajustement de modèle. Donc, en utilisant des imputateurs fit
sur les données d'entraînement calcule simplement la moyenne de chaque colonne de données d'entraînement. L'utilisation transform
de données de test remplace ensuite les valeurs manquantes des données de test par des moyennes calculées à partir des données d'apprentissage.