2020-09-17
阅读量:
1497
‘Z-Score标准化’学习总结
问:
‘Z-Score标准化’学习总结
答:
使用此方法处理数据,我们最后得到的数据集中的平均值将为0,标准差为1。我们可以通过在numpy中组合不同的函数来实现这一点,例如:
z =(x.values-np.mean(x.values))/ np.std(x.values)
其中 x 是一个带有数值索引的数据框。如果我们想将值保留在数据框中,则只需要删除它前面的.values。
标准化之前的方差
catDf.var(ddof = 0)
在这里,我们将参数ddof设置为0,注意在pandas.DataFrame.var()中ddof默认为1,而在numpy.ndarray.var()中ddof默认为0。参数Ddof 表示Delta的自由度,在方差的计算公式中使用的除数是N-ddof,其中 N 表示样本数。在符合正态分布的变量中设置ddof = 0 可以提供方差的最大似然估计。
您可以在此处阅读有关ddof = 0的 更多信息 。
标准化之后的方差
另外一种比较常用的方法是,调用sklearn.preprocessing 中的StandardScaler 。让我们来看一下代码,对比一下两者的区别。
from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
catDf.iloc[:,[0,2,3,4]] = ss.fit_transform(catDf.iloc[:,[0,2,3,4]])
print(catDf)
这一步,我们对所有数值列(索引值为0,2,3,4的列)调用 StandardScaler 方法,得到标准化后每列的值。
现在我们通过以下代码再来查看下数据集的方差 。
catDf.var(ddof = 0)
我们可以看到所有数值列的方差全都缩放到1。而在实际的数据集中,可能是将方差从数千缩放到1。






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论