对[0,1]范围内的数据帧中的数据进行归一化

问题描述 投票:0回答:1

我正在尝试使用PIMA Indians Diabetes数据集的论文。这是估算缺失值后的数据集:

Preg    Glucose     BP     SkinThickness    Insulin     BMI    Pedigree Age Outcome
0   1   148.0   72.000000   35.00000    155.548223  33.600000   0.627   50  1
1   1   85.0    66.000000   29.00000    155.548223  26.600000   0.351   31  0
2   1   183.0   64.000000   29.15342    155.548223  23.300000   0.672   32  1
3   1   89.0    66.000000   23.00000    94.000000   28.100000   0.167   21  0
4   0   137.0   40.000000   35.00000    168.000000  43.100000   2.288   33  1
5   1   116.0   74.000000   29.15342    155.548223  25.600000   0.201   30  0

说明:

df.describe()
      Preg       Glucose        BP        SkinThickness  Insulin     BMI    Pedigree    Age
count768.000000 768.000000  768.000000  768.000000  768.000000  768.000000  768.000000  768.000000
mean0.855469    121.686763  72.405184   29.153420   155.548223  32.457464   0.471876    33.240885
std 0.351857    30.435949   12.096346   8.790942    85.021108   6.875151    0.331329    11.760232
min 0.000000    44.000000   24.000000   7.000000    14.000000   18.200000   0.078000    21.000000
25% 1.000000    99.750000   64.000000   25.000000   121.500000  27.500000   0.243750    24.000000
50% 1.000000    117.000000  72.202592   29.153420   155.548223  32.400000   0.372500    29.000000
75% 1.000000    140.250000  80.000000   32.000000   155.548223  36.600000   0.626250    41.000000
max 1.000000    199.000000  122.000000  99.000000   846.000000  67.100000   2.420000    81.000000

本文归一化描述如下:

作为我们数据预处理的一部分,通过对数据集进行归一化,原始数据值将按比例缩放,使其落在[0,1]值的特定范围内。这将提高速度并降低运行时复杂性。使用Z分数,我们可以使用以下等式对值集V进行归一化,以获得新的归一化值V'集:V'= V-Y / Z其中V’=新的标准化值,V =先前的值,Y =平均值,Z =标准偏差

 z=scipy.stats.zscore(df)

但是当我尝试运行上面的代码时,我得到的是负值和大于1的值,即不在[0,1]范围内。

python dataframe normalization data-processing
1个回答
0
投票

这是因为您尚未完成该过程:您所做的只是获取Z分数的向量。您必须应用其余的指定计算。

Z分数表示该元素在平均值以上/以下的sdev(标准差)的数量。您仍然必须减去均值并除以sdev以获得规范的[-1,1]归一化。我希望您现在可以更改所需的代数以获得所需的[0,1]区间。

© www.soinside.com 2019 - 2024. All rights reserved.