将技术分析进行到底
提供专业的程序化交易解决方案

常用的数据预处理方法汇总

本文整理了对样本数据预处理(标准化/归一化/正则化)的方法。

线性变换包括:小数定标方法、Min-Max方法、Z-score方法和范数方法。

常被用来进行非线性变换的函数包括:Atan函数、Logistic函数、Sigmoid函数、Sin函数和Log函数。


线性变换

根据x现有的样本数据,以及x′的既定范围,例如[0,1],选择合适的a和b,得到线性变换方程:

1

由于线性变换自身不收敛,所以x′的范围依赖于x。

如果,x的样本外数据∉[-a/b,(1-a)/b],则变换后的x′也∉[0,1]。这就是线性变换的潜在不稳定因素。

 

常用的线性变换方法有以下几种:

  • 小数定标标准化

2

其中,n为样本数据的最大值,max,的最大的整数位。

将max的小数点移动到其最右边的整数位前,并且对于其他样本数据进行同倍数缩放。

 

  • Min-Max标准化

3

其中,max/min为样本数据的最大/最小值。变换得到的x′∈[0,1]。

期货交易技术分析指标KDJ就是用这种方法。但是,期货价格是动态变化的,max/min也会变化。如果把max-min比作一把尺子,那么这把尺子的单位刻度就是动态变化,会给我们测量长度带来不小的问题。

 

  • Z-score标准化

4

其中,μ为样本数据的均值,σ为样本数据的标准差。

Z-score变换要求x服从正态分布。变换得到的x′服从标准正态分布。

x′的范围与概率有关,有68.26%的可能性x′∈[-1,1]。

这一点与前两种方法是不同。小数定标和Min-Max变换都不考虑的概率分布,或者说,认为x服从在[min,max]上的均匀分布,变换后,任意x′∈[0,1]。

图片来源:网络

 

  • 范数标准化

5

把样本数据看作一个向量(x¹,x²,x³,…),公式5中的分母就是该向量的p-范数。

经过变换,向量x′的p-范数为1。

1-范数、2-范数和∞-范数是比较常用的。

当n=1时,分母为1-范数:

6

当n=2时,分母为2-范数:

7

当n=∞时,分母为∞-范数:

8

 

 

 

非线性变换

  • Atan函数变换

9

Atan函数自身是收敛的,所以,不必考虑x的取值范围,公式9变换得到的x′∈(-1,1)。

另外,Atan函数是单调递增的,变换不会改变x的单调性。

图片来源:维基百科

  • Logistic函数变换

10

其中,x0是中心,L是最大返回值,k是坡度。

k越大,越近似分段函数。k越小,越近似线性函数。

关于Logistic函数更多的性质可以参考:

http://computing.dcu.ie/~humphrys/Notes/Neural/sigmoid.html

https://en.wikipedia.org/wiki/Sigmoid_function

当k=1, x0=0, L=1时,公式10是标准Logistic函数,变换得到的x′∈(0,1)。

图片来源:维基百科

 

  • Sigmoid函数

Atan函数和Logistic函数都属于Sigmoid函数。类似的S型函数还有很多,下图是不同S型函数的对比:

图片来源:维基百科

关于Sigmoid函数更多介绍可以参考:https://en.wikipedia.org/wiki/Sigmoid_function

 

  • 模糊量化

10

虽然sin函数取值范围是[-1,1],但它不是收敛函数。

由于sin函数的周期性,在实数域上,sin函数也不是单调的。所以,sin函数变换可能改变原数据的单调性质。

但是,在[-π/2+nπ , π/2+nπ]区间内是单调的。

图片来源:维基百科

 

  • Log函数变换

11

Log函数变换虽然不是收敛的,但是能将乘除运算转换为加减。

另外,它是单调递增的凹函数。

图片来源:维基百科

 

 

 

未经允许不得转载:文华程序化 » 常用的数据预处理方法汇总
分享到: (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

横冲直撞 一直到最远方