如similar question中所述,一组样本可以轻松测试数据。如果用户必须预测单个样本的目标,则如何进行。请帮忙。
谢谢。
# 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 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. ]])
当提供新的输入向量时,应使用上面的mn
和mx
值应用相同的变换
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_
的mn
和mx
从适合的MinMaxScaler对象中提取最小值,最大值。