当我使用最小最大定标数据训练模型时,如何使用最小最大定标器预测单个数据样本?

问题描述 投票:0回答:1

similar question中所述,一组样本可以轻松测试数据。如果用户必须预测单个样本的目标,则如何进行。请帮忙。

谢谢。

python machine-learning normalization scaling test-data
1个回答
0
投票
# 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)

enter image description here

我们将其应用于X_train

X_train = np.array([[1, 2], [3, 4], [5, 6]]) array([[1, 2], [3, 4], [5, 6]]) # min, max 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_mnmx从适合的MinMaxScaler对象中提取最小值,最大值。
© www.soinside.com 2019 - 2024. All rights reserved.