gpt4 book ai didi

python - 当只有一个输入时如何处理MinMaxScaler?

转载 作者:行者123 更新时间:2023-12-01 01:40:18 24 4
gpt4 key购买 nike

我正在使用MinMaxScaler。因此输入以下内容:

data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]

将在范围(0,1)内进行如下转换:

[[ 0.    0.  ]
[ 0.25 0.25]
[ 0.5 0.5 ]
[ 1. 1. ]]

现在如何转换单个输入?在传递单个输入时,例如:

data = [[1,18]]

将变换如下:

[[0.,0.]]

原因是,没有 MinMax,因此缩放到 0。但是,如果我只有一个输入,并且希望将其传递给机器学习模型(在缩小输入和输出后进行训练)作为输入,我该怎么办?无论缩放之前数据的差异如何,所有输出都将相同。这绝对是不对的。我在这里能做什么?有什么方法可以将单个输入表示为一系列 0. 吗?

以下是我在训练过程中所做的事情:

    X_scaler = MinMaxScaler(feature_range=(0, 1))
Y_scaler = MinMaxScaler(feature_range=(0, 1))

# Scale both training inputs and outputs
X_scaled_training = X_scaler.fit_transform(X_training)
Y_scaled_training = Y_scaler.fit_transform(Y_training)

X_scaled_testing = X_scaler.transform(X_testing)
Y_scaled_testing = Y_scaler.transform(Y_testing)

在训练过程中,我按如下方式反转模型中的值以获得最终输出分数:

Y_predicted = Y_scaler.inverse_transform(Y_predicted_scaled)

最佳答案

对于您所问的问题,有一些看似合理的解释。

  • 如果您有兴趣在训练集中使用单个变量,则将所有内容缩放至 0 是一个合理的解释。如果没有某种领域知识或其他信息来源,您的最佳猜测就是平均值(或中值或其他值,具体取决于您的误差函数)。
  • 如果您有兴趣在测试集中使用单个变量,问题是您应该使用与训练数据相同的最小/最大缩放比例。由于最小/最大缩放的参数已经预先确定,因此您的新数据几乎肯定不会缩放到 0(如果缩放到 0,那仍然是正确的选择)。

您希望对测试数据(或生产数据或其他数据)使用相同的最小/最大缩放器的原因是,为了让您的模型泛化,它需要在相同的数据上运行您训练它所依据的数据类型。思考机器学习模型的一种方法是它复制观察到的概率分布。如果您对测试数据使用不同的最小/最大缩放器(或预处理中的任何其他步骤),那么您将使用有关一种概率分布的信息来尝试预测可能完全不同的分布。这通常效果不佳。

关于python - 当只有一个输入时如何处理MinMaxScaler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51961033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com