矩阵的归一化

时间:2018-01-25 16:37:02

标签: python pandas matrix scikit-learn normalization

我有一个150x4矩阵X,我是使用以下代码从pandas数据框创建的:

X = df_new.as_matrix()

我必须使用此函数对其进行规范化:

this

我知道Ujj的平均值,而σ jj的标准差,但我不明白{{1}是的。我在理解j上的条形图时遇到了一些麻烦,我对等式中的逗号感到困惑(我不知道它们是否有任何意义)。

任何人都可以帮助我理解这个等式的含义,然后我可以使用sklearn编写规范化吗?

3 个答案:

答案 0 :(得分:1)

矩阵X的索引是行(i)和列(j)。因此,X,j表示矩阵j的列X。即将矩阵X的每列标准化为z-scores

你可以使用熊猫来做到这一点:

df_new_zscores = (df_new - df_new.mean()) / df_new.std()

答案 1 :(得分:1)

您实际上并不需要自己为规范化编写代码 - 它已准备好sklearn.preprocessing.scale

以下是from the docs示例:

>>> from sklearn import preprocessing
>>> import numpy as np
>>> X_train = np.array([[ 1., -1.,  2.],
...                     [ 2.,  0.,  0.],
...                     [ 0.,  1., -1.]])
>>> X_scaled = preprocessing.scale(X_train)

>>> X_scaled                                          
array([[ 0.  ..., -1.22...,  1.33...],
       [ 1.22...,  0.  ..., -0.26...],
       [-1.22...,  1.22..., -1.06...]])

当与默认设置axis=0一起使用时,正规化按列进行(即对于每个列j,如在您的等式中)。因此,很容易确认缩放数据的均值和单位方差为零:

>>> X_scaled.mean(axis=0)
array([ 0.,  0.,  0.])

>>> X_scaled.std(axis=0)
array([ 1.,  1.,  1.])

答案 2 :(得分:1)

我不知道大熊猫,但我认为这个等式意味着归一化矩阵由下式给出 enter image description here 你减去经验均值并除以每列的经验标准偏差。

您有时将其用于主成分分析。