Vous devez utiliser le modèle que vous avez formé précédemment pour mettre à l'échelle les données de test.
Si vous insérez cette ligne dans le cadre de données d'origine, ce n'est pas la bonne méthode, car vous provoquez une fuite de données, et vous ne pourrez pas voir les données réelles dans Production de cette manière.
Supposons que vous ayez plus d'un de ces échantillons et que vous décidiez de modéliser le curvimètre en regardant ces nouvelles données à nouveau, ceci est considéré comme une mauvaise pratique et cause des fuites de données, votre modèle original de curvimètre qui a été formé en regardant les données de formation devrait seulement être utilisé.
Ce qui est intéressant pour moi, c'est ce qui se passe si vos données de formation et de test ont des distributions différentes. Dans ce cas, peu importe la façon dont vous choisissez votre stratégie de mise à l'échelle, elle ne fonctionnera pas bien avec les données de test.
lien qui décrit le problème et les solutions possibles.
Voici un exemple de mise à l'échelle de vos données d'entraînement et de test, reproduit à partir de -. aquí
import numpy as np
import matplotlib as mpl
from matplotlib import pyplot as plt
from matplotlib import cm
from sklearn.preprocessing import RobustScaler
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
## load the dataset
dataset = fetch_california_housing()
X_full, y_full = dataset.data, dataset.target
##split into train and test
X_train,X_test,y_train,y_test = train_test_split(X_full,y_full)
## initialize the scaler
scale = RobustScaler()
### you are fitting the scaler and then transforming the data
## the scaler looks at the data in the train set and creates a model
## which will be used to transform the data
X_train_scaled = scale.fit_transform(X_train)
print(X_train)
print(X_train_scaled)
#### scale has been fitted once , you should be using this now
### on all test/ predict data that come in
### hence the below line only applies transform on the data
### if you are going to fit again that would mean data-leakage
X_test_scale = scale.transform(X_test)