我在 Github 上查看 MinMaxScaler 的源代码。我知道,当您将预处理类安装到数据集时,它会获取数据并为转换做好准备。
比方说,我将 MinMaxScaler 安装到X_train
并对其进行了改造。但是当我使用另一个数据集时,转换是如何工作的,比如说X_test
?当你调用transform()
时,它是否替换了使用中的数据集?
我在 Github 上查看 MinMaxScaler 的源代码。我知道,当您将预处理类安装到数据集时,它会获取数据并为转换做好准备。
比方说,我将 MinMaxScaler 安装到X_train
并对其进行了改造。但是当我使用另一个数据集时,转换是如何工作的,比如说X_test
?当你调用transform()
时,它是否替换了使用中的数据集?
模型在训练数据上进行训练,并基于未见过的测试数据也来自与训练数据相同分布的假设对测试数据进行评估。因此,当您计算训练数据的统计数据时,基于测试数据也来自相同分布的假设,您应该对测试数据应用相同的转换。您应该让 MinMaxScaler 适合您的训练数据,然后使用此缩放器来转换训练数据和测试数据。还有数据泄露的问题,看看那个:StandardScaler before and after split data
对于转换,fit 方法从提供的数据中提取相关统计信息(最小值、最大值用于 min-max 缩放、均值、std 用于标准化),并且 transform 方法根据提取的统计信息单独转换每个特征。