Kaggle知识点:表格数据特征工程范式

发表时间:2024-03-01 17:35




数据特征工程是一个系统化的过程,旨在通过编码数据集来提升模型的预测准确性。这个过程通常涉及多个步骤,每个步骤都旨在优化数据的表达方式,以便模型能够更有效地学习和识别数据中的模式。

为了深入挖掘表格数据的潜力,可以遵循以下步骤进行特征工程:

  1. 特征转换:应用标准化、归一化或对数转换等方法调整数据,以消除数据的非线性特性和异常值的影响。

  2. 特征交互:通过组合现有特征,如特征交叉,生成新的特征,以揭示特征间的相互作用和潜在关系。

  3. 特征映射:利用降维技术,如主成分分析(PCA)或t-SNE,将数据映射到更低维的空间,同时尽量保留原始数据的关键信息。

  4. 特征提取:从数据中提炼出有价值的信息,例如从时间序列数据中识别趋势、周期和季节性特征。

  5. 特征合成:采用生成模型,如生成对抗网络(GANs),创造新的数据样本,以增强数据集的多样性和模型的泛化性能。


特征转换

特征转换是一种处理数据的技术,它通过单一特征作为输入来创建新的特征。这种方法可以应用于不同类型的数据集,无论是横截面数据还是时间序列数据。虽然某些转换技术,如数据平滑和过滤,主要用于时间序列分析,但也有一些转换方法可以广泛应用于包括横截面数据在内的多种数据类型。

缩放

缩放是一种在整个数据集上进行的操作,对于特定的算法来说至关重要。例如,K均值聚类算法依赖于欧几里得距离来衡量数据点之间的距离,因此数据的缩放变得尤为重要。同样,主成分分析(PCA)旨在识别那些具有最高方差的特征,这也要求数据在进行分析之前进行适当的缩放处理。

缩放方法包括:

  • 最小-最大缩放器;

  • 最大绝对值缩放器;

  • 鲁棒缩放器。

标准化

当数据的特征遵循高斯(正态)分布时,模型往往能够更有效地进行学习和预测。特别是对于那些基于高斯分布假设的模型,如线性回归、逻辑回归和线性判别分析,进行数据的标准化处理变得尤为重要。标准化确保了模型能够正确地估计参数,从而提高整体的预测准确性。

标准话方法包括:

  • 标准化方法;

  • 非线性方法。

设置范围

封顶是一种数据预处理技术,它通过为特征值设定一个范围限制,即确定一个最小值和一个最大值,来约束数据的取值范围。这个范围可以基于数据集的统计特性,如平均值、最大值、最小值,或者是根据特定需求选择的特定阈值。通过这种方式,可以防止极端值对模型性能产生不利影响。

数值变换

变换是一种数据转换方法,它涉及将原始特征值替换为其经过某种函数处理后的值。这种转换通常旨在调整数据的分布特性或改变其内在的关系模式。在更广义的层面上,变换通过应用数学函数来实现对数据分布形态的重塑,从而为后续的分析或建模提供更有利的数据基础。

  • 特征减去各自的最小值;

  • 计算特征的平方;

  • 计算特征的绝对值加一的自然对数;

  • 计算特征加一的倒数;

  • 计算特征的绝对值加一的平方根。

时序差分

差分是一种处理时间序列数据的技术,它通过计算连续数据点之间的差值来实现。这种方法常用于使非平稳时间序列达到平稳状态,因为平稳时间序列的统计特性(如均值和方差)在时间上是恒定的,这使得建立模型和进行预测变得更加直接和有效。通过差分,可以减少数据中的随机波动,揭示出潜在的趋势和周期性模式。

时序平滑

时序平滑技术的核心目标是减少时间序列数据中的随机波动和噪声,以便更清晰地观察和理解数据的内在模式。这可以通过应用如简单移动平均、加权移动平均或指数平滑等方法来实现。

时序分解

时序分解则是一种将复杂时间序列拆解为基本构成元素的分析手段,通常包括趋势、季节性因素以及随机误差项。这种分解有助于揭示数据的长期走势、周期性变化以及不规则波动,从而为进一步的数据分析和预测提供坚实的基础。


  1. 趋势:反映了数据随时间推移而展现的长期走势,可能是持续增长或减少的路径。

  2. 季节性:描绘了数据在固定时间周期内如年度、季度或月度的规律性波动。

  3. 残差:代表了除去趋势和季节性因素后,数据中剩余的不规则变化或未能被模型解释的部分。

滚动计算(Rolling)

滚动计算是一种数据处理方法,它涉及到在一系列连续的数据点上应用一个固定大小的窗口,并在这个窗口内进行统计分析。这种方法通常包括以下步骤:

  1. 确定窗口的大小,这决定了每次计算所包含的数据点数量。

  2. 逐个遍历数据集,对每个窗口大小的数据进行迭代。

  3. 在每个窗口内,执行所需的统计操作,例如计算平均值、方差等。

  4. 对于每个窗口的计算结果,创建新的列名以区分不同的窗口大小。

  5. 最后,将原始数据集与所有滚动计算的结果合并,形成一个扩展后的数据集,其中包含了额外的滚动统计特征。


滞后特征(Lags)

