Weka - 数据预处理
从现场收集的数据包含许多不需要的东西,这些东西会导致错误的分析。例如,数据可能包含空字段,可能包含与当前分析无关的列,等等。因此,必须预处理数据以满足您正在寻求的分析类型的要求。这在预处理模块中完成。
为了演示预处理中可用的功能,我们将使用安装中提供的Weather数据库。
使用预处理选项卡下的打开文件…选项,选择weather-nominal.arff文件。
打开文件后,屏幕将如下所示:
此屏幕告诉我们有关加载数据的几件事,这些将在本章中进一步讨论。
理解数据
让我们首先看看突出显示的当前关系子窗口。它显示当前加载的数据库的名称。您可以从此子窗口推断出两点:
共有 14 个实例 - 表中的行数。
表包含 5 个属性 - 字段,这些将在接下来的部分中讨论。
在左侧,请注意属性子窗口,它显示数据库中的各个字段。
weather数据库包含五个字段 - outlook(天气),temperature(温度),humidity(湿度),windy(有风)和 play(玩耍)。当您通过单击选择此列表中的属性时,属性本身的更多详细信息将显示在右侧。
让我们首先选择temperature(温度)属性。单击它后,您将看到以下屏幕:
在选定属性子窗口中,您可以观察到以下内容:
显示属性的名称和类型。
temperature(温度)属性的类型为Nominal(名义)。
缺失值的个数为零。
有三个不同的值,没有唯一值。
此信息下方的表格显示此字段的名义值为 hot(热),mild(温和)和 cold(冷)。
它还显示每个名义值的计数和权重(百分比)。
在窗口底部,您可以看到类别值的直观表示。
如果您单击可视化全部按钮,您将能够在一个窗口中看到所有特征,如下所示:
删除属性
很多时候,您想要用于模型构建的数据包含许多不相关的字段。例如,客户数据库可能包含他的手机号码,这与分析他的信用评级无关。
要删除属性,请选择它们并单击底部的删除按钮。
选定的属性将从数据库中删除。完全预处理数据后,您可以将其保存以进行模型构建。
接下来,您将学习如何通过对数据应用过滤器来预处理数据。
应用过滤器
一些机器学习技术,例如关联规则挖掘,需要分类数据。为了说明过滤器的使用,我们将使用包含两个数值属性 - temperature(温度)和humidity(湿度)的weather-numeric.arff数据库。
我们将通过对原始数据应用过滤器将其转换为名义数据。单击过滤器子窗口中的选择按钮,然后选择以下过滤器:
weka→filters→supervised→attribute→Discretize
单击应用按钮并检查temperature(温度)和/或humidity(湿度)属性。您会注意到它们已从数值类型更改为名义类型。
现在让我们来看另一个过滤器。假设您想选择决定play(玩耍)的最佳属性。选择并应用以下过滤器:
weka→filters→supervised→attribute→AttributeSelection
您会注意到它从数据库中删除了 temperature(温度)和 humidity(湿度)属性。
对数据预处理满意后,请单击保存…按钮保存数据。您将使用此保存的文件进行模型构建。
在下一章中,我们将探索使用几种预定义的 ML 算法进行模型构建。