sklearn standardscaler结果与手动结果不同

sklearn standardscaler结果与手动结果不同,第1张

sklearn standardscaler结果与手动结果不同

scikit-
learn使用np.std,默认情况下是人口标准差(其中平方差的总和除以观察数),而pandas使用样本标准差(其中分母是观察数-1)(请参阅维基百科的标准差文章)。这是对总体标准偏差进行无偏估计并由自由度(

ddof
)确定的校正因子。因此,默认情况下,numpy和scikit-
learn的计算使用,
ddof=0
而pandas使用
ddof=1
(docs)。

Dataframe.std(axis = None,skipna = None,level = None,ddof = 1,numeric_only =
None,** kwargs)

返回要求轴上的样品标准偏差。

默认情况下由N-1标准化。可以使用ddof参数更改

如果您将熊猫版本更改为:

df_standardized_manual = (df - df.mean()) / df.std(ddof=0)

差异实际上为零:

        Alcohol    Malic acidAsh  Alcalinity of ash     Magnesium0 -8.215650e-15 -5.551115e-16  3.191891e-15       0.000000e+00  2.220446e-161 -8.715251e-15 -4.996004e-16  3.441691e-15       0.000000e+00  0.000000e+002 -8.715251e-15 -3.955170e-16  2.886580e-15      -5.551115e-17  1.387779e-173 -8.437695e-15 -4.440892e-16  3.164136e-15      -1.110223e-16  1.110223e-164 -8.659740e-15 -3.330669e-16  2.886580e-15       5.551115e-17  2.220446e-16


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5631529.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存