8.5 数据转换

对于数据挖掘分析建模来说,数据转换(Transformation)是最常用、最重要,也是最有效的一种数据处理技术。经过适当的数据转换后,模型的效果常常可以有明显的提升,也正因为这个原因,数据转换成了很多数据分析师在建模过程中最喜欢使用的一种数据处理手段。另一方面,在绝大多数数据挖掘实践中,由于原始数据,在此主要是指区间型变量(Interval)的分布不光滑(或有噪声)、不对称分布(Skewed Distributions),也使得数据转化成为一种必需的技术手段。

按照采用的转换逻辑和转换目的的不同,数据转换主要可以分为以下四大类:

❑产生衍生变量。

❑改善变量分布特征的转换,这里主要指对不对称分布(Skewed Distributions)所进行的转换。

❑区间型变量的分箱转换。

❑针对区间型变量进行的标准化操作。

8.5.1 生成衍生变量

这类转换的目的很直观,即通过对原始数据进行简单、适当的数学公式推导,产生更加有商业意义的新变量。举个简单的例子,在对原始数据中的用户出生年月日进行处理时,把当前的年月日减去用户出生年月日,得到一个新的字段“用户年龄”,这个新的字段作为一个区间型变量(Interval)明显比原始变量用户出生年月日要更有商业含义,也更加适合进行随后的数据分析建模应用。一般常见的衍生变量如下。

❑用户月均、年均消费金额和消费次数。

❑用户在特定商品类目的消费金额占其全部消费金额的比例。

❑家庭人均年收入。

❑用户在线交易终止的次数占用户在线交易成功次数的比例。

❑用户下单付费的次数占用户下单次数的比例。

从中不难发现,得到这些衍生变量所应用到的数学公式都很简单,但是其商业意义都是很明确的,而且跟具体的分析背景和分析思路密切相关。

衍生变量的产生主要依赖于数据分析师的业务熟悉程度和对项目思路的掌控程度,是数据分析师用思想创造出来的“艺术品”。如果没有明确的项目分析思路和对数据的透彻理解,是无法找到有针对性的衍生变量的。

8.5.2 改善变量分布的转换

在数据挖掘实践中,大多数区间型变量(Interval)原始分布状态偏差都较大,而且是严重不对称的。这种大偏度,严重不对称的分布出现在自变量中常常会干扰模型的拟合,最终会影响模型的效果和效率,如图8-1所示。如果通过各种数学转换,使得自变量的分布呈现(或者近似)正态分布,并形成倒钟形曲线,如图8-2所示,那么模型的拟合常常会有明显的提升,转换后自变量的预测性能也可能得到改善,最终将会显著提高模型的效果和效率。

00070.jpeg

图 8-1 某区间型变量的原始分布图(明显的偏差大,严重不对称)

00071.jpeg

图 8-2 变量经过取对数的转换,呈现倒钟形的正态分布图

常见的改善分布的转换措施如下:

❑取对数(Log)。

❑开平方根(Square Root)。

❑取倒数(Inverse)。

❑开平方(Square)。

❑取指数(Exponential)。

8.5.3 分箱转换

对于区间型变量(Interval),除了进行上面提到的改善分布的转换措施之外,还可以进行另外的转换尝试,即分箱转换。

分箱转换(Binning)就是把区间型变量(Interval)转换成次序型变量(Ordinal),其转换的主要目的如下:

❑降低变量(主要是指自变量)的复杂性,简化数据。比如,有一组用户的年龄,原始数据是区间型的,从20~80岁,每1岁都是1个年龄段;如果通过分箱转换,每10岁构成1个年龄组,就可以有效简化数据。

❑提升自变量的预测能力。如果分箱恰当,是可以有效提升自变量和因变量的相关性的,这样就可以显著提升模型的预测效率和效果;尤其是当自变量与因变量之间有比较明显的非线性关系时,分箱操作更是不错的手段,可用于探索和发现这些相关性;另外,当自变量的偏度很大时,分箱操作也是值得积极尝试的方法。

从上面的分析可以看出,分箱操作的价值与改善分布转换的价值类似,都是努力提升自变量的预测能力,强化自变量与因变量的线性(或非线性)关系,从而可以明显提升预测模型的拟合效果。两者有异曲同工之处,在数据挖掘实践中,经常会对这两种方式分别进行尝试,择其优者而用之。

8.5.4 数据的标准化

数据的标准化(Normalization)转换也是数据挖掘中常见的数据转换措施之一,数据标准化转换的主要目的是将数据按照比例进行缩放,使之落入一个小的区间范围之内,使得不同的变量经过标准化处理后可以有平等分析和比较的基础。

最简单的数据标准化转换是Min-Max标准化,也叫离差标准化,是对原始数据进行线性变换,使得结果在[0,1]区间,其转换公式如下:

00072.jpeg

其中,max为样本数据的最大值,min为样本数据的最小值。

关于数据的标准化转换,将在9.3.2节详细介绍。

总地来说,数据转换的方式多种多样,操作起来简单、灵活、方便,在实践应用中的价值也是比较明显的。但是,它也有缺点,其中主要的缺点在于,在具体的数据挖掘实践中有些非线性转换如Log转换、平方根转换、多次方转换等的含义无法用清晰的商业逻辑和商业含义向用户(业务应用方)解释。比如,你无法解释“把消费者在线消费金额取对数”在商业上是什么意思,这在一定程度上影响了业务应用方对模型的接受程度和理解能力。

当然,瑕不掩瑜,毕竟预测模型的最终目的是预测的准确度和精确度,数据转换在商业解释中的这点小小的遗憾当然无损其在强大的数据处理中的重要价值。