(Noise);还有另一个问题是不同输入来源收集到的数据在数据结构、特征值的单位、表示精度等方面存在不一致的情况,此时我们就要对数据进行“规范化”(Normalization)处理,保证它们在结构上一致,去除数据的单位限制,将其转化为无量纲的纯数值,以便对不同单位或量级的指标进行比较和加权处理。
机器学习中的数据清洗与传统数据挖掘中的数据清洗并没有什么不同,根据需要,大致会进行以下操作,以解决原数据中不完整、含噪声、不一致的问题,只有高质量的数据才能带来高质量的预测和决策结果:
● 数据集成,将从多个数据源获得的数据结合起来,形成一致的结构,存放在一个一致的数据存储中。
● 基础清洗操作,典型的如对数据进行基本的去重过滤操作。
● 分层采样,对于样本数据较多、各样本之间差异较大的情况,通过不同的方法保证采样平衡,抽出具有代表性的调查样本,增大各类型样本间的共同性。
● 数据分配,将数据集按照一定比例分为训练集、验证集、测试集等几部分,后续我们讲测试验证的时候会介绍这些内容。
● 数据规范化,譬如将量纲表达式转化为纯量表达式(可简单理解成把数据“去掉单位”,譬如 10 厘米和 1 分米,归一化之后是一样的),然后缩放到同一数量级(典型的如 0 到 1 之间),提升指标之间的可比较性。
● 平滑化,缩小数据在统计下的噪声差异,一种典型的平滑化操作是分箱,实际上就是按照特征值把样本划分到不同的子区间,如果一个特征值处于某个子区间内,就把该特征值放到这个子区间所代表的“箱子”内。在处理数据时采用特定方法分别对各个箱子中的数据进行处理。
● 数据填补,典型的如 ID 值生成、使用统计算法替换缺失的观察值等。
……
关于上面这些数据清洗操作具体如何进行,囿于篇幅,就不详细展开了,读者可自行查阅数据挖掘方面的书籍。预处理过程中与机器学习关系更密切的步骤是“特征选择”。所谓特征选择,是指我们应该放弃对结果影响轻微的特征,挑选出对结果有决定性影响的关键特征,作为建模阶段的模型的输入。
第 6 章 机器学习概览
191