我们通常在X_train
上使用.fit_transform()
,而在X_test
上使用.transform()
。
这是因为它们来自同一数据集。如果我们再次对X_test
应用fit_transform()
,这将如何影响我们的模型?
回答:
例如,如果你使用SimpleImputer
来用平均值填补数值型缺失值,每次调用fit_transform
方法时,你都在:
- 计算该变量(或变量)的平均值
- 用计算出的平均值替代缺失值
现在,如果你对训练集和测试集都应用fit_transform
,可能会为每个变量得到两个不同的平均值,从而导致两个不同的数据处理过程。
此外,这里还有一个更实际的问题。如果你将这个过程部署到生产环境中,并且对单个记录应用这个过程,你会使用哪个“平均值”?是训练集的还是测试集的?还是你也会对该记录应用fit_transform
,计算一个记录的平均值?