解决模型预测时如何对预测数据归一化问题
众说周知,在对模型训练时使用归一化或者标准化操作可以大大提高模型的准确率和效率,但是当我们的模型训练好上线后,怎么对新的预测数据进行归一化呢?
解决办法:保存归一化和标准化参数
训练时,在对训练集进行训练后,将归一化或标准化模型参数保存。
import joblib
from sklearn.preprocessing import MinMaxScaler
data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
scaler = MinMaxScaler()
scaler = scaler.fit(data)
result = scaler.transform(data)
print(result)
# 保存归一化参数
joblib.dump(scaler, "scaler.pkl")
[[0. 0. ]
[0.25 0.25]
[0.5 0.5 ]
[1. 1. ]]
预测时,在对测试集进行训练前,先加载归一化或标准化模型参数,然后对预测集数据进行归一化或标准化。
import joblib
# 加载归一化参数
scaler = joblib.load('scaler.pkl')
print(scaler.transform([[-0.5, 6]]))
[[0.25 0.25]]