机器学习中的特征工程锦囊:对数变换

625 阅读2分钟

对数变换是一种常用的特征工程方法,一般对于数值大于0的重尾分布数据,我们都可以采取对数变换的方法来转换特征值,从而让特征具有更好的数值属性,进而增强模型的效果。

那么如何理解对数变换?什么情况下对数变换会是一种有效的特征工程方法呢?我们首先来介绍两个概念。

1,对数函数

既然要进行对数变换,那么就需要针对对数函数的性质有深刻的理解。 下图是对数函数在一个较大的定义域范围内所绘制出的函数图像。

1605527553 [2].png

我们可以很明显地看出,当x数值较小时,y值变化较快,而随着x值不断变大,y值变化越发平缓,那么这个图形性质就可以对某一个数值范围进行伸缩。

2, 倾斜分布

我们常说很多事物的自然分布近似于正态分布,但在分析过程中,我们也会见到不少倾斜的分布。 微信图片_20210620003031.png

由于大部分机器学习模型都不能很好的处理非正态分布的数据,如果我们不做一定的处理就进行建模,那么效果一定会有所折损。

3,对数变换

根据前面发现的log函数所具有的性质,我们就可以通过log变换来对分布进行修正,即应用log(x+1),加1的目的是为了防止数据为0,同时保证x是正数。取对数并不会影响数据的性质和相关关系,但是会压缩数据的尺度,使得数据更加平稳。 微信截图_20210620003442.png 以上图的分布为例,log变换使得较小值区间在转换后被扩展到一个变化较大的范围内(x数值较小时,y值变化较快),而长尾的大值区间被压缩到一个变化较小的范围内(随着x值不断变大,y值变化越发平缓),进而整体上减缓各类倾斜分布带有的极偏的分布状态,为低值端争取更多的空间,将高值端尽可能的压缩,使得整体分布更加合理。

4,结语

对数变换是一种十分常用的特征工程方法,当我们遇到类似分布的特征数据时,可以尝试通过这种变换。,此外它还具有以下优点:

  1. 缩小数据的绝对数值范围,让特征不再漂。
  2. 依据对数的运算法则,将乘法变换为加法,符合中心极限法则下收敛到正态分布的假设。
  3. 非线性转换为线性,让问题变得更好建模