Python 解释sklearn和x27之间的区别;s scale()乘以标准差,再加上平均值

Python 解释sklearn和x27之间的区别;s scale()乘以标准差,再加上平均值,python,numpy,pandas,scikit-learn,Python,Numpy,Pandas,Scikit Learn,我正在对我要分析的一些数据运行sklearn的PCAfit_transform()函数,我很难弄清楚我到底需要如何将缩放数据转换回在我运行的上下文中有意义的数字。更具体地说,当我跑步时: import pandas as pd import numpy as np from sklearn.preprocessing import scale X_scaled = scale(otr_df) X_scaled2 = otr_df.sub(otr_df.mean()) X_scaled2 =

我正在对我要分析的一些数据运行sklearn的PCA
fit_transform()
函数,我很难弄清楚我到底需要如何将缩放数据转换回在我运行的上下文中有意义的数字。更具体地说,当我跑步时:

import pandas as pd
import numpy as np

from sklearn.preprocessing import scale

X_scaled = scale(otr_df)

X_scaled2 = otr_df.sub(otr_df.mean())
X_scaled2 = X_scaled2.div(otr_df.std())

# Should print all zeroes
print (X_scaled - X_scaled2)/X_scaled

"""
The above prints the following:

Date              Index1         Index2            Index3          Index4
2016-05-11        0.000706       0.000706          0.000706        0.000706 ...
2016-05-10        0.000706       0.000706          0.000706        0.000706 ...
2016-05-09        0.000706       0.000706          0.000706        0.000706 ...
2016-05-06        0.000706       0.000706          0.000706        0.000706 ...
.                 .              .                 .
.                 .              .                 .
.                 .              .                 .
"""

当打印上述代码的底线时,我得到的是每列的常量值0.000706,而不是零(正如我所期望的)。虽然很小,但如果我乘以几千,回到原来的比例(在某些情况下,我是这样的),这看起来并不是一件小事。我的猜测是,它与除以(N-1)有关,而不是除以N或沿着这些线的某个东西。然而,在花了太多时间阅读了sklearn和pandas文档后,我想我会在这里询问是否有人有任何想法。

sklearn在标准偏差计算中使用了零自由度:

import pandas as pd
import numpy as np

from sklearn.preprocessing import scale

np.random.seed([3,1415])
otr_df = pd.DataFrame(np.random.rand(10, 10))
X_scaled = scale(otr_df)

X_scaled2 = otr_df.sub(otr_df.mean())
X_scaled2 = X_scaled2.div(otr_df.std(ddof=0))
#                                    ^
#                  Specify ddof here |

# Should print all zeroes
print (X_scaled - X_scaled2)/X_scaled

     0    1    2    3    4    5    6    7    8    9
0 -0.0 -0.0 -0.0 -0.0  0.0 -0.0  0.0  0.0  0.0  0.0
1  0.0  0.0  0.0  0.0  0.0 -0.0 -0.0 -0.0 -0.0 -0.0
2 -0.0  0.0 -0.0  0.0  0.0  0.0  0.0 -0.0 -0.0 -0.0
3  0.0  0.0  0.0 -0.0  0.0  0.0  0.0 -0.0  0.0  0.0
4  0.0 -0.0  0.0 -0.0 -0.0  0.0  0.0  0.0  0.0  0.0
5 -0.0 -0.0  0.0  0.0 -0.0  0.0  0.0 -0.0  0.0  0.0
6  0.0 -0.0  0.0  0.0 -0.0 -0.0  0.0  0.0  0.0  0.0
7 -0.0 -0.0 -0.0  0.0 -0.0 -0.0 -0.0  0.0  0.0 -0.0
8  0.0  0.0 -0.0 -0.0 -0.0  0.0 -0.0 -0.0  0.0 -0.0
9  0.0  0.0 -0.0 -0.0  0.0 -0.0 -0.0 -0.0 -0.0 -0.0

啊,我知道这和自由度有关。谢谢你的回答。