是一种时间序列分析技术,它涉及将数据点按照时间顺序向后移动一定数量的周期,以创建新的数据特征。这些新特征代表了原始数据在不同时间滞后下的状态。具体步骤如下:

  1. 设定滞后的范围,即确定要创建滞后特征的时间间隔(从start到end)。

  2. 对于每个选定的滞后值,对数据集中的每一列应用移位(shift)操作。

  3. 通过移位,将每个数据点的值向后推移相应的滞后期数,从而生成滞后特征。

  4. 这些滞后特征可以用于分析数据的动态特性,如趋势、季节性或周期性模式。


特征交互

特征交互涉及结合两个或更多特征,以生成新的特征,这些新特征揭示了原始特征间可能存在的相互作用。例如,通过将两个特征的值相乘,可以构建一个新的特征,从而体现它们之间的联合效应。

数值计算

特征交互通常通过基本的数学运算来实现,这些运算包括乘法、除法、加法和减法。

  1. 对于具有相同量纲的特征,可以执行加法、减法和除法运算。

  2. 对于量纲不一致的特征,乘法和除法是常用的交互方法。

分组聚合

分组聚合是一种数据处理策略,它依据特定的属性对数据集进行分群,随后在每个分群内执行聚合操作,以创建新的特征集。

决策树编码

决策树编码是一种特征处理技术,它利用决策树对连续属性值进行离散化,通过确定最优的分割点来划分数据区间。

特征映射

特征映射则是一种特征转换技术,旨在通过重新映射特征来实现特定目标,如增强特征的变异性或提高类别间的区分度。这种映射过程通常是无监督的,但也可以结合监督学习的方法进行。

主成分分析(Principal Component Analysis,PCA)

主成分分析(PCA)是一种降维技术,它通过线性变换将原始数据集转换为一组新的正交变量,这些变量被称为主成分。PCA的核心目标是识别出那些能够最大程度地解释数据变异性的新方向。

这些主成分不仅相互独立,而且按照方差大小排序,使得第一个主成分具有最大的方差,随后的主成分方差逐渐降低。通过这种方式,PCA有助于简化数据结构,去除不必要的复杂性,同时保留数据的核心特征。

Canonical Correlation Analysis (CCA)

CCA是一种统计技术,旨在研究两个多变量数据集之间的线性关系。通过这种方法,可以识别出两个数据集之间的相关性模式,使得在转换后的特征空间内,这两个数据集的相关性达到最大值。

CCA的核心在于寻找一组线性变换,这些变换能够使得一个数据集的特征与另一个数据集的特征之间的相关性最大化。这种方法有助于揭示不同数据集之间的内在联系,常用于心理学、生物统计学和其他多变量数据分析领域。

Autoencoder(自编码器)

自编码器是一种特殊类型的神经网络,它通过无监督学习来发现数据的压缩表示。这种网络通过训练过程学习如何从输入数据中提取关键信息,并将其编码为一个更简洁的形式,同时尽可能地保留原始数据的重要特征,常用于数据去噪和降维。


流形学习(Manifold Learning)

流形学习是一种处理复杂数据结构的技术,它特别适用于处理那些在高维空间中呈现非线性分布的数据。流形学习方法能够保持数据的局部特性,同时揭示数据的全局结构,使得降维后的数据能够更好地反映原始数据的本质。


特征凝聚(Feature Agglomeration)

特征凝聚是一种数据预处理技术,它通过合并高度相关的特征来简化数据集。这种方法有助于减少特征的数量,同时保留数据中的关键信息,从而提高后续分析或建模的效率。


邻近点(Nearest Neighbor)

邻近点方法是一种基于邻近性的机器学习策略,它通过计算新样本与训练集中样本之间的距离来执行分类或回归任务。这种方法依赖于距离度量来确定最相似的样本,然后利用这些相似样本的信息来预测新样本的标签或值。


特征提取

特征提取是从原始数据中识别和选择有用信息的过程。在时间序列分析中,这一步骤涉及识别能够代表数据动态特性的模式、趋势或关键属性,以便为后续的建模和分析提供有价值的输入。


  1. 绝对能量:衡量时间序列数据的总体能量。

  2. CID特征:用于计算时间序列的复杂度。

  3. 平均绝对变化:时间序列数据的平均绝对变化量。

  4. 平均二阶中心导数:时间序列的平均二阶导数。

  5. 方差大于标准差的值:检查时间序列数据中方差是否大于标准差。

  6. 方差指数:衡量时间序列数据中的方差指数。

  7. 对称性检查:检查时间序列数据的对称性。

  8. 是否存在重复的最大值:检查时间序列数据中是否存在重复的最大值。

  9. 局部自相关:计算时间序列数据的局部自相关性。

  10. 增广迪基-富勒检验:用于检验时间序列数据的平稳性。

  11. 斜度峰度:衡量时间序列数据的斜度和峰度。

  12. 斯泰特森均值:计算时间序列数据的斯泰特森均值。

  13. 长度:时间序列数据的长度。

  14. 高于平均值的计数:统计时间序列数据中高于平均值的数量。

  15. 低于平均值的最长连续段:计算时间序列数据中低于平均值的最长连续段。

  16. Wozniak特征:一种特征提取方法。

  17. 最大值的最后位置:时间序列数据中最大值的最后出现位置。

  18. 傅立叶变换系数:对时间序列数据进行傅立叶变换,获取其频谱特征。



分享到: