Python中的数据集规范化

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

我正在处理具有这样的条目的数据集

dataset=np.array([[2104,    3],[1600,   3],
                  [2400,    3],[1416,   2],
                  [3000,    4],[1985,   4],
                  [1534,    3],[1427,   3],
                  [1380,    3],[1494,   3],
                  [1940,    4],[2000,   3],
                  [1890,    3],[4478,   5],
                  [1268,    3]])

很明显,所有条目均为int32]类型,我还需要以相同比例缩放要素。所以当我尝试使用统计的标准归一化(z)对其进行归一化时这是>

z=(x-mean)/sigma

数据集中的所有值都变为零。我正在使用向量化方法。这是代码。

me=[]
sd=[]
for i in range(dataset.shape[1]):
    m=np.mean(dataset[:,i])
    sdd=np.std(dataset[:,i])
    dataset[:,i]=(dataset[:,i]-m)
    dataset[:,i]=dataset[:,i]/sdd
    me.append(m)
    sd.append(sdd)

after executing code

这是执行上面的代码片段时得到的。

我正在处理一个数据集,该数据集具有这样的数据集= np.array([[2104,3],[1600,3],[2400,3],[1416,2],[3000,4], [1985,4],...

python numpy normalization
2个回答
1
投票

无需循环。您可以使用沿第一个轴获取的numpy的stdmean

(dataset-dataset.mean(0))/dataset.std(0)

array([[ 0.13736137, -0.39223227],
       [-0.49430039, -0.39223227],
       [ 0.50833732, -0.39223227],
       [-0.72490707, -1.86310328],
       [ 1.2603156 ,  1.07863874],
       [-0.01178099,  1.07863874],
       [-0.577018  , -0.39223227],
       [-0.7111208 , -0.39223227],
       [-0.77002576, -0.39223227],
       [-0.62714989, -0.39223227],
       [-0.06817936,  1.07863874],
       [ 0.00701846, -0.39223227],
       [-0.13084422, -0.39223227],
       [ 3.11268878,  2.54950976],
       [-0.91039504, -0.39223227]])

0
投票

我可以通过肉眼看到,您过度使用了from sklearn.preprocessing import StandardScaler scaler = StandardScaler() scaler.fit_transform(dataset) array([[ 0.13736137, -0.39223227], [-0.49430039, -0.39223227], [ 0.50833732, -0.39223227], [-0.72490707, -1.86310328], [ 1.2603156 , 1.07863874], [-0.01178099, 1.07863874], [-0.577018 , -0.39223227], [-0.7111208 , -0.39223227], [-0.77002576, -0.39223227], [-0.62714989, -0.39223227], [-0.06817936, 1.07863874], [ 0.00701846, -0.39223227], [-0.13084422, -0.39223227], [ 3.11268878, 2.54950976], [-0.91039504, -0.39223227]]) 值太多次。这是反模式。好吧,如果您进行一些重构以使脚本更具可读性怎么办?

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