How To Load CSV Machine Learning Data in Weka
原文作者:Jason Brownlee
原文地址:https://machinelearningmastery.com/load-csv-machine-learning-data-weka/
译者微博:@从流域到海域
译者博客:blog.csdn.net/solo95
本文同样刊载于腾讯云+:https://cloud.tencent.com/developer/article/1040260
如何在Weka中加载CSV机器学习数据
Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化(与之对应的是SPSS公司商业数据挖掘产品–Clementine )的,基于JAVA环境下开源的机器学习(machine learning)以及数据挖掘(data mining)软件。它和它的源代码可在其官方网站下载。有趣的是,该软件的缩写WEKA也是新西兰独有的一种鸟名,而Weka的主要开发者同时恰好来自新西兰的the University of Waikato(来自百度百科,译者注)。
如何在Weka中加载CSV机器学习数据
在开始建模之前,您必须能够加载(您的)数据。
在这篇文章中,您将了解如何在Weka中加载您的CSV数据集。阅读这篇文章后,你会知道:
关于ARFF文件格式以及它在Weka中表示数据的默认方式。
- 如何在Weka Explorer中加载CSV文件并将其保存为ARFF格式。
- 如何在ArffViewer工具中加载CSV文件并将其保存为ARFF格式。
- 本教程假定您已经安装了Weka。
让我们开始吧。
How To Load CSV Machine Learning Data in Weka
照片由Thales提供,保留某些权利。
如何在Weka中描述数据
机器学习算法主要被设计为与数组阵列一起工作。
这被称为表格化或结构化数据,因为数据在由行和列组成的电子表格中看起来就是这样。
Weka在描述数据时拥有特定的以计算机科学为中心的词汇表:
- 实例(Instance):一行数据被称为一个实例,就像在一个实例中或来自问题域中的观察(observation)一样。
属性(Attribute):一列数据被称为一个特征或属性,就像在观察的特征中那样。
每个属性可以有不同的类型,例如:实数(Real)表示数值,如1.2。
- 整数(Integer)表示没有小数部分数的数值,如5。
- 标称(Nominal)表示分类数据,如“狗”和“猫”。
- 字符串(String)表示单词组成的列表,如同这个句子本身。
在分类问题上,输出变量必须是标称的。对于回归问题,输出变量必须是实数。
Weka中的数据
Weka倾向于以ARFF格式加载数据。
(WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。二维表格存储ARFF文件中。译者注)
ARFF是表示属性关系文件格式的首字母缩略词。它是使用标题的CSV文件格式的扩展,提供有关列中数据类型的元数据。
例如,CSV格式经典的鸢尾花数据集的前几行如下所示:
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
ARFF格式的文件如下所示:
@RELATION iris
@ATTRIBUTE sepallength REAL
@ATTRIBUTE sepalwidth REAL
@ATTRIBUTE petallength REAL
@ATTRIBUTE petalwidth REAL
@ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris-virginica}
@DATA
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
你可以看到指令以符号(@)开始,其中有一个表示数据集的名称(例如@RELATION iris),有一个指令来定义每个属性的名称和数据类型(例如@ATTRIBUTE sepallength REAL),并有一个指令指示原始数据的开始(例如@DATA)。
ARFF文件中以百分比符号(%)开头的行表示注释。
原始数据部分中具有问号(?)的值表示未知或缺失的值。格式支持数字和分类值(categorical values),如上面的鸢尾示例,但也支持日期和字符串值。
根据您的Weka安装(方式),您的Weka安装目录data /子目录下可能有或者没有一些默认的数据集。与Weka一起分发的这些默认数据集都是ARFF格式,并且具有.arff文件扩展名。
在ARFF-Viewer中加载CSV文件
您的数据可能不是ARFF格式的。
事实上,它更可能是逗号分隔值(Comma Separated Value,CSV)格式。这是一种简单的格式,其中数据在行和列的表格中进行布局,而逗号用于分隔行中的值。引号也可以用来包围值,特别是如果数据包含带空格的文本字符串。
CSV格式很容易从Microsoft Excel导出,所以一旦您可以将数据导入到Excel中,您可以轻松地将其转换为CSV格式。
Weka提供了一个方便的工具来加载CSV文件,并保存成ARFF。你只需要用你的数据集做一次(这样的操作)。
使用以下步骤,您可以将数据集从CSV格式转换为ARFF格式,并将其与Weka workbench结合使用。如果您没有方便的CSV文件,可以使用鸢尾花数据集。从UCI Machine Learning存储库(传送门)中下载文件并将其保存到iris.csv的当前工作目录中。
1.启动Weka Chooser(选择器)。
Weka GUI选择器的屏幕截图
2.通过点击菜单中的“Tools”,选择“ArffViewer,来打开ARFF-Viewer”。
3.您将看到一个空的ARFF-Viewer窗口。
Weka ARFF Viewer
4.点击“File”菜单,在ARFF-Viewer中打开您的CSV文件,然后选择“Open”。导航到您当前的工作目录。将“Files of Type”过滤器更改为“CSV data files (*.csv)”。选择你的文件,然后点击“Open”按钮。
在ARFF Viewer中加载CSV
5.你现在应该可以看到你的CSV文件加载到ARFF-Viewer的一个示例样本。
6.通过点击“File”菜单并选择“Save as…”,以ARFF格式保存您的数据集。你需要输入带有.arff扩展名的文件名并单击“Save”按钮。
您现在可以将保存的.arff文件直接加载到Weka中。
请注意,ARFF-Viewer提供了在保存之前修改数据集的选项。例如,您可以更改值,更改属性的名称和更改其数据类型。
强烈建议您指定每个属性的名称,因为这将有助于稍后对数据进行分析。另外,确保每个属性的数据类型都是正确的。
在Weka Explorer中加载CSV文件
您也可以直接在Weka Explorer界面中加载您的CSV文件。
如果您急着想快速测试一个想法,这很方便。
本节介绍如何在Weka Explorer界面中加载CSV文件。您可以再次使用虹膜数据集,如果您没有加载CSV数据集,则练习。
1.启动Weka GUI Chooser(选择器)。
2.通过单击“资源管理器”按钮启动Weka资源管理器。
Weka资源管理器的屏幕截图
3.点击“Open file…”按钮。
4.导航到您当前的工作目录。将“Files of Type”更改为“CSV data files (*.csv)”。选择你的文件,然后点击“打开”按钮。
您可以直接用数据开始工作。您也可以通过点击“Save”按钮并输入文件名,以ARFF格式保存数据集。
使用Excel中的其他文件格式
如果您有其他格式的数据,请先将其加载到Microsoft Excel中。
以另一种格式(如CSV)这样使用不同的分隔符或固定宽度字段来获取数据是很常见的。Excel有强大的工具来加载各种格式的表格数据。使用这些工具,并首先将您的数据加载到Excel中。
将数据加载到Excel后,可以将其导出为CSV格式。然后,您可以直接或通过首先将其转换为ARFF格式在Weka中使用它。
资源
下面是一些额外的资源,你会发现这些资源对在Weka中使用CSV data进行工作非常有帮助。
概要
在这篇文章中,您发现了如何将您的CSV数据加载到Weka中进行机器学习。
具体来说,你了解到:
- 关于ARFF文件格式以及Weka如何使用它来表示机器学习的数据集。
- 如何使用ARFF-Viewer加载您的CSV数据并将其保存为ARFF格式。
- 如何直接在Weka Explorer中加载CSV数据并将其用于建模。
如果你有关于本文中的Weka加载数据的任何问题?可以在评论中提出您的问题,我会尽我所能来回答。