数据预处理是数据操作过程的重要组成部分,它直接确定所有后续数据工作的质量和价值输出。从数据预处理的主要内容出发,包括数据的清理,转换,缩减,聚合,采样等。由于全部篇幅较长将12个条原则拆分成上、中、下三篇。
本3篇文章不讲技术只介绍业务思路,具体操作代码可以参考我的其他文章或者自行查询。
标准化,使数据落入同一范围
数据标准化是一种常用的数据预处理操作。目的是处理不同比例和维度的数据,以便可以将其缩放到相同的数据间隔和范围,从而减少比例,特征和分布差异对模型的影响。除了用于模型计算之外,标准化数据还具有直接计算和生成复合指标的含义,这是对指标进行加权的必要步骤。
Z-Score用于集中化和正态分布
基于原始数据的均值和标准偏差的标准化。假设原始转换后的数据为x,新数据为x',则x'=(x-mean)/ std,其中mean和std为其中x是列的均值和标准差。
此方法适用于大多数类型的数据,并且是许多工具的默认标准化方法。归一化后的数据为正态分布,平均值为0,方差为1。但是,ZScore方法是一种集中式方法,它将改变原始数据的分布结构,并且不适合处理稀疏数据。
在许多情况下,数据集将具有稀疏特征,其特征是标准偏差小以及许多元素的值为0.最常见的稀疏数据集是用于协作过滤的数据集,大多数数据为0 ,只有一小部分数据是1的稀疏数据的标准化不能集中进行,否则稀疏数据的结构将被破坏。
Max-Min标准化方法是线性转换原始数据。假设原始转换后的数据是x,新数据是x',则x'=(x-min)/(max-min),其中min和max是x是列的最小值和最大值。
这种标准化方法已被广泛使用,并且获得的数据将完全落在区间[0,1](Z分数没有类似的区间)内。该方法可以规范化数据并落入一定间隔内。同时,可以更好地维护原始数据结构。
MaxAbs用于稀疏数据
最大绝对值标准化(MaxAbs)是根据最大值的绝对值进行标准化。假设原始转换后的数据为x,新数据为x',则x'= x / | max |,其中max是该列的最大值,其中x是value。
MaxAbs方法类似于Max-Min用法,数据落入一定间隔,但此方法的数据间隔为[-1,1]。 MaxAbs还具有不破坏原始数据分发结构的特性,因此它也可以用于稀疏数据,稀疏CSR或CSC矩阵。
CSR(压缩稀疏行,行压缩)和CSC(压缩稀疏列,行压缩)是稀疏矩阵的两种存储格式。这两个稀疏矩阵在scipy.sparse包中被广泛使用。除了这两种格式,用于存储稀疏矩阵的格式还包括COO,CSR,DIA,ELL,HYB等。
适用于离群值的RobustScaler
在某些情况下,如果数据集中存在离群值,则可以使用Z-Score进行标准化,但是标准化数据并不理想,因为离群值的特征在标准化之后往往会失去离群值。此时,可以使用RobustScaler标准化离群值。此方法具有更强大的参数控制功能,可实现数据居中和数据缩放的鲁棒性。
离散化,操作数据的逻辑分层
所谓离散化是将无限空间中的有限个体映射到有限空间。数据离散化操作主要在连续数据上执行。处理后,数据值范围分布将从连续属性更改为离散属性。此属性通常包含两个或多个值范围。
离散化的必要性
1. 节省计算资源,提高计算效率。
2. 算法模型(尤其是分类模型)的计算需求。尽管决策树等许多模型可以支持连续数据的输入,但是决策树本身首先会将连续数据转换为离散数据,因此离散化转换是必不可少的步骤。
3. 增强模型的稳定性和准确性。数据离散化后,处于异常状态的数据将不会清楚地突出显示异常特征,但是会被分成子集的一部分。
时间数据离散化
离散时间。通常,时间戳会转换为秒,分钟,小时或早晨和下午。通常,日期会转换为星期数,星期几