连续变量的转换:ECDF、Box-Cox、Yeo-Johnson

前言

构造连续变量的衍生变量。在机器学习问题中,我们希望数据是服从正态分布的(或者一些常见的简单的分布)。然而,现实数据常常不服从正态分布。我们尝试进行转换,使之服从(至少更接近)正态分布。值得注意的是对于 X X X和 y y y的转换是不一样的。

基于ECDF的转换

ECDF的英文是Empirical cumulative distribution function。CDF就是统计中常说的累计分布,即 P ( X ≤ x ) = F ( x ) P(X \le x) = F(x) P(X≤x)=F(x)。我们假设这个函数是可逆的。同时,我们知道如果有变量 u ∼ U [ 0 , 1 ] u \sim U[0,1] u∼U[0,1],那么
P ( F − 1 ( u ) ≤ x ) = F ( x ) P ( U ≤ F ( x ) ) = F ( x ) P(F^{-1}(u) \le x) = F(x) \\\\ P(U \le F(x)) = F(x) P(F−1(u)≤x)=F(x)P(U≤F(x))=F(x)
我们希望对于任意分布 X ∼ F ( X ) X \sim F(X) X∼F(X),我们都可以将其转换成为另一个分布 G ( X ) G(X) G(X)。所以我们需要从 X X X中得到一个均匀分布。下面数学公式的构造了一个均匀分布。
P ( G − 1 ( F ( X ) ) ≤ x ) = G ( x ) P(G^{-1}(F(X)) \le x) = G(x) \\\\ P(G−1(F(X))≤x)=G(x)
上面概率公式中间的数学推导如下。
P ( F ( X ) ≤ x ) = P ( X ≤ F − 1 ( x ) ) = F ( F − 1 ( x ) ) = x P(F(X) \le x) = P(X \le F^{-1}(x)) \\\\ = F(F^{-1}(x)) \\\\ = x P(F(X)≤x)=P(X≤F−1(x))=F(F−1(x))=x
但是存在一个问题,如果 F ( X ) F(X) F(X)不是单调递增的,比如在某些 x x x值上函数值保持不变,那么严格来说不存在逆函数。我们需要替换成广义的逆,即最小 X X X使得 y = F ( X ) y = F(X) y=F(X)成立的值。

另外一个问题是,我们如何知道 X X X原来的分布呢?我们只能使用分位数进行估计。

幂变换

在机器学习问题中,我们也会遇到 y y y值不服从正态分布的情况,最常见的就是长尾数据。在统计中,幂变换是一族函数,可用于使用幂函数创建数据的单调变换。这是一种用于稳定方差,使数据更像正态分布的数据转换技术。可以提高关联度量(如变量之间的Pearson相关性)的有效性以及用于其他数据稳定程序。

Box-Cox变换

英文是Box-Cox Transformation。要求 y > 0 y > 0 y>0。这里只介绍单变量Box-Cox变换。

当 λ ≠ 0 \lambda \ne 0 λ​=0时有 y = ( y λ − 1 ) / λ y = (y^{\lambda}-1)/\lambda y=(yλ−1)/λ;当 λ = 0 \lambda = 0 λ=0时 y = l n ( y ) y = ln(y) y=ln(y)。

Yeo-Johnson变换

英文是Yeo-Johnson Transformation。
y = ( y λ − 1 ) / λ ; i f   λ ≠ 0 , y > 0 y = l n ( y + 1 ) ; i f   λ ≠ 0 , y > 0 y = − [ ( − y + 1 ) − 2 λ − 1 ] / ( 2 − λ ) ; i f   λ ≠ 2 , y < 0 y = − l n ( − y + 1 ) ; i f   λ ≠ 2 , y < 0 y = (y^{\lambda}-1)/\lambda; \quad if \ \lambda \ne 0, y > 0 \\\\ y = ln(y+1); \quad if \ \lambda \ne 0, y > 0 \\\\ y = -[(-y+1)^{-2\lambda}-1]/(2-\lambda); \quad if \ \lambda \ne 2, y < 0 \\\\ y = -ln(-y+1); \quad if \ \lambda \ne 2, y < 0 \\\\ y=(yλ−1)/λ;if λ​=0,y>0y=ln(y+1);if λ​=0,y>0y=−[(−y+1)−2λ−1]/(2−λ);if λ​=2,y<0y=−ln(−y+1);if λ​=2,y<0

Reference

  • NLP实战高手课,第三章,王然,极客时间
  • Power transform,wikipedia
上一篇:codeforces1453 E. Dog Snacks


下一篇:最新版13.0 eNSP模拟器下载 2020-12-02