1

在 Keras 训练我的模型之后,是时候进行预测了,所以我正在使用一些数据来检查我的模型。但是,经过训练的模型在训练之前是标准化的(值的范围非常不同)。

所以为了预测一些数据,我也应该标准化它:

packet = numpy.array([[3232235781, 3232235779, 6, 128, 2, 1, 0, 524288, 56783, 502, 0, 0x00000010, 0, 0, 61, 0, 0, 0]])
scaler = StandardScaler().fit(packet)
rescaled_packet = scaler.transform(packet)
print(rescaled_packet) 

输出始终为 0:[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]

有谁知道如何标准化 numpy 数组?

请注意,出现警告错误,DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler. warnings.warn(msg, _DataConversionWarning)但我不认为这是问题所在。

4

2 回答 2

1

这实际上是因为您的数据集中只有一个示例。当您fit使用一个示例调用表时 - 计算每列的平均值 - 但如果每列中只有一个数字 - 这mean等于第一(也是唯一)行。这就是为什么您要获得0's 向量的原因。

于 2017-05-22T08:18:09.737 回答
0
import numpy as np

a = np.array([10,1,-4,35,26])
a_stand = (a - a.mean()*np.ones(len(a)))/(a.std())

这是你想要的吗?

于 2017-05-22T08:19:40.903 回答