尝试将输入数据标准化为平均值为0且在python中的范围为-0.5和0.5
def normalise(image):
return 0.1 + (((image_data-0)*(0.9-0.1))/(255 - 0))
尝试使用min-max缩放,但是错误的答案我接近0.1的min和max
答案 0 :(得分:2)
您想要做的是“规范化”的特殊情况。 规范化会将您的数据fram -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]]
答案 1 :(得分:1)
你想要缩放。这是一个例子:
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 ]
答案 2 :(得分:1)
谢天谢地,你的答案都是正确的并引导我到了正确的地方,但我不得不处理第一栏,所以这对我来说效果最好
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(),所以它变为零