【问题标题】:How can I predict single sample of data using min max scaler when I am training the model with min max scaled data?当我使用最小最大缩放数据训练模型时,如何使用最小最大缩放器预测单个数据样本?
【发布时间】:2020-06-03 17:06:46
【问题描述】:

正如similar question 中所述,当您拥有一组样本时,可以轻松地测试数据。 如果用户必须预测单个样本的目标,那么如何进行。请帮忙。

谢谢。

【问题讨论】:

  • 应该没有区别:scaled_sample = scaler.transform(sample)
  • scaler=MinMaxScaler() x_train_scaled = scaler.fit_transform(x_train) a=scaler.transform(x_test.iloc[0,:]) 当我对单个样本进行缩放时,我面临以下错误 Reshape如果您的数据具有单个特征,则使用 array.reshape(-1, 1) 您的数据;如果数据包含单个样本,则使用 array.reshape(1, -1)。
  • @Dan 谢谢!您能否请教我尝试过的上述案例。我的要求是在训练模型后测试每个样本。你能帮帮我吗?

标签: python machine-learning normalization scaling test-data


【解决方案1】:

您可以使用您在训练时使用的同一 MinMaxScaler() 对象来转换您的单个实例。这是一个例子。

# training data
X_train = np.array([[1, 2], [3, 4], [5, 6]])
y_train = np.array([1, 0])

# scaler
scaler = MinMaxScaler().fit(X_train)

缩放X_train:

X_train_scaled = scaler.transform(X_train)

使用 X_train_scaled 和 y_train 训练模型 ...


预测新样本np.array([7, 8])

new_sample = np.array([7, 8]).reshape(1, -1)  # because the scaler expects a 2D array
scaler.transform(new_sample)  # pass this to model.predict()

编辑:

最小-最大归一化的工作原理:

以下转换应用于(Wikipedia Link)的每个特征:

我们会将其应用于X_train

X_train = np.array([[1, 2], [3, 4], [5, 6]])

array([[1, 2],
       [3, 4],
       [5, 6]])

# min, max of each feature
mn = np.min(X_train, axis=0)  # array([1, 2])
mx = np.max(X_train, axis=0)  # array([5, 6])

计算缩放版本:

(X_train - mn) / (mx - mn)

array([[0. , 0. ],
   [0.5, 0.5],
   [1. , 1. ]])

以上匹配结果:

scaler = MinMaxScaler().fit(X_train)
X_train_scaled = scaler.transform(X_train)

array([[0. , 0. ],
       [0.5, 0.5],
       [1. , 1. ]])

当您提供新的输入向量时,应使用上述 mnmx 值应用相同的转换

new_smaple = np.array([7, 8]).reshape(1, -1)
(new_sample - mn) / (mx - mn)

array([[1.5, 1.5]])

这匹配scaler.transform(new_sample)的输出

此外,您可以使用 scaler.data_min_scaler.data_max_ 从拟合的 MinMaxScaler 对象中提取最小值、最大值,这将匹配上述 mnmx

【讨论】:

  • 据我所知:在重塑 np.array(-1,1) 的情况下,我们将单个样本从行形式转换为列形式。然后 scaler 将根据列形式中的信息重新调整样本。我们不会丢失任何信息。您能否帮助了解如何从 x_train 的缩放器功能中进行重新缩放。
猜你喜欢
  • 2017-09-04
  • 2017-10-18
  • 2020-12-07
  • 2015-01-27
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 1970-01-01
相关资源
最近更新 更多