我研究了机器学习的常用预处理方法,但我无法应对以下具体问题。
我将建模的“常规”准备(虚拟变量、归一化、PCA 等,当然在必要的情况下)应用于训练数据。到现在为止还挺好。但是当我得到待分类的新数据来对上面构建的模型进行预测时,显然我也必须将这些准备步骤应用到这个新数据集上。
而问题就出现在这里了,因为如果我只是简单地再次对我的新数据进行准备步骤,这些都没有考虑到训练数据的特征。因此,如果我将新数据因子转换为虚拟变量,则只考虑新数据中现有的因子水平;如果我对新数据进行 min-max 归一化,它将根据自己的 min-max 值进行归一化,而忽略训练数据中的值;如果我使用 PCA,那么来自新数据的结果组件将完全独立于训练数据。
所以基本上我的观点是,将相同的转换分别应用于训练集和新数据集(也可能只是一个观察结果),那么这两个结果转换集将没有任何共同点,因此预测将毫无根据。
我发现了一些痕迹,在某些情况下,在这些转换的训练阶段也有一些“学习”步骤,并将这些“知识”应用于新数据(例如,插入符号和 Sklearn,使用“预测”可以转换为新数据)具有从训练数据中学习到的特征的数据),但一般来说,这种不一致仍然没有被提及。
这里的正确做法是什么?