规范化训练数据,使其均值为 0,范围在 -0.5 和 0.5 之间

normalizing training data so that it has a mean of 0 and a range between -0.5 and 0.5

尝试将包含图像矩阵的输入数据归一化为均值为 0 且范围为 -0.5 和 0.5 的 python

def normalise(image):
    return 0.1 + (((image_data-0)*(0.9-0.1))/(255 - 0))

试图使用最小-最大缩放比例,但答案错误,我的最小值和最大值接近 0.1

你要做的是"normalization"的特例。 归一化会将您的数据帧从 -1 缩放到 1。然后您可以将所有项目除以 2。 您想要将变量从 -0.5 缩放到 0.5。 那么你可以做的是:

from sklearn.preprocessing import normalize
c = normalize(yourData)/2

例如,normalize([1,2,3,5, -5, 0,6])/2 将给出:

[[ 0.3   0.   -0.25  0.25  0.15  0.1   0.05]]

您想要缩放。这是示例:

from sklearn import preprocessing
import numpy as np

data = np.array([70, -5, 5, 3, 2, 1])
scale = preprocessing.minmax_scale(data, feature_range=(-0.5, 0.5))
print scale

输出:

[ 0.5        -0.5        -0.36666667 -0.39333333 -0.40666667 -0.42      ]

谢谢,您的两个答案都是正确的,并引导我到正确的地方,但我必须处理第一列,所以这对我来说是最好的

def normalize(X):
max=0.5
min=-0.5
X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_scaled = X_std * (max - min) + min
return X_scaled

虽然平均值不完全是但是断言代码round()它,所以它变成零