电子书

第一章

探索数据


这本电子书演示了在MATLAB中用于机器学习算法的预处理数据所涉及的任务®

如果你使用过机器学习,你知道你必须预处理数据。您还知道,如果手工处理,这可能是一个繁琐的过程。您需要能够在允许您快速评估更改对机器学习模型准确性的影响的框架内对预处理脚本进行更新。

如果你回想一下早期的数学课,在运算顺序(PEMDAS)上有明确的规则,用“请原谅我亲爱的萨莉阿姨”这样的助记词来记住。不管你的问题是苹果还是抵押贷款利率,你都知道2 * (6+4)2= 200。

数据预处理任务的操作顺序并不是那么简单。当涉及到你应该按什么顺序做任务时,没有什么硬性规定,但每个问题都有自己的因素,可能会影响到先做什么。

在对数据进行预处理之前,需要知道需要进行哪些预处理任务。查询、可视化和以其他方式探索数据将使您了解应该将精力集中在哪里,并导致迭代工作流程,其中探索通知预处理。重复这个过程,直到勘探不再产生需要解决的问题。

工作流图

为了跟踪该工作流中的迭代,跟踪脚本中的预处理操作是很有帮助的。这也使得调整预处理步骤的顺序变得更容易,因为所得到的预处理数据可能会根据应用预处理步骤的顺序而变化。

让我们看一个用于预处理数据的示例MATLAB脚本。

部分

创建需要预处理的数据

创建一个带噪声的正弦波,并删除一些值,这样它们就不见了。rng违约;T = 0:01:5;Y = sin(t) + randn(size(t));missingIdx = randi([1 length(y)],100,1);y(missingIdx) = NaN;%绘制数据。您可以在图中看到空白%,表示丢失数据的%。图;情节(t, y)
带间隙的图形数据
部分

预处理缺失值

使用填充缺失函数和线性插值来填充数据中的空白。y_fill = fillmissing(y,“线性”);将填充的数据添加到%图中。您可以看到,现在已经填充了%的空白。持有;情节(t, y_filled“:r”
带空白的图形数据
部分

使用实时编辑器任务清理丢失的数据

或者,您可以使用Live Editor任务来执行此预处理。实时编辑器任务可以在实时编辑器>任务下拉的MATLAB工具栏中找到。清除缺失数据实时编辑器任务显示已清除的数据和已填充的缺失值的图表。本文还介绍了可用于清理数据的各种方法。

部分

平滑的数据

接下来,你可以使用平滑数据实时编辑器任务来平滑噪点。应用一个高斯滤波器,移动窗口宽度为1。

在这个脚本中,在应用平滑之前,丢失的数据被清除。但这可能并不总是最好的选择。由于所有步骤都在脚本中捕获,因此很容易返回并移动部分,以查看更改预处理顺序对结果的影响。

Baidu
map