如何在Weka中加载CSV机器学习数据

How To Load CSV Machine Learning Data in Weka

原文作者:Jason Brownlee

原文地址:https://machinelearningmastery.com/load-csv-machine-learning-data-weka/

译者微博:@从流域到海域

译者博客:blog.csdn.net/solo95

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加载数据的任何问题?可以在评论中提出您的问题,我会尽我所能来回答。

本文的版权归 Steve Wang 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏阿炬.NET

FineUIMvc表格数据库分页,使用CYQ.Data组件

43280
来自专栏生信宝典

利用ComplexHeatmap绘制热图(一)

作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源。

84220
来自专栏偏前端工程师的驿站

CSS魔法堂:你真的理解z-index吗?

一、前言                                 假如只是开发简单的弹窗效果,懂得通过z-index来调整元素间的层叠关系就够了。但要将...

21450
来自专栏全沾开发(huā)

项目结构——JavaScript版本的2048实现[0]

项目结构——JavaScript版本的2048实现[0] 最近在看一本书《HTML5 Canvas开发详解》 看到了一定程度,打算找...

40060
来自专栏小灰灰

zxing二维码生成服务之深度定制

二维码生成服务之深度定制 之前写了一篇二维码服务定制的博文,现在则在之前的基础上,再进一步,花样的实现深度定制的需求,我们的目标是二维码上的一切都是可以由用户...

58060
来自专栏GIS讲堂

OpenLayers3基础教程——OL3基本概念

从本节开始,我会陆陆续续的更新有关OL3的相关文章——OpenLayers3基础教程,欢迎大家关注我的博客,同时也希望我的博客能够给大家带来一点帮助。

17430
来自专栏hightopo

HTML5的五种客户端离线存储方案

14150
来自专栏hightopo

原 HTML5五种客户端离线存储方案

14840
来自专栏跟着阿笨一起玩NET

WCF自我学习之(一)

本人最近才开始学习WCF服务框架,今天顺便做了一个小小的练手。适合初学者学习,故上传上来,望和大家一起共勉!高手勿进,见笑了。

8810
来自专栏kalifaの日々

动态规划真的可以为所欲为的(Leetcode 62/63)

看起来不错的运行效率 62题: 动态规划递推公式: 站在当前方块上可选择的路径数量 = 我正下方那个方块可选择的路径数量 + 我右侧那个方块可选择的路径数量; ...

38260

扫码关注云+社区

领取腾讯云代金券