我训练了Logistic模型,交叉验证并使用joblib模块将其保存到文件中 . 现在我想加载这个模型并用它预测新数据 . 这是正确的方法吗?特别是标准化 . 我也应该在我的新数据上使用scaler.fit()吗?在我接下来的教程中,scaler.fit仅用于训练集,所以我在这里有点迷失 .
这是我的代码:
#Loading the saved model with joblib
model = joblib.load('model.pkl')
# New data to predict
pr = pd.read_csv('set_to_predict.csv')
pred_cols = list(pr.columns.values)[:-1]
# Standardize new data
scaler = StandardScaler()
X_pred = scaler.fit(pr[pred_cols]).transform(pr[pred_cols])
pred = pd.Series(model.predict(X_pred))
print pred
1 回答
不,这是不正确的 . 应使用列车数据拟合所有数据准备步骤 . 否则,您冒着应用错误转换的风险,因为估算的均值和方差可能在列车和测试数据之间有所不同 .
同时训练,保存,加载和应用所有步骤的最简单方法是使用管道:
At training :
At prediction :