在测试fi上使用缩放数据

2024-04-24 20:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在我的第一个数据文件(F1)上拟合逻辑回归模型,并对其进行测试 在另一个名为F2的文件上(另一年的同一行权)。 F1上的代码:

   sc = preprocessing.StandardScaler()
   X_train = sc.fit_transform(X_train)
   X_test =  sc.transform(X_test) 
   logistic = LogisticRegression(random_state =0,max_iter = 300 ,penalty = 'l2')
   model = logistic.fit(X,y)
   ScaledObj = X_train

如何使用测试文件中的缩放数据 我这样做了,但我不知道如何在测试中使用ScaledObj 我的文件测试代码(F2)

 F2 = pd.read_csv("F2.csv", sep =',')
 y_test = F2['y']
 X_test = F2.copy()
 del X_test['y']
 y_pred = model.predict(X_test)
 proba= model.predict_proba(X_test)[:, 1]
 Auc_Test = metrics.roc_auc_score(y_test, proba)

Tags: 文件csvtestmodel数据文件transformtrainpredict
1条回答
网友
1楼 · 发布于 2024-04-24 20:21:18

对于机器学习项目中的最佳实践,典型的工作流如下所示:

  1. fit与测试数据分离的训练数据的定标器
  2. transform培训数据(您已经使用fit_transform步骤完成了此操作)
  3. transform使用已安装的定标器*读取测试数据。这可以防止训练数据和测试数据之间出现任何data leakage
  4. 使用相同的拟合定标器*来transform任何其他验证或生产数据

*-请注意,scaler只存在于内存中,因此如果您想在另一个脚本中使用它,可以使用类似picklejoblib的内容来保存对象以供以后使用

您已经在上面的代码中正确地完成了步骤1-3,并且可以以相同的方式执行步骤4。但是,我建议不要覆盖变量,因为这可能会在以后阅读代码时造成混淆

F2 = pd.read_csv("F2.csv", sep =',')
y_test1 = F2['y']
X_test1 = F2.copy()
del X_test1['y']

#add this line, same as you did before
X_test1 =  sc.transform(X_test1)

y_pred = model.predict(X_test1)

相关问题 更多 >