Fri*_*ten 7 python numpy pandas scikit-learn
我有以下代码
import pandas as pd
from sklearn.preprocessing import StandardScaler
import numpy as np
df.columns=['sepal_len', 'sepal_wid', 'petal_len', 'petal_wid', 'class']
df.dropna(how="all", inplace=True) # drops the empty line at file-end
X = df.ix[:,0:4].values
y = df.ix[:,4].values
Run Code Online (Sandbox Code Playgroud)
接下来我缩放数据并得到平均值:
X_std = StandardScaler().fit_transform(X)
mean_vec = np.mean(X_std, axis=0)
Run Code Online (Sandbox Code Playgroud)
我没有得到的是我的输出是这样的:
[ -4.73695157e-16 -6.63173220e-16 3.31586610e-16 -2.84217094e-16]
Run Code Online (Sandbox Code Playgroud)
我确实理解这些值如何可以是除了0以外的任何值.如果我缩放它,它应该是0对吗?
任何人都可以向我解释这里发生了什么?
在实践中,这些值非常接近于0,您可以将它们视为0.
缩放器尝试将均值设置为零,但由于数值表示的限制,它只能得到非常接近0的均值.
检查这个关于浮点算术精度的问题.
同样有趣的是Machine Epsilon的概念,而浮动64 的概念类似于2.22e-16