MATLAB 预处理 App
第 3 章
MATLAB 预处理 App
上一章讨论了如何使用 MATLAB 命令和实时编辑器执行常见的预处理方法。不过,MATLAB 还专门设计了一些 App,能将任务化繁为简。本章将介绍两个 App,它们分别适用于时间序列数据处理和参数方程数据清理,在数据探查和预处理方面很有帮助。
使用 Signal Analyzer 预处理数据
为顺利训练机器学习模型,您需要预处理时序数据并使用重要特征,这其实会降低信号数据的维度和变异性。
为时序数据创建预处理脚本时,较好的做法是首先选取一部分信号来代表数据集整体。
Signal Analyzer 可为您简化接下来的操作:
- 探查数据
- 确定合适的预处理方法
- 创建或更新脚本,以针对完整数据集运行
探查时序数据
了解数据的第一步是可视化。Signal Analyzer 不仅能帮助您一次查看多个信号并识别模式,还能同时在时域、频域和时频域探查信号。
时域
频域
时频域
要使用此 App,请展开 MATLAB 工具条中的 APP 选项卡,或在 MATLAB 命令行窗口中键入 signalAnalyzer.
注意:将数据用于 Signal Analyzer 之前,您必须先清理缺失数据。请参阅下一节了解如何处理缺失数据。
若要使用存储为日期时间数组的时间值分析时间表,请从所有其他元素中减去第一个元素,从而将该数组转换为相对持续时间数组。以下示例创建了一个行时间采用日期时间格式的时间表,并将其转换为 Signal Analyzer 可读的时间表。
Tt = timetable(datetime(2016,11,9,2,30,1:10)',randn(10,1)); dt = tt.Time-tt.Time(1); tn = timetable(dt,tt.Var1);
尝试完整示例:
确定合适的预处理技术和方法
探查数据有助于发现需要应用的预处理方法。推荐的做法是创建一个信号副本,以便了解预处理任务对信号产生的影响。
下面是两项预处理任务:
- 通过重采样创建统一数据,该任务通常在数据清理早期阶段执行
- 通过平滑处理发现数据模式,该任务在重采样后执行
时序数据并不总是均匀采样的。传感器可能以不同的间隔记录信号,也可能仅在由事件触发时进行记录。在这些情况下,采样率可能出现剧烈波动。还有一些情况下,您可能需要处理多个采样率各不相同的规则采样信号。无论具体情况究竟如何,针对数据进行重采样并生成均匀采样信号将大幅简化后续任务。
获取均匀采样信号后,您可以应用多种信号处理算法完成以下任务:
- 提取特征,将数据用于各种机器学习算法
- 将信号数据变换为时频图(例如频谱图和小波变换),以用于可视化,或用于支持二维数据表示的模型
- 识别关注(和非关注)区域
在 Signal Analyzer 中,信号重采样是一项十分简单的任务。将要使用的数据从工作区浏览器拖放到信号表或显示。右键单击信号并定义时间值,描述所选信号的采样率、采样时间或时间值向量。
这个简单示例使用的是非均匀采样数据(连续六周每天采样一次)。请参阅此示例的完整文档
在分析器选项卡中,展开预处理库,单击重采样图标。Signal Analyzer 使用 Signal Processing Toolbox™ 函数 函数 resample 进行重采样。
平滑处理不仅有助于发现数据模式,还能通过滤波舍去不重要的信息。平滑处理的目标是消除数据噪声成分,让缓慢的变化和趋势更为明显。
创建或更新脚本,以针对完整数据集运行
当您最终确定希望对整个数据集应用的预处理技术时,可以在分析器选项卡中单击生成函数。
此操作会将您应用的所有预处理任务以单个函数形式生成代码,您可以将其保存为 MATLAB 脚本。现在,您可以借助这一 MATLAB 小程序对所有相关数据记录迭代应用该函数,从而对任意大型数据集执行自动预处理。
要在 MATLAB 中清理离群值,另一种方法是使用 Curve Fitting。有时,我们或许能够使用参数方程较好地逼近数据所捕获的底层过程。在这种情况下,您可以使用曲线拟合对数据进行方程拟合,然后通过检查残差来识别离群值。
在前文涉及资历与年龄的调查示例中,我们发现缺失数据在高龄段较为普遍。假设绘制年龄与资历相对应的图,并使用移动均值填充缺失数据,可以合理预期的是,线性拟合将取得良好效果。为检验这一结果,您需要针对每个变量建立数组(需要先完成数据清理),即生成一个受访者年龄的 499x1 双精度数组和一个受访者资历的 499x1 双精度数组。
首先,在 MATLAB 工具条中打开 Curve Fitting:
您可以尝试对数据进行不同的拟合;确定数据绘制方法后,选择文件 (File) > 生成代码 (Generate Code) 创建函数,以便随后添加到预处理脚本。
您也可以使用此 App 选择并排除离群值,查看删除离群值对拟合模型的影响。
完成一些初步数据清理后,您可以尝试将数据用于算法。您有必要就数据是否需要进一步预处理得到快速反馈。
重复过程
针对机器学习算法清理数据是一个迭代的过程。您通过探查数据来确定所需的预处理方法,执行方法,然后查看算法基于这些数据运行的效果。如果模型准确性不佳,您可能需要返回查看是否需要执行进一步的预处理。
您可以跟随 数据科学:预测天气事件灾害损失 这一示例亲自尝试,也可以观看本视频为您演示该示例的中的预处理步骤。
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)