特征工程:常用的特征转换方法总结
机器学习模型的生命周期可以分为以下步骤:
- 数据采集
- 数据预处理
- 特征工程
- 特征选择
- 建筑模型
- 超参数调整
- 模型部署
要构建模型就必须要对数据进行预处理。特征转换是这个过程中最重要的任务之一。在数据集中,大多数时候都会有不同大小的数据。为了使更好的预测,必须将不同的特征缩小到相同的幅度范围或某些特定的数据分布。
什么时候需要特征转换
在 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= 第三四分位数 - 第一个四分位数
完整文章
https://www.overfit.cn/post/0883fd2071ca4a9cb2b6ea32d2cdbc69