Python 为什么标准化后新值大于1和-1?

Python 为什么标准化后新值大于1和-1?,python,machine-learning,standardized,Python,Machine Learning,Standardized,我想将数据标准化为零平均值和1标准偏差,但我的最终结果仍然有大于1和-1的值,为什么 E2 = np.array([-2.51212507515, -2.19475817821, -1.46734920106, -1.21180880012, -1.00548224796, -0.659646985536, -0.295605554552, -0.110606689781,-0.0470815913269, 0.200749107619, 0.679857411839, 0.85061458

我想将数据标准化为零平均值和1标准偏差,但我的最终结果仍然有大于1和-1的值,为什么

E2 = np.array([-2.51212507515, -2.19475817821, -1.46734920106,
-1.21180880012, -1.00548224796, -0.659646985536, -0.295605554552, 
-0.110606689781,-0.0470815913269, 0.200749107619, 0.679857411839, 
0.850614581975,1.15145662114, 1.48124693613, 2.09076285542, 
3.04977680958])

Sum_E2 = np.mean(E2)
print(Sum_E2)

sigma_2 = np.std(E2,ddof=1)
print("sigma is: ", sigma_2)
print((E2-Sum_E2)/sigma_2)

#result:
[-1.6512918,  -1.44267744, -0.96453068, -0.79655665, -0.66093229, 
-0.43360487,-0.19431,    -0.07270495 -0.03094808,  0.13195814,  
0.44688976,  0.55913334,0.75688543, 0.97366606,  1.37431834,  2.00470569]

有几种不同的数据规范化方法,用于不同的目的和方法。您在这里选择的(零平均值和单位标准偏差)确实有效,但决不意味着规范化数据将局限于
[-1,1]
;您所取得的确实是您的新数据,即零平均值和单位SD,即您所要求的:

import numpy as np

# your normalized data
x_norm1 = np.array ([-1.6512918,  -1.44267744, -0.96453068, -0.79655665, -0.66093229, 
-0.43360487,-0.19431,    -0.07270495 -0.03094808,  0.13195814,  
0.44688976,  0.55913334,0.75688543, 0.97366606,  1.37431834,  2.00470569])

np.mean(x_norm1)
# 2.9605947323337507e-17

# this mean is practically zero:
np.isclose(np.mean(x_norm1),0)
# True

np.std(x_norm1)
# 1.000149995079366
例如,如果希望规范化数据位于
[0,1]
中,则应使用不同的规范化方法(最小-最大值):


有几种不同的数据规范化方法,用于不同的目的和方法。您在这里选择的(零平均值和单位标准偏差)确实有效,但决不意味着规范化数据将局限于
[-1,1]
;您所取得的确实是您的新数据,即零平均值和单位SD,即您所要求的:

import numpy as np

# your normalized data
x_norm1 = np.array ([-1.6512918,  -1.44267744, -0.96453068, -0.79655665, -0.66093229, 
-0.43360487,-0.19431,    -0.07270495 -0.03094808,  0.13195814,  
0.44688976,  0.55913334,0.75688543, 0.97366606,  1.37431834,  2.00470569])

np.mean(x_norm1)
# 2.9605947323337507e-17

# this mean is practically zero:
np.isclose(np.mean(x_norm1),0)
# True

np.std(x_norm1)
# 1.000149995079366
例如,如果希望规范化数据位于
[0,1]
中,则应使用不同的规范化方法(最小-最大值):


您可能需要继续阅读。好的,对于正态分布,只有约68%的值在+/-1 SD范围内。如果希望所有值都在-1到+1范围内,则需要使用范围(最大-最小值)进行规格化。换句话说,将数据规格化为零平均值和单位SD并不意味着在
[-1,1]
之外没有值……不确定您的意思,或者这与您提出的特定问题有什么关系(并在下面回答)。回答没有帮助?您可能需要仔细阅读。好的,对于正态分布,只有约68%的值在+/-1 SD范围内。如果您希望所有值都在-1到+1范围内,则需要使用该范围(最大-最小)规范化。换句话说,将数据规范化为零平均值和单位SD并不意味着您将没有
[-1,1]
之外的值……不确定您的意思,或者这与您提出的(和下面回答的)特定问题有什么关系。回答没有帮助?