preprocessing.scale() 是做什么的?它是如何工作的?

16

Python 3.5,来自sklearn的预处理

df = quandl.get('WIKI/GOOGL')
X = np.array(df)
X = preprocessing.scale(X)

你看过文档了吗? - Chris Martin
是的,但我不明白它对X的值做了什么? - 0x Tps
1
我认为它沿着给定的轴减去数据集的均值并除以标准差。 - pbreach
这里有另一个链接,可以帮助你。 - Ganesh_
3个回答

20

preprocessing.scale()算法可以将数据放在同一个尺度上,对于大部分稀疏数据集非常有用。简单来说,如果您的数据值差异非常大,那么它就是稀疏的。例如,X的值可能如下所示:

X = [1, 4, 400, 10000, 100000]

稀疏性的问题在于它很偏向或在统计学术语中,它是有偏的。因此,缩放数据会将所有值放在同一个尺度上,消除稀疏性。就其数学细节而言,这遵循归一化和标准化的相同概念。您可以查找这些内容以了解其详细工作原理。但是为了使生活更简单,sklearn算法可以为您完成所有操作!


缩放后,这些数据仍然会有偏差。它只是更接近于零而已。此外,除非有一些基本事实需要表示,否则数字数组不可能存在偏差。 - Richard Rast

1

将数据进行缩放,可以使所有值处于同一比例尺上,消除稀疏性,并遵循归一化和标准化的概念。 要查看效果,您可以在处理之前和之后调用数据框上的describe函数:

df.describe()

#with X is already pre-proccessed 
df2 = pandas.DataFrame(X)
df2.describe()

你会看到df2在每个字段中都具有0平均值和标准差为1

0

preprocessing.scale() 方法有助于数据点的标准化。它会为每个数据点除以标准差并减去平均值。


有点误导人,因为它首先会减去你的点的平均值,然后再除以标准差。或者你可以先除以标准差,计算新的平均值,然后再减去它。 - dimab0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接