R.scale()与sklearn.preprocessing.scale()之间的差异

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

我目前正在将数据分析从R移到Python。在R中缩放数据集时,我将使用R.scale(),据我所知它将执行以下操作:(x-mean(x))/ sd(x)

要替换该功能,我尝试使用sklearn.preprocessing.scale()。从我对描述的理解来看,它做同样的事情。尽管如此,我还是运行了一个测试文件,发现这两种方法都有不同的返回值。显然,标准偏差是不一样的...有人能够解释为什么标准偏差彼此“偏离”吗?

MWE:

# import packages
from sklearn import preprocessing
import numpy
import rpy2.robjects.numpy2ri
from rpy2.robjects.packages import importr
rpy2.robjects.numpy2ri.activate()
# Set up R namespaces
R = rpy2.robjects.r


np1 = numpy.array([[1.0,2.0],[3.0,1.0]])
print "Numpy-array:"
print np1

print "Scaled numpy array through R.scale()"
print R.scale(np1)
print "-------"
print "Scaled numpy array through preprocessing.scale()"
print preprocessing.scale(np1, axis = 0, with_mean = True, with_std = True)
scaler = preprocessing.StandardScaler()
scaler.fit(np1)
print "Mean of preprocessing.scale():"
print scaler.mean_
print "Std of preprocessing.scale():"
print scaler.std_

输出:“由MWE生成的输出”“ >>

我目前正在将数据分析从R移到Python。在R中缩放数据集时,我将使用R.scale(),据我所知,它将执行以下操作:(x-mean(x))/ sd(x)要替换该...

python r scale scikit-learn
2个回答
4
投票
似乎与标准差的计算方式有关。

0
投票
R.scale文档说:
© www.soinside.com 2019 - 2024. All rights reserved.