什么是数据预处理?
数据预处理就是清洗和变换原始数据以使其适合分析和建模。预处理步骤包括数据清洗、数据归一化和数据变换。数据预处理的目标是提高下游分析和建模的准确度和效率。
原始数据通常包含缺失值和离群值,这可能会在分析过程中导致错误的结论。您可以使用 MATLAB® 应用数据预处理方法,如填充缺失数据、删除离群值和进行平滑处理,从而使您能够可视化属性,如幅值、频率和周期的性质。
数据预处理方法
数据预处理方法可以分为三大类:数据清洗、数据变换和结构化操作。您可以按照任何顺序以迭代方式执行这些步骤。
数据清洗
数据清洗是使用以下示例方法解决数据集中异常情况的过程:
- 管理离群值:识别离群值,然后删除离群值,或用统计估计值替换它们
- 填充缺失数据:识别缺失或无效的数据点,并用插值替换它们
- 平滑处理:使用移动均值、线性回归和更专业的过滤方法等滤除噪声
数据变换
数据变换是通过使用以下示例操作将数据集修改为首选格式的过程:
- 归一化和重新缩放:将不同缩放的数据集标准化为统一缩放
- 去趋势:去除多项式趋势以增强数据集中变化的可见性
结构操作
结构操作通常用于数据集的合并、重组和分类,包括:
- 联接:使用公共键变量按行合并两个表或时间表
- 堆叠和分叠:重构多维数组以合并或重新分布表中的数据,使其更易于分析
- 分组和分 bin:重新组织数据集以提取有价值的见解
- 计算透视表:将大型表格数据集分解成子表以聚焦信息
数据预处理和数据类型
根据数据类型的不同,数据预处理步骤可能会有所不同。以下是三个不同数据预处理方法的示例,适用于各种数据类型。
时间序列数据 | 表格数据 | 图像数据 |
您可以执行各种数据预处理任务,例如删除缺失值、过滤、平滑以及同步具有不同时间步的带时间戳的数据。 | 当表中有杂乱数据时,您可以使用不同数据预处理方法,通过填充或删除缺失值和以不同顺序重新排列表行和变量对表数据进行清洗。 | 数据预处理对于涉及图像的应用很有用,包括 AI。您可以通过调整图像大小或裁剪图像,甚至是增加深度学习模型的训练数据量来预处理数据。 |
预处理和探查带时间戳的数据 | 清洗表中的杂乱和缺失数据 | 预处理图像以进行深度学习 |
数据预处理的最佳实践
数据预处理不宜采用一刀切的方法。根据数据的特征、机器学习算法和需要解决的问题,采用的方法也有所不同。采用最佳实践有助于选择数据预处理方法:
- 根据应用定制方法:选择适当的数据预处理方法对于获得可靠和准确的结果至关重要。有效的数据预处理方法通常需要定制以满足不同应用的需求;例如,金融应用与医学成像应用中的方法会有很大不同。通过针对特定应用自定义数据预处理方法,可以强调输入数据中最重要的特征,从而创建高度精确的自定义模型。这种自定义方法可确保数据为分析或建模进行了最优处理,从而产生更准确和有效的结果。
- 评估影响:正确的数据预处理方法可以提高模型的准确度、效率和可解释性。但在某些情况下,预处理方法也会对模型的准确度产生负面影响,因此在构建模型的整个过程中评估模型的性能非常重要。周期性验证数据预处理步骤的影响可以确保任何调整都有利于整体模型性能。例如,在医疗保健数据分析中,归一化患者实验室测试结果和输入缺失值是数据预处理的重要步骤。这些方法可确保每个测试结果对预测模型的贡献是均等的,并且分析不会因缺失或不成比例的数据而产生偏差,从而获得更准确和可操作的见解。
机器学习工作流中的数据预处理
数据预处理是机器学习管道中至关重要的一步,它可确保数据集是干净的、相关的,并为建模做好准备。经过正确预处理的数据能够通过为机器学习模型提供准确、相关和标准化的输入显著提高机器学习模型的性能。
您对数据进行了一般的预处理后,可能还需要在创建和训练机器学习模型之前再采取一些步骤。特征工程是在数据预处理后的步骤,它是将原始数据转换为机器学习所用特征的迭代过程。它包括:
- 特征提取将原始数据转换为适合机器学习算法的信息,通过保留基本信息来提高模型性能。此步骤可以是利用特定数据类型(如图像、信号和文本)的专业知识的手动过程;也可以是通过算法或深度学习网络的自动过程。例如,小波散射是一种从信号或图像中提取特征的自动方法,可简化从数据到模型开发的推进。
- 特征变换将现有特征变换为新特征(预测变量),同时删除描述性较差的特征。MATLAB 中提供了几种方法,包括主成分分析 (PCA)、因子分析和 t 分布随机近邻嵌入 (t-SNE),这些方法有助于为模型创建更有意义的特征。
- 特征选择是一种降维方法,它会选择为建模提供最佳预测能力的特征子集(预测变量)。MATLAB 支持多种方法,如邻域成分分析 (NCA)、最小冗余最大关联 (MRMR)、F 检验和卡方特征选择,从而确保在模型中使用最相关的特征。
针对不同类型的机器学习算法,定制各种数据预处理方法。这些方法是为机器学习模型准备数据的基础,旨在提高不同类型的算法和用例的模型准确度、效率和泛化能力。
使用 MATLAB 进行数据预处理
选择合适的数据预处理方法并不总是显而易见的。MATLAB 提供交互功能(App 和实时编辑器任务)和高级函数,让您可以轻松尝试不同方法并确定哪种方法适合您的数据。使用不同配置进行迭代并选择最佳设置将有助于您为进一步的分析准备数据。
交互功能
数据清洗器使您无需编写代码即可预处理时间序列数据。您可以导入数据,然后清洗数据、填充缺失数据并删除离群值。然后,您可以将修改后的数据保存到 MATLAB 工作区以供进一步分析。您还可以自动生成 MATLAB 代码来记录您的步骤,并在以后重现它们。
实时编辑器任务采用简单的点击式界面,您可以将其直接添加到脚本中以执行一组特定操作。您能够以交互方式对这些任务进行配置,以遍历不同设置并为应用确定最佳配置。与数据清洗器一样,您也可以自动生成 MATLAB 代码来重现您的工作。
您可以使用一系列实时编辑器任务,例如清洗缺失数据、清洗离群数据、归一化数据等,通过在每个步骤可视化数据以交互方式对数据进行预处理。
MATLAB 中的“数据预处理”工具栏,包含一组实时任务。
使用 MATLAB 函数
MATLAB 提供数千个高级内置函数,用于常见的数学、科学和工程计算,包括数据预处理。
您可以通过在 MATLAB 中可视化原始数据集来开始对其的探查。例如,在一个典型自然日收到的太阳辐射度的数据集包括缺失值和离群值。恶劣的天气条件可能会干扰无线遥测传输,导致原始数据集不完整。
使用 MATLAB,可以将五种常见的数据预处理方法应用于此原始太阳辐射度数据集。
数据预处理方法 | MATLAB 图 |
---|---|
应对离群值 遥测数据中的异常值显示为离群值。使用 |
|
填充缺失数据 通信丢失会导致遥测数据丢失。使用 |
|
平滑数据 使用 |
|
归一化数据 使用 |
|
分组 使用 |
|
数据可能杂乱,但数据预处理方法可以帮助提高数据质量,为进一步的分析准备数据。有关详细信息,请参阅以下资源。
示例和操作方法
软件参考
另请参阅: 数据清洗, 使用 MATLAB 进行数据分析, MATLAB 图形