关于人工智能:特征工程常用的特征转换方法总结

6次阅读

共计 2070 个字符,预计需要花费 6 分钟才能阅读完成。

机器学习模型的生命周期能够分为以下步骤:

  • 数据采集
  • 数据预处理
  • 特色工程
  • 特征选择
  • 修建模型
  • 超参数调整
  • 模型部署

要构建模型就必须要对数据进行预处理。特色转换是这个过程中最重要的工作之一。在数据集中,大多数时候都会有不同大小的数据。为了使更好的预测,必须将不同的特色放大到雷同的幅度范畴或某些特定的数据分布。

什么时候须要特色转换

在 K-Nearest-Neighbors、SVM 和 K-means 等基于间隔的算法中,它们会给具备较大值的特色更多的权重,因为间隔是用数据点的值计算的。如果咱们提供算法未缩放的特色,预测将受到重大影响。在线性模型和基于梯度降落优化的算法中,特色缩放变得至关重要,因为如果咱们输出不同大小的数据,将很难收敛到全局最小值。应用雷同范畴的值,算法学习的累赘就会加重。

什么时候不须要特色转换

大多数基于树型模型的集成办法不须要特色缩放,因为即便咱们进行特色转换,对于熵的计算也不会产生太大变动。所以在这样的算法中,除非特地须要,个别状况下不须要缩放。

特色转换的办法

特色转换的办法有很多种,本文中将总结一些有用和风行的办法。

  • Standardization
  • Min — Max Scaling/ Normalization
  • Robust Scaler
  • Logarithmic Transformation
  • Reciprocal Transformation
  • Square Root Translation
  • Box Cox Transformation

Standardization 标准化

当输出数据集的特色在范畴之间有很大差别或以不同的测量单位(如高度、分量、米、英里等)进行测量时,应应用标准化。咱们将所有变量或特色带到类似的规模。其中均值为 0,标准差为 1。

在标准化中,咱们用平均值减去特征值,而后除以标准差,失去齐全规范的正态分布。

Min — Max Scaling / Normalization

简略来说,最小最大缩放将特征值放大到 0 到 1 的范畴。或者咱们也能够指定缩放的范畴。

对于 Normalization(归一化):会将特征值减去其最小值,而后除以特色范畴(特色范畴 = 特色最大值 - 特色最小值)。

Robust Scaler

如果数据集有太多异样值,则标准化和归一化都很难解决,在这种状况下,能够应用 Robust Scaler 进行特色缩放。

从名字就能够看出 Robust Scaler 对异样值很强壮😂。它应用中位数和四分位数范畴来缩放值,因而它不会受到十分大或十分小的特征值的影响。Robust Scaler 用其中值减去特征值,而后除以它的 IQR。

  • 第 25 个百分位数 = 第 1 个四分位数
  • 第 50 个百分位数 = 第 2 个四分位数(也称为中位数)
  • 第 75 个百分位数 = 第 3 个四分位数
  • 第 100 个百分位数 = 第 4 个四分位数(也称为最大值)
  • IQR= 四分位间距
  • IQR= 第三四分位数 – 第一个四分位数

高斯转换

一些机器学习算法(如线性回归和逻辑回归)都假如咱们提供给它们的数据是正态分布的。所以如果数据是正态分布的,则此类算法往往性能更好并提供更高的准确性,标准化偏态散布在这里变得很重要。

然而大多数时候数据会呈现偏差,须要应用算法将其转换为高斯分布,并且在确定一种办法之前须要尝试几种办法,因为不同的数据集往往有不同的要求,咱们无奈适应一种办法 所有的数据。

在本文中咱们将仅应用来自泰坦尼克数据集来进行演示,上面绘制年龄直方图和 QQ 图。

下图是特色缩放之前的年龄特征

1、对数转换 Logarithmic Transformation

在对数转换中,咱们将应用 NumPy 将 log 利用于所有特征值,并将其存储在新特色中。

从图中能够看到应用对数转换仿佛不太适宜这个数据集,它甚至会使数据偏斜,从而好转散布。所以必须依附其余办法来实现正态分布。

2、倒数转换 Reciprocal Transformation

在倒数转换中,咱们将特色的每个值除以 1(倒数)并将其存储在新特色中。

很显著倒数转换也不适用于这些数据,它没有给出正态分布,而是使数据更加偏斜。

3、平方根转换 Square Root Translation

在平方根转换中,咱们将特色计算平方根。应用 NumPy 能够不便的进行这种转换。

看样子仿佛比倒数和对数转换更好的适应这个数据,但它是有点左歪斜。

4、Box Cox

Box Cox 转换是将数据分布转换为正态分布的最无效的转换技术之一。

Box-Cox 转换能够定义为:

T(Y)=(Y exp(λ)−1)/λ

其中 Y 是响应变量,λ 是转换参数。λ 从 -5 变动到 5。在转换中,思考所有 λ 值并抉择给定变量的最佳值。

咱们能够应用 SciPy 模块中的 stat 来计算 box cox 转换。

到目前为止,box cox 仿佛是最适宜年龄特征转换的办法。

总结

还有其余技术能够执行以取得高斯分布,但大多数时候以上的办法中的一种基本上就能满足数据集的要求。另外要阐明的一点是,这些转换不仅仅实用于特色,对于回归来说咱们还能够将其利用到指标中来取得更好的体现。

https://www.overfit.cn/post/0883fd2071ca4a9cb2b6ea32d2cdbc69

作者:Parth Gohil

正文完
 0