表格数据如何做数据预处理
处理缺失值
数据处理
数值无量纲化
定义:在机器学习算法实践中,我们往往有着将不同规格的数据转换到统一规格(例如:将数据归一化),或不同分布的数据转换到某个特定分布的需求(例如:深度学习中的Batch_Norm、Layer_Norm等),这种需求统称为数据无量纲化。
优点:在梯度和矩阵为核心的算法中,例如逻辑回归(求梯度)、神经网络(求梯度)、支持向量机(矩阵计算),无量纲化会加快求解速度;在距离类模型中,例如K近邻、K-means中,无量纲化可以帮我们提升模型精读,避免某一个取值范围特别大的特征对距离计算产生影响。
中心化数据
-
中心化(减去均值)
x ′ = x − μ x^{\prime} = x - \mu x′=x−μ -
标准化
x ⋆ = x − μ σ x^{\star} = \frac{x-\mu}{\sigma} x⋆=σx−μ
一般在数据处理中,会用标准化,将数据均值和方差变成0,1,但是不一定就是正态分布。如下图:
- MinMax归一化(MinMax归一化容易受异常值的影响)
x ⋆ = x − m i n ( x ) m a x ( x ) − m i n ( x ) x^{\star} = \frac{x-min(x)}{max(x)-min(x)} x⋆=max(x)−min(x)x−min(x)
非中心化数据
由于中心化稀疏数据会破坏数据的稀疏结构,因此可以采用缩放稀疏输入是有意义的,尤其是在几个特征在不同的量级范围内时。
MaxAbsScaler
通过除以绝对值的最大值,将数据映射到[-1,1]的范围;
面对有离群值的稀疏数据,可以采用RobustScaler
,此缩放器删除了中位数并根据分位数范围(默认为IQR:intquartile范围)进行比较数据。
放器删除了中位数并根据分位数范围(默认为IQR:intquartile范围)进行比较数据。