网上很多关于标准化和归一化的文章,不少是误人子弟的存在。这篇文字希望给大家讲清讲透这两个概念。
一、标准化(standardization)
公式一般为:(X-mean)/std,其中mean是平均值,std是方差。
从公式我们可以看出,标准化操作(standardization)是将数据按其属性(按列)减去平均值,然后再除以方差。这个过程从几何上理解就是,先将坐标轴零轴平移到均值这条线上,然后再进行一个缩放,涉及到的就是平移和缩放两个动作。这样处理以后的结果就是,对于每个属性(每列)来说,所有数据都聚集在0附近,方差为1。计算时对每个属性/每列分别进行。
下面我们通过实操加深印象,并真正理解标准化的实际意义。使用sklearn中的preprocessing中的scale()函数,可以直接将给定数据进行标准化。
首先我们导入需要的库,和需要处理的数据。我们随便导入一支股票,000002万科a。(数据源来自tushare pro版,感谢挖地兔)。
接着,我们选取该股票最后的100个交易日的数据,选取价格和成交量两个特征作为演示。很显然,这两个特征量纲不一样,数值相差很大,需要对他们进行一个数据预处理。先看一下原始数据: