什么是数据预处理
数据预处理就是清洗和变换原始数据以使其适合分析和建模。原始数据通常包括缺失数据、离群值和其他不一致之处,如格式问题。预处理步骤包括数据清洗、数据归一化和数据变换。数据预处理的目标是提高下游分析和建模的准确度和效率。
MATLAB® 提供 App 和函数来预处理输入数据,使其适用于统计建模、机器学习算法和其他数据驱动的应用。
图 1 显示包含缺失值和离群值的原始数据,这可能会在分析时导致错误的结论。图 2 显示应用了三种不同数据预处理方法(填充缺失数据、删除离群值和平滑处理)后的相同数据。改进后的数据质量现在突出显示了诸如幅值、频率和周期性等属性。
数据预处理方法
数据预处理方法可以分为三大类:数据清洗、数据变换和结构化操作。您可以按照任何顺序以迭代方式执行这些步骤。
数据清洗
数据清洗是使用以下示例方法解决数据集中异常情况的过程:
- 管理离群值:识别离群值,然后删除离群值,或用统计估计值替换它们。
- 填充缺失数据:识别缺失或无效的数据点,并用插值替换它们。
- 平滑处理:使用移动均值、线性回归和更专业的过滤方法等滤除噪声。
数据变换
数据变换是通过使用以下示例操作将数据集修改为首选格式的过程:
- 归一化和重新缩放:将不同缩放的数据集标准化为统一缩放
- 去趋势:去除多项式趋势以增强数据集中变化的可见性
结构操作
结构操作通常用于数据集的合并、重组和分类,包括:
- 联接:使用公共键变量按行合并两个表或时间表
- 堆叠和分叠:重构多维数组以合并或重新分布表中的数据,使其更易于分析
- 分组和分 bin:重新组织数据集以提取有价值的见解
- 计算透视表:将大型表格数据集分解成子表以聚焦信息
数据预处理和数据类型
根据数据类型的不同,数据预处理步骤可能会有所不同。以下是三个不同数据预处理方法的示例,适用于各种数据类型。
时间序列数据 | 表格数据 | 图像数据 |
您可以执行各种数据清洗和预处理任务,例如删除缺失值、过滤、平滑以及同步具有不同时间步的带时间戳的数据。 | 当表中有杂乱数据时,您可以通过填充或删除缺失值和以不同顺序重新排列表行和变量对表数据进行清洗。 | 数据预处理对于涉及图像的应用很有用,包括 AI。您可以通过调整图像大小或裁剪图像,甚至是增加深度学习模型的训练数据量来预处理数据。 |
|
|
|
预处理和探查带时间戳的数据 | 清洗表中的杂乱和缺失数据 | 为深度学习预处理图像 |
使用 MATLAB 进行数据预处理
正确的预处理方法选择并不总是显而易见。MATLAB 提供交互功能(App 和实时编辑器任务)和高级函数,让您可以轻松尝试不同方法并确定哪种方法适合您的数据。使用不同配置进行迭代并选择最佳设置将有助于您为进一步的分析准备数据。
交互功能
数据清洗器是一款独立的交互式工具,无需编写代码即可预处理时间序列数据。图 6 显示如何导入数据,然后清洗数据、填充缺失数据并删除离群值。然后,您可以将修改后的数据保存到 MATLAB 工作区以供进一步分析。您还可以自动生成 MATLAB 代码来记录您的步骤,并在以后重现它们。
实时编辑器任务采用简单的点击式界面,您可以将其直接添加到脚本中以执行一组特定操作。您能够以交互方式对这些任务进行配置,以遍历不同设置并为应用确定最佳配置。与数据清洗器一样,您也可以自动生成 MATLAB 代码来重现您的工作。
您可以使用一系列实时编辑器任务,例如清洗缺失数据、清洗离群数据、归一化数据等,通过在每个步骤可视化数据以交互方式对数据进行预处理。
使用 MATLAB 函数
MATLAB 提供数千个高级内置函数,用于常见的数学、科学和工程计算,包括数据预处理。
您可以通过在 MATLAB 中可视化原始数据集来开始对其的探查。图 9 显示包含缺失值和离群值的原始数据。数据集采集了一个典型自然日的太阳辐射度。恶劣的天气条件可能会干扰无线遥测传输,导致原始数据集不完整。
下面是五种常用的数据预处理方法,我们用 MATLAB 将其分别应用于图 9 所示的原始太阳辐射度数据集。
数据预处理方法 | MATLAB 图 |
---|---|
处理离群值值: 遥测数据中的异常值显示为离群值。使用 |
|
填充缺失数据: 通信丢失会导致遥测数据丢失。使用 |
|
平滑数据: 使用 |
|
归一化数据: 使用 |
|
分组: 使用 |
|
数据可能杂乱,但数据预处理方法可以帮助提高数据质量,为进一步的分析准备数据。有关详细信息,请参阅以下资源。
示例和操作方法
软件参考
另请参阅: 数据清洗, 使用 MATLAB 进行数据分析, MATLAB 图形