scaler = MinMaxScaler(feature_range = (0, 1)) X_train[:, :, 0] = scaler.fit_transform(X_train[:, :, 0]) X_test[:, :, 0] = scaler.transform(X_test[:, :, 0]) X_train[:, :, 1] = scaler.fit_transform(X_train[:, :, 1]) X_test[:, :, 1] = scaler.transform(X_test[:, :, 1]) X_train[:, :, 2] = scaler.fit_transform(X_train[:, :, 2]) X_test[:, :, 2] = scaler.transform(X_test[:, :, 2]) X_train[:, :, 3] = scaler.fit_transform(X_train[:, :, 3]) X_test[:, :, 3] = scaler.transform(X_test[:, :, 3]) X_train[:, :, 4] = scaler.fit_transform(X_train[:, :, 4]) X_test[:, :, 4] = scaler.transform(X_test[:, :, 4]) scaler_filename = 'scaler.save' joblib.dump(scaler, scaler_filename) As you can see, I used MinMaxScaler to standardize each column of train/test data. After that, I saved the scaler object for posterior utilization. When I saved the scaler, can I just call the 'transform' method on the new data or do I have to call the 'fit' method too?
3 Réponses :
Je vous suggère d'utiliser différentes scalers pour chacune de vos tables 2D. Ici, l'objet Straler que vous avez à la fin ne se souvient pas des paramètres de mise à l'échelle pour l'index 0. Peut-être que c'est peut-être le comportement souhaité, dis-moi si je me trompe ... p>
Si vous avez sauvegardé l'objet Scalerer à l'aide de jobliB ou de cornichon et chargez-le à partir de fichier, il contient tous les paramètres de droite pour une transformation ultérieure afin que oui, vous pouvez utiliser la transformée seule. P>
de Docs :
MinmaxScaler strong> Transforme les fonctionnalités en éteignant chaque fonctionnalité sur une plage donnée. P>
Cet estimateur échelle et traduit chaque fonctionnalité individuellement forte> telle que c'est dans la plage donnée de l'ensemble de l'entraînement, par ex. entre zéro et un. p> blockQuote>
Pas besoin de le faire pour chaque fonctionnalité individuellement, vous pouvez accumuler plusieurs fonctionnalités à la fois: P>
scaler = joblib.load('scaler.save') ...
Le Je l'utiliserais comme tel p> MinmaxScaler code> échoue chaque colonne de données entre 0 et 1. La bonne voie, à partir d'un point de vue d'apprentissage de la machine, consiste à "apprendre" un refleer sur les données de formation, puis utilisez ensuite le Stractor appris sur les données de test. La raison de ceci est deux fois
Vous devriez utiliser des pipelines. De plus, les colonnes d'échelle des scalers individuellement. Au fur et à mesure que vous montrez la même référence d'objet et encore une fois, vous ne conservez que votre dernier scaler. Je conseillerais de simplement regarder le Docs