Weka - 预处理数据

从现场收集的数据包含许多不必要的内容,会导致错误的分析。例如,数据可能包含空字段,可能包含与当前分析无关的列,等等。因此,必须对数据进行预处理以满足您所寻求的分析类型的要求。这是在预处理模块中完成的。

为了演示预处理中的可用功能,我们将使用安装中提供的 Weather 数据库。

使用 Preprocess 标签下的 Open file ... 选项选择 weather-nominal.arff 文件。

Weather Nominal

打开文件后,屏幕显示如下 −

Weka Explore

此屏幕告诉我们有关已加载数据的几件事,本章将进一步讨论。

了解数据

让我们首先看一下突出显示的当前关系子窗口。它显示当前加载的数据库的名称。您可以从此子窗口推断出两点 −

  • 有 14 个实例 - 表中的行数。

  • 该表包含 5 个属性 - 字段,将在后面的部分中讨论。

在左侧,请注意 Attributes 子窗口,它显示数据库中的各个字段。

Weka Attributes

weather 数据库包含五个字段 - outlook、temperature、huge、windy 和 play。当您通过单击从此列表中选择一个属性时,右侧将显示有关该属性本身的更多详细信息。

让我们先选择温度属性。单击它时,您将看到以下屏幕 −

温度属性

选定属性子窗口中,您可以看到以下 −

  • 显示属性的名称和类型。

  • 温度属性的类型为名义

  • 缺失值的数量为零。

  • 有三个不同的值,没有唯一值。

  • 此信息下方的表格显示此字段的名义值为热、温和和冷。

  • 它还以百分比的形式显示每个名义值的计数和权重。

在窗口底部,您可以看到 class 值的可视化表示。

如果单击 Visualize All 按钮,您将能够在一个窗口中看到所有功能,如下所示 −

Visualize All

删除属性

很多时候,您想要用于模型构建的数据带有许多不相关的字段。例如,客户数据库可能包含他的手机号码,这与分析他的信用评级有关。

删除属性

要删除属性,请选择它们并单击底部的删除按钮。

所选属性将从数据库中删除。在对数据进行完全预处理后,您可以保存它以用于模型构建。

接下来,您将学习通过对数据应用过滤器来预处理数据。

应用过滤器

一些机器学习技术(例如关联规则挖掘)需要分类数据。为了说明过滤器的使用,我们将使用weather-numeric.arff数据库,该数据库包含两个数字属性 - 温度湿度

我们将通过对原始数据应用过滤器将它们转换为名义。单击Filter子窗口中的Choose按钮,然后选择以下过滤器 −

weka→filters→supervised→attribute→Discretize

Weka Discretize

单击Apply按钮并检查temperature和/或hydrity属性。您会注意到这些已从数字类型更改为名义类型。

Humidity Attribute

现在让我们看看另一个过滤器。假设您想选择最佳属性来决定玩法。选择并应用以下过滤器 −

weka→filters→supervised→attribute→AttributeSelection

您会注意到它从数据库中删除了温度和湿度属性。

Weka Attribute Selection

对数据预处理满意后,单击保存 ... 按钮保存数据。您将使用此保存的文件进行模型构建。

在下一章中,我们将探索使用几种预定义的 ML 算法进行模型构建。