特征工程

特征工程常用

常用特征处理:

  • 常见时间日期类特征:年/月/时、第几周/周次、是否周末、节假日、时差等
  • 日期类聚合特征:客户最活跃的月份、某类产品上周累计销售、特定客户的周末消费额等
  • 常用统计类特征:最值、均值、唯一值、偏度、峰度、KStat、分位数等

更多时序类衍生特征可参考tsfresh概述

其他特征处理技巧:

  • 多项式特征(preprocessing.PolynomialFeatures
  • 分箱(数值型变量 转 类别型变量,pandas.cut
  • 对数化(修正存在高方差的数值型变量,numpy.log

缺失填充也可以是特征工程的一部分:

  • 简单缺失填充(补零、均值/中位数/众数填充)
  • 算法填充缺失(knn、回归模型预测)

时序特征工程

格拉姆角场

格拉姆角场(Gramian Angular Field, GAF)是结合坐标变换和格拉姆矩阵的相关知识,实现将时间序列变换成图像的一种编码方法。

格拉姆矩阵是两两向量的内积组成,可以保存时间序列的时间依赖性,却不能有效的区分价值信息和高斯噪声。因此,在进行格拉姆矩阵变换之前,时间序列需要进行空间变换

普遍的方法是将笛卡尔坐标系转换成极坐标系(半径、角度)

对于一个时间序列$X=(x_t,t=1,2,...,N)$,可以通过以下步骤得到 GAF 图:

  1. 使用最小-最大定标器(Min-Max scaler),将原始时间序列数据缩放到[-1,1] $$\begin{gathered}\widetilde{x}_{-1}^i=\frac{(x_i-\max(X)+(x_i-\min(X))}{\max(X)-\min(X)} \\ \\\mathrm{or}\quad\widetilde{x}_0^i=\frac{x_i-\min(X)}{\max(X)-\min(X)}\end{gathered}$$
  2. 将第一步的结果进行极坐标系变换,得到每一个数据点对应的半径和角度 $$\left. \left\{\begin{aligned}\phi&=\arccos(\widetilde{x}_i),-1\leq\widetilde{x}_i\leq1,\widetilde{x}_i\in\widetilde{X} \\r&=\frac{t_i}N,t_i\in\mathbb{N}\end{aligned}\right.\right.$$
  3. 利用和角关系和差角关系,得到对应的 GASF 图和 GADF 图 $$\begin{aligned}

&\text{GASF} =[\cos(\phi_i+\phi_j)] =\tilde{X}^{\prime}\cdot\tilde{X}-\sqrt{I-\tilde{X}^2}^{\prime}\cdot\sqrt{I-\tilde{X}^2} \\ &\text{GADF} =[\sin(\phi_i-\phi_j)] =\sqrt{I-\tilde{X}^2}^{\prime}\cdot\tilde{X}-\tilde{X}^{\prime}\cdot\sqrt{I-\tilde{X}^2} \end{aligned}$$

往年同期文章