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

本文介绍了对数变换作为特征工程的一种经典方法,用于处理数值大于0且具有重尾分布的数据。通过理解对数函数特性,对长尾分布进行调整,使模型能更好地学习并优化数据。对数变换有助于缩小数据范围、线性化问题并提升模型性能。
摘要由CSDN通过智能技术生成

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

本次将介绍经典的特征工程方法-对数变换

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

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

1,对数函数

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

对数函数的函数图像(x0)

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

2,重尾分布

我们常说很多事物的自然分布近似于正态分布,但事实上还有一种更为广泛的分布,其表现为少量的个体做出大量的贡献(如下图所示),这就是长尾分布。

长尾分布图像

具体代码如下:

对于呈现长尾分布的特征,我们不能简单的去除掉长尾部分的特征值,因为这些长尾的尾部很长,在特征分布中占比其实也并不低,事实上具有很大的信息量,对模型来说很有价值。但如果直接就这么放入模型也不是合适的方法,如上图所示,尖尖的左侧加一个长长的尾巴,那么这意味着有大量的值在<2左右的这个极小的低值端区间内,分布明显有偏向,这就使得以高斯分布为假设的模型难以学习到合理的参数,那么该特征为模型带来的效果就会大打折扣。

问题已经明确,既然这种分布形式并不好,那么我们怎么来缓解它呢?答案就是,使用对数变换。

3,对数变换

根据前面发现的log函数所具有的性质,我们就可以通过log转换使得较小值区间在转换后被扩展到一个变化较大的范围内(x数值较小时,y值变化较快),而长尾的大值区间被压缩到一个变化较小的范围内(随着x值不断变大,y值变化越发平缓),进而整体上减缓长尾分布这种极偏的分布状态,为低值端争取更多的空间,将高值端尽可能的压缩,使得整体分布更加合理。

对数变换后的长尾分布

具体代码如下:

4,结语

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值