如何在旧的 MinMaxScale 上重新扩展新数据库?



我遇到了扩展新数据的问题。在我的方案中,我已经训练和测试了模型,所有x_train和x_test都使用 sklearn 进行了扩展。MinMaxScaler((。然后,应用于实时过程,如何以相同的训练和测试数据比例缩放新输入。 步骤如下

featuresData = df[features].values # Array of all features with the length of thousands
sc = MinMaxScaler(feature_range=(-1,1), copy=False)
featuresData = sc.fit_transform(featuresData)
#Running model to make the final model
model.fit(X,Y)
model.predict(X_test)
#Saving to abcxyz.h5

然后使用新数据实施

#load the model abcxyz.h5
#catching new data 
#Scaling new data to put into the loaded model << I'm stucking in this step
#...

那么如何缩放新数据进行预测,然后将逆变换转换为最终结果呢?根据我的逻辑,在训练模型之前,它需要以与旧缩放器相同的方式进行缩放。

从你使用scikit-learn的方式来看,你需要保存变压器:

import joblib
# ...
sc = MinMaxScaler(feature_range=(-1,1), copy=False)
featuresData = sc.fit_transform(featuresData)
joblib.dump(sc, 'sc.joblib') 
# with new data
sc = joblib.load('sc.joblib')
transformData = sc.transform(newData)
# ...

使用scikit-learn的最佳方法是将转换与模型合并。这样,只需保存包含转换管道的模型。

from sklearn import svm
from sklearn.preprocessing import MinMaxScaler
from sklearn.pipeline import Pipeline

clf = svm.SVC(kernel='linear')
sc = MinMaxScaler(feature_range=(-1,1), copy=False)
model = Pipeline([('scaler', sc), ('svc', clf)])
#...

当您执行model.fit时,首先模型将在引擎盖下为您的缩放器执行fit_transform。使用model.predict,将涉及缩放器的transform

考虑以下示例:

data1 = np.array([0, 1, 2, 3, 4, 5])
data2 = np.array([0, 2, 4, 6, 8, 10])
sc = MinMaxScaler()
sc.fit_transform(data1.reshape(-1, 1))

输出:

array([[0. ],
[0.2],
[0.4],
[0.6],
[0.8],
[1. ]])

缩放后,第二个数据集将为您提供相同的值:

sc.fit_transform(data2.reshape(-1, 1))

输出:

array([[0. ],
[0.2],
[0.4],
[0.6],
[0.8],
[1. ]])

让我们适应第一个数据集,并对第二个数据集使用相同的缩放器:

sc.fit(data1.reshape(-1, 1))
sc.transform(data2.reshape(-1, 1)) 

输出:

array([[0. ],
[0.4],
[0.8],
[1.2],
[1.6],
[2. ]])

您应该使用fit()transform()来执行此操作,如下所示:

# Lets say you read real times data as new_data
featuresData = df[features].values
sc = MinMaxScaler(feature_range=(-1,1), copy=False)
featuresData = sc.fit_transform(featuresData)
new_data = sc.transform(new_data)

sc.transform将new_data上应用与对要素数据应用的比例相同。

相关内容

  • 没有找到相关文章

最新更新