矩阵的归一化
Normalization of a matrix
我有一个 150x4 矩阵 X
,它是我使用以下代码从 pandas 数据帧创建的:
X = df_new.as_matrix()
我必须使用此函数对其进行规范化:
我知道Uj
是j
的均值,σ j
是j
的标准差,但我不明白j
是。我在理解 X
上的横线是什么时遇到了一些困难,而且我对等式中的逗号感到困惑(我不知道它们是否有任何意义)。
任何人都可以帮助我理解这个等式的含义,以便我可以使用 sklearn 编写归一化吗?
矩阵 X 的索引是行 (i) 和列 (j)。因此,X,j
表示矩阵 X
的列 j
。 IE。将矩阵 X 的每一列归一化为 z-scores.
您可以使用 pandas:
df_new_zscores = (df_new - df_new.mean()) / df_new.std()
您实际上不需要自己编写规范化代码 - 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.])
我不知道 pandas 但我认为方程意味着归一化矩阵由下式给出
您减去经验平均值并除以每列的经验标准差。
您有时将其用于主成分分析。
我有一个 150x4 矩阵 X
,它是我使用以下代码从 pandas 数据帧创建的:
X = df_new.as_matrix()
我必须使用此函数对其进行规范化:
我知道Uj
是j
的均值,σ j
是j
的标准差,但我不明白j
是。我在理解 X
上的横线是什么时遇到了一些困难,而且我对等式中的逗号感到困惑(我不知道它们是否有任何意义)。
任何人都可以帮助我理解这个等式的含义,以便我可以使用 sklearn 编写归一化吗?
矩阵 X 的索引是行 (i) 和列 (j)。因此,X,j
表示矩阵 X
的列 j
。 IE。将矩阵 X 的每一列归一化为 z-scores.
您可以使用 pandas:
df_new_zscores = (df_new - df_new.mean()) / df_new.std()
您实际上不需要自己编写规范化代码 - 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.])
我不知道 pandas 但我认为方程意味着归一化矩阵由下式给出
您有时将其用于主成分分析。