首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么sklearn的归一化数据的方差不是等于1?

为什么sklearn的归一化数据的方差不是等于1?
EN

Stack Overflow用户
提问于 2020-10-27 17:03:56
回答 1查看 101关注 0票数 2

我使用包preprocessing sklearn对数据进行规范化,如下所示:

代码语言:javascript
复制
import pandas as pd
import urllib3
from sklearn import preprocessing

decathlon = pd.read_csv("https://raw.githubusercontent.com/leanhdung1994/Deep-Learning/main/decathlon.txt", sep='\t')
decathlon.describe()

nor_df = decathlon.copy()
nor_df.iloc[:, 0:10] = preprocessing.scale(decathlon.iloc[:, 0:10])
nor_df.describe()

结果是

平均值是-1.516402e-16,它几乎为0。相反,方差是1.012423e+00,也就是1.012423。对我来说,1.012423不被认为接近1。

请你详细说明一下这个现象好吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-28 00:56:14

在本例中,sklearnpandas计算std的方式不同。

sklearn.preprocessing.scale

我们对标准差使用了一个有偏估计量,等价于numpy.std(x, ddof=0)。注意,ddof的选择不太可能影响模型性能。

pandas.Dataframe.describe使用pandas.core.series.Series.std,其中:

默认情况下,

被N-1规范化.这可以使用ddof参数进行更改。

..。

差分: int,默认1达美自由度。计算中使用的除数是number,其中N表示元素的数目。

应该注意的是,在2020-10-28中,pandas.Dataframe.describe没有ddof参数,因此ddof=1的缺省值总是用于Series

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64559412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档