weka使用教程
- 格式:doc
- 大小:207.50 KB
- 文档页数:12
weka数据预处理标准化方法说明Weka(Waikato Environment for Knowledge Analysis)是一套用于数据挖掘和机器学习的开源软件工具集,提供了丰富的功能,包括数据预处理、分类、回归、聚类等。
在Weka中,数据预处理是一个关键的步骤,其中标准化是一个常用的技术,有助于提高机器学习算法的性能。
下面是在Weka中进行数据标准化的一般步骤和方法说明:1. 打开Weka:启动Weka图形用户界面(GUI)或使用命令行界面。
2. 加载数据:选择“Explorer”选项卡,然后点击“Open file”按钮加载您的数据集。
3. 选择过滤器(Filter):在“Preprocess”选项卡中,选择“Filter”子选项卡,然后点击“Choose”按钮选择一个过滤器。
4. 选择标准化过滤器:在弹出的对话框中,找到并选择标准化过滤器。
常见的标准化过滤器包括:- Normalize:这个过滤器将数据标准化为给定的范围,通常是0到1。
- Standardize:使用这个过滤器可以将数据标准化为零均值和单位方差。
- AttributeRange:允许您手动指定每个属性的范围,以进行标准化。
5. 设置标准化选项:选择标准化过滤器后,您可能需要配置一些选项,例如范围、均值和方差等,具体取决于选择的过滤器。
6. 应用过滤器:配置完成后,点击“Apply”按钮,将标准化过滤器应用于数据。
7. 保存处理后的数据:如果需要,您可以将标准化后的数据保存到文件中。
8. 查看结果:在数据预处理完成后,您可以切换到“Classify”选项卡,选择一个分类器,并使用标准化后的数据进行模型训练和测试。
记住,具体的步骤和选项可能会因Weka版本的不同而有所差异,因此建议查阅Weka文档或在线资源以获取更具体的信息。
此外,标准化的适用性取决于您的数据和机器学习任务,因此在应用标准化之前,最好先了解您的数据的分布和特征。
weka使用教程Weka是一个强大的开源机器学习软件,它提供了各种功能和算法来进行数据挖掘和预测分析。
以下是一个简单的Wea使用教程,帮助您了解如何使用它来进行数据分析和建模。
1. 安装Weka:首先,您需要下载并安装Weka软件。
您可以从官方网站上下载Weka的最新版本,并按照安装说明进行安装。
2. 打开Weka:安装完成后,打开Weka软件。
您将看到一个欢迎界面,上面列出了各种不同的选项和功能。
选择“Explorer”选项卡,这将帮助您导航和执行不同的任务。
3. 导入数据:在Explorer选项卡上,点击“Open file”按钮以导入您的数据集。
选择您要导入的数据文件,并确认数据文件的格式和结构。
4. 数据预处理:在导入数据之后,您可能需要对数据进行预处理,以清除噪声和处理缺失值。
在Weka中,您可以使用各种过滤器和转换器来处理数据。
点击“Preprocess”选项卡,然后选择适当的过滤器和转换器来定义您的预处理流程。
5. 数据探索:在数据预处理之后,您可以使用Weka的可视化工具来探索您的数据。
点击“Classify”选项卡,然后选择“Visualize”选项。
这将显示您的数据集的可视化图表和统计信息。
6. 建立模型:一旦您对数据进行了足够的探索,您可以使用Weka的各种机器学习算法建立模型。
在“Classify”选项卡上选择“Choose”按钮,并从下拉菜单中选择一个适当的分类算法。
然后,使用“Start”按钮训练模型并评估模型的性能。
7. 模型评估:一旦您建立了模型,您可以使用Weka提供的评估指标来评估模型的性能。
在“Classify”选项卡上,选择“Evaluate”选项,Weka将自动计算模型的准确性、精确度、召回率等指标。
8. 导出模型:最后,一旦您满意您的模型性能,您可以将模型导出到其他应用程序或格式中。
在Weka中,点击“Classify”选项卡,选择“Save model”选项,并指定模型的保存位置和格式。
WEKA操作入门WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过/ml/weka得到。
同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。
WEKA作为一个公开的数据挖掘工作平台,用于非商业目的的研究行为,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。
WEKA的接口是开放的,可以查看weka的接口文档,在weka中集成自己的算法甚至借鉴它的方法自己实现可视化工具。
2005年8月,在第11届ACM SIGKDD国际会议上,怀卡托大学的Weka小组荣获了数据挖掘和知识探索领域的最高服务奖,Weka系统得到了广泛的认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今最完备的数据挖掘工具之一(已有11年的发展历史)。
Weka 的每月下载次数已超过万次。
1.数据格式跟很多电子表格或数据分析软件一样,WEKA所处理的数据集是图1那样的一个二维的表格。
图1. weather.arff数据集WEKA中的术语。
表格里的一个横行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录。
竖行称作一个属性(Attrbute),相当于统计学中的一个变量,或者数据库中的一个字段。
这样一个表格,或者叫数据集,在WEKA看来,呈现了属性之间的一种关系(Relation)。
图1中一共有14个实例,5个属性,关系名称为“weather”。
WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。
图1所示的二维表格存储在如下的ARFF文件中。
这也就是WEKA自带的“weather.arff”文件,在WEKA安装目录的“data”子目录下可以找到。
relation weather@attribute outlook {sunny, overcast, rainy}@attribute temperature real@attribute humidity real@attribute windy {TRUE, FALSE}@attribute play {yes, no}@datasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yesrainy,68,80,FALSE,yesrainy,65,70,TRUE,noovercast,64,65,TRUE,yessunny,72,95,FALSE,nosunny,69,70,FALSE,yesrainy,75,80,FALSE,yessunny,75,70,TRUE,yesovercast,72,90,TRUE,yesovercast,81,75,FALSE,yesrainy,71,91,TRUE,no以“%”开始的行是注释,WEKA将忽略这些行。
Weka使用总结:1.weka的下载安装去官网上下载这个程序,找这个程序时要细心点,官网的搜索若不使用下面的搜索词就不一定能找到这个软件的下载地址2.双击软件,运行安装程序,在c盘路径下生成下面的文件3.在MyEClipse中新建java项目WEKA,将上面的weka-src.jar解压缩,把解压后的文件拷到WEKA项目中,lib文件夹中要引入相应的包4.weka连接mysql数据库。
在weka/experiment目录中找到修改databaseutils.props将jdbcDriver=org.gjt.mm.mysql.Driver[修改为-->jdbcDriver=com.mysql.jdbc.Driver]修改jdbcURL=jdbc:mysql://server_name:3306/database_name完整的代码修改如下# General information on database access can be found here:# /Databases## Version: $Revision: 5836 $# The comma-separated list of jdbc drivers to use#jdbcDriver=RmiJdbc.RJDriver,jdbc.idbDriver#jdbcDriver=jdbc.idbDriver#jdbcDriver=RmiJdbc.RJDriver,jdbc.idbDriver,org.gjt.mm.mysql.Driver,com.mck oi.JDBCDriver,org.hsqldb.jdbcDriverjdbcDriver=com.mysql.jdbc.Driver# The url to the experiment database#jdbcURL=jdbc:rmi://expserver/jdbc:idb=experiments.prp#jdbcURL=jdbc:idb=experiments.prpjdbcURL=jdbc:mysql://server_name:3306/database_name# the method that is used to retrieve values from the db# (java datatype + RecordSet.<method>)# string, getString() = 0; --> nominal# boolean, getBoolean() = 1; --> nominal# double, getDouble() = 2; --> numeric# byte, getByte() = 3; --> numeric# short, getByte()= 4; --> numeric# int, getInteger() = 5; --> numeric# long, getLong() = 6; --> numeric# float, getFloat() = 7; --> numeric# date, getDate() = 8; --> date# text, getString() = 9; --> string# time, getTime() = 10; --> date# the original conversion: <column type>=<conversion>#char=0#varchar=0#longvarchar=0#binary=0#varbinary=0#longvarbinary=0#numeric=2#decimal=2#tinyint=3#smallint=4#integer=5#bigint=6#real=7#float=2#double=2#date=8#time=10#timestamp=8#mysql-conversionstring, getString() = 0; --> nominal boolean, getBoolean() = 1; --> nominal double, getDouble() = 2; --> numeric byte, getByte() = 3; --> numeric short, getByte()= 4; --> numeric int, getInteger() = 5; --> numeric long, getLong() = 6; --> numeric gloat, getFloat() = 7; --> numeric date, getDate() = 8; --> datetext, getString() = 9; --> string TINYINT=3SMALLINT=4#SHORT=4SHORT=5INTEGER=5INT=5LONG=6REAL=7NUMERIC=2DECIMAL=2FLOAT=2DOUBLE=2CHAR=0TEXT=0VARCHAR=0LONGVARCHAR=9BINARY=0VARBINARY=0 LONGVARBINARY=9BIT=1BLOB=9DATE=8TIME=8DATETIME=8TIMESTAMP=8#mappings for table creation CREATE_STRING=TEXTCREATE_INT=INTCREATE_DOUBLE=DOUBLECREATE_DATE=DATETIME DateFormat=yyyy-MM-dd HH:mm:ss#database flagscheckUpperCaseNames=falsecheckLowerCaseNames=falsecheckForTable=truesetAutoCommit=truecreateIndex=false# All the reserved keywords for this databaseKeywords=\AND,\ASC,\BY,\DESC,\FROM,\GROUP,\INSERT,\ORDER,\SELECT,\UPDATE,\WHERE# The character to append to attribute names to avoid exceptions due to # clashes between keywords and attribute namesKeywordsMaskChar=_#flags for loading and saving instances using DatabaseLoader/Saver nominalToStringLimit=50idColumn=auto_generated_id配好之后在lib目录下加载一个要重新生成jar包需下载一个将这个压缩包解压之后置于C:\Users\ys\AppData\Local\Genuitec\MyEclipse 8.x Latest\dropins目录下,重新启动myeclipse,此时在WEKA项目中点右键出现build fat jar文件,点击进去之后,它会自动把引用的数据库连接包自动加载进去,生成一个weka-fat.jar包打开weka-fat.jar包,运行weka,就能和数据库连接了。
Weka入门教程3. 分类与回归背景知识WEKA把分类(Classification)和回归(Regression)都放在“Classify”选项卡中,这是有原因的。
在这两个任务中,都有一个目标属性(输出变量)。
我们希望根据一个样本(WEKA 中称作实例)的一组特征(输入变量),对目标进行预测。
为了实现这一目的,我们需要有一个训练数据集,这个数据集中每个实例的输入和输出都是已知的。
观察训练集中的实例,可以建立起预测的模型。
有了这个模型,我们就可以新的输出未知的实例进行预测了。
衡量模型的好坏就在于预测的准确程度。
在WEKA中,待预测的目标(输出)被称作Class属性,这应该是来自分类任务的“类”。
一般的,若Class属性是分类型时我们的任务才叫分类,Class属性是数值型时我们的任务叫回归。
选择算法这一节中,我们使用C4.5决策树算法对bank-data建立起分类模型。
我们来看原来的“bank-data.csv”文件。
“ID”属性肯定是不需要的。
由于C4.5算法可以处理数值型的属性,我们不用像前面用关联规则那样把每个变量都离散化成分类型。
尽管如此,我们还是把“Children”属性转换成分类型的两个值“YES”和“NO”。
另外,我们的训练集仅取原来数据集实例的一半;而从另外一半中抽出若干条作为待预测的实例,它们的“pep”属性都设为缺失值。
经过了这些处理的训练集数据在这里下载;待预测集数据在这里下载。
我们用“Explorer”打开训练集“bank.arff”,观察一下它是不是按照前面的要求处理好了。
切换到“Classify”选项卡,点击“Choose”按钮后可以看到很多分类或者回归的算法分门别类的列在一个树型框里。
3.5版的WEKA中,树型框下方有一个“Filter...”按钮,点击可以根据数据集的特性过滤掉不合适的算法。
我们数据集的输入属性中有“Binary”型(即只有两个类的分类型)和数值型的属性,而Class变量是“Binary”的;于是我们勾选“Binary attributes”“Numeric attributes”和“Binary class”。
大数据导论实验报告
实验一
姓名abc
学号asadsdsa
报告日期
实验一
一.实验目的
1实验开源工具Weka的安装和熟悉;
2.数据理解,数据预处理的实验;
二.实验内容
1.weka介绍
2.数据理解
3.数据预处理
4.保存处理后的数据
三.实验过程
1.导入数据并修改选项
2.用weka.filters.unsupervised.attribute.ReplaceMissingValues处理缺失值
3.用weka.filters.unsupervised.attribute.Discretize离散化第一列数据
4.用weka.filters.unsupervised.instance.RemoveDuplicates删除重复数据
5.用weka.filters.unsupervised.attribute.Discretize离散化第六列数据
6.用weka.filters.unsupervised.attribute.Normalize归一化数据
7.保存数据
四.实验结果与分析
1.数据清理后的对比图,上面的是处理前的图,下图是处理后的图
分析:通过两图对比可发现图一中缺失的数据在图二中已经添加上。
2.离散化第一行后的对比图,图片为离散化之后的效果图
分析:此次处理目标为第一列,可发现处理后‘age’这一列的数据离散化了。
3.删除重复数据之后的效果图
5.离散化第六列后的效果图
分析:此次处理目标为第六列,可清楚看到发生的变化6.归一化后的效果图
此次处理的目标是10,12,13,14列,即将未离散化的数值列进行归一化处理。
Weka如何连接数据库以SQL Server2000为例,其他的数据库操作⽅法⼀样,具体细节各异。
1 安装驱动程序,SQL Server2000将三个.jar加到环境变量。
2 修改 weka\experiment下的DatabaseUtils.props⽂件。
我们可以看到有DatabaseUtils.props.odbc DatabaseUtils.props.oracle等我们先将DatabaseUtils.props随便改成⼀个其他的名字,然后将DatabaseUtils.props.mssqlserver改成DatabaseUtils.props,打开现在的DatabaseUtils.props可以看到以下部分:(#表⽰注释)2.1驱动加载# JDBC driver (comma-separated list)jdbcDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver2.2数据库连接,如果在本机上可以将server_name改为127.0.0.1或者localhost# database URLjdbcURL=jdbc:sqlserver://127.0.0.1:14332.3数据类型的转换。
由于weka仅⽀持名词型(nominal)、数值型(numeric)、字符串、⽇期(date)。
所以我们要将现在数据库中的数据类型对应到这四种类型上来。
将以下数据类型对应的句⼦前⾯的注释符合去掉。
由于SQL Server2000有其他的数据类型Weka尚不能识别,所以我们在下⾯再添加上smallint=3datetime=8等等string,getString()= 0; -->nominalboolean,getBoolean() = 1; -->nominaldouble,getDouble() = 2; -->numericbyte,getByte() = 3; -->numericshort,getByte()= 4; -->numericint,getInteger() = 5; -->numericlong,getLong() = 6; -->numericgloat,getFloat() = 7; -->numericdate,getDate() = 8; -->datevarchar=0float=2tinyint=3int=53其他说明,我们暂时⽤不到,不⽤去管了# other optionsCREATE_DOUBLE=DOUBLE PRECISIONCREATE_STRING=VARCHAR(8000)CREATE_INT=INTcheckUpperCaseNames=falsecheckLowerCaseNames=falsecheckForTable=true4 OK,下⾯可以操作了!运⾏weka的Explore界⾯后,通过Open DB..打开SQL Viewer⼯作界⾯(3.5.5版本⽐3.4.10在这⾥精细了许多)。
如何使用Weka进行机器学习和数据挖掘1. 引言机器学习和数据挖掘是当今计算机科学领域中非常热门的技术,它们的应用已经渗透到各个行业。
Weka是一个功能强大且易于使用的开源软件工具,广泛应用于机器学习和数据挖掘任务中。
本文将介绍如何使用Weka进行机器学习和数据挖掘,帮助读者快速上手。
2. 安装与配置Weka是使用Java编写的跨平台软件,可以在Windows、Linux 和Mac OS等操作系统上运行。
首先,从Weka官方网站上下载最新版本的Weka软件包。
下载完成后,按照官方提供的安装指南进行安装。
安装完成后,打开Weka软件,在"Tools"菜单下找到"Package Manager",确保所有必需的包(例如data-visualization)都已被安装。
3. 数据预处理在进行机器学习和数据挖掘任务之前,通常需要对原始数据进行预处理。
Weka提供了许多强大的工具来处理数据。
首先,可以使用Weka的数据编辑器加载并查看原始数据集。
然后,可以进行数据清洗,包括处理缺失值、异常值和重复数据等。
Weka还提供了特征选择和降维等功能,帮助提取有意义的特征。
4. 分类与回归分类和回归是机器学习中的两个重要任务。
Weka支持多种分类和回归算法,包括决策树、朴素贝叶斯、支持向量机和神经网络等。
在Weka主界面中,选择"Classify"选项卡,选择相应的算法,并配置参数。
然后,可以使用已经预处理的数据集进行模型训练和测试。
Weka提供了丰富的性能评估指标和可视化工具,帮助分析模型的效果。
5. 聚类分析聚类是一种无监督学习方法,用于将样本划分到不同的组或簇中。
Weka提供了各种聚类算法,如K均值、层次聚类和基于密度的聚类。
在Weka主界面中,选择"Cluster"选项卡,选择相应的算法,并配置参数。
然后,使用预处理的数据集进行聚类分析。
WEKA使用教程目录1. 简介2. 数据格式3.数据准备4. 关联规则(购物篮分析)5. 分类与回归6. 聚类分析1. 简介WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过/ml/weka得到。
同时weka也是新西兰的一种鸟名,而WEK A的主要开发者来自新西兰。
WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。
如果想自己实现数据挖掘算法的话,可以看一看weka的接口文档。
在weka中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。
2005年8月,在第11届ACM SIGKDD国际会议上,怀卡托大学的Weka小组荣获了数据挖掘和知识探索领域的最高服务奖,Weka系统得到了广泛的认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今最完备的数据挖掘工具之一(已有11年的发展历史)。
Weka的每月下载次数已超过万次。
--整理自/computers/common/info.asp?id=293042. 数据格式巧妇难为无米之炊。
首先我们来看看WEKA所用的数据应是什么样的格式。
跟很多电子表格或数据分析软件一样,WEKA所处理的数据集是图1那样的一个二维的表格。
图1 新窗口打开这里我们要介绍一下WEKA中的术语。
表格里的一个横行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录。
竖行称作一个属性(Attrbute),相当于统计学中的一个变量,或者数据库中的一个字段。
这样一个表格,或者叫数据集,在WEKA看来,呈现了属性之间的一种关系(Rela tion)。
图1中一共有14个实例,5个属性,关系名称为“weather”。
WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。
Weka 数据挖掘软件使用指南1.Weka简介该软件是WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过/ml/weka得到。
Weka作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。
如果想自己实现数据挖掘算法的话,可以看一看Weka的接口文档。
在Weka中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。
2.Weka启动打开Weka主界面后会出现一个对话框,如图:主要使用右方的四个模块,说明如下:❑Explorer:使用Weka探索数据的环境,包括获取关联项,分类预测,聚簇等;❑Experimenter:运行算法试验、管理算法方案之间的统计检验的环境;❑KnowledgeFlow:这个环境本质上和Explorer所支持的功能是一样的,但是它有一个可以拖放的界面。
它有一个优势,就是支持增量学习;❑SimpleCLI:提供了一个简单的命令行界面,从而可以在没有自带命令行的操作系统中直接执行Weka命令(某些情况下使用命令行功能更好一些)。
3.主要操作说明点击进入Explorer模块开始数据探索环境。
3.1主界面进入Explorer模式后的主界面如下:3.1.1标签栏主界面最左上角(标题栏下方)的是标签栏,分为五个部分,功能依次是:❑Preprocess(数据预处理):选择和修改要处理的数据;❑Classify(分类):训练和测试关于分类或回归的学习方案;❑Cluster(聚类):从数据中学习聚类;❑Associate(关联):从数据中学习关联规则;❑Select attributes(属性选择):选择数据中最相关的属性;❑Visualize(可视化):查看数据的交互式二维图像。
3.1.2载入、编辑数据标签栏下方是载入数据栏,功能如下:❑Open file:打开一个对话框,允许你浏览本地文件系统上的数据文件(.dat);❑Open URL:请求一个存有数据的URL 地址;❑Open DB:从数据库中读取数据;❑Generate:从一些数据生成器中生成人造数据。
WEKA使用教程目录1. 简介2. 数据格式3.数据准备4. 关联规则(购物篮分析)5. 分类与回归6. 聚类分析1. 简介WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过/ml/weka得到。
同时weka也是新西兰的一种鸟名,而WEK A的主要开发者来自新西兰。
WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。
如果想自己实现数据挖掘算法的话,可以看一看weka的接口文档。
在weka中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。
2005年8月,在第11届ACM SIGKDD国际会议上,怀卡托大学的Weka小组荣获了数据挖掘和知识探索领域的最高服务奖,Weka系统得到了广泛的认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今最完备的数据挖掘工具之一(已有11年的发展历史)。
Weka的每月下载次数已超过万次。
--整理自/computers/common/info.asp?id=293042. 数据格式巧妇难为无米之炊。
首先我们来看看WEKA所用的数据应是什么样的格式。
跟很多电子表格或数据分析软件一样,WEKA所处理的数据集是图1那样的一个二维的表格。
图1 新窗口打开这里我们要介绍一下WEKA中的术语。
表格里的一个横行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录。
竖行称作一个属性(Attrbute),相当于统计学中的一个变量,或者数据库中的一个字段。
这样一个表格,或者叫数据集,在WEKA看来,呈现了属性之间的一种关系(Rela tion)。
图1中一共有14个实例,5个属性,关系名称为“weather”。
WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。
图1所示的二维表格存储在如下的ARFF文件中。
这也就是WEKA自带的“weather.arff”文件,在WEK A安装目录的“data”子目录下可以找到。
Code:% ARFF file for the weather data with some numric features%@relation weather@attribute outlook {sunny, overcast, rainy}@attribute temperature real@attribute humidity real@attribute windy {TRUE, FALSE}@attribute play {yes, no}@data%% 14 instances%sunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yesrainy,68,80,FALSE,yesrainy,65,70,TRUE,noovercast,64,65,TRUE,yessunny,72,95,FALSE,nosunny,69,70,FALSE,yesrainy,75,80,FALSE,yessunny,75,70,TRUE,yesovercast,72,90,TRUE,yesovercast,81,75,FALSE,yesrainy,71,91,TRUE,no需要注意的是,在Windows记事本打开这个文件时,可能会因为回车符定义不一致而导致分行不正常。
推荐使用UltraEdit这样的字符编辑软件察看ARFF文件的内容。
下面我们来对这个文件的内容进行说明。
识别ARFF文件的重要依据是分行,因此不能在这种文件里随意的断行。
空行(或全是空格的行)将被忽略。
以“%”开始的行是注释,WEKA将忽略这些行。
如果你看到的“weather.arff”文件多了或少了些“%”开始的行,是没有影响的。
除去注释后,整个ARFF文件可以分为两个部分。
第一部分给出了头信息(Head information),包括了对关系的声明和对属性的声明。
第二部分给出了数据信息(Data information),即数据集中给出的数据。
从“@data”标记开始,后面的就是数据信息了。
关系声明关系名称在ARFF文件的第一个有效行来定义,格式为@relation <relation-name><relation-name>是一个字符串。
如果这个字符串包含空格,它必须加上引号(指英文标点的单引号或双引号)。
属性声明属性声明用一列以“@attribute”开头的语句表示。
数据集中的每一个属性都有它对应的“@attribute”语句,来定义它的属性名称和数据类型。
这些声明语句的顺序很重要。
首先它表明了该项属性在数据部分的位置。
例如,“humidity”是第三个被声明的属性,这说明数据部分那些被逗号分开的列中,第三列数据85 90 86 96 ... 是相应的“humidity”值。
其次,最后一个声明的属性被称作class属性,在分类或回归任务中,它是默认的目标变量。
属性声明的格式为@attribute <attribute-name> <datatype>其中<attribute-name>是必须以字母开头的字符串。
和关系名称一样,如果这个字符串包含空格,它必须加上引号。
WEKA支持的<datatype>有四种,分别是numeric-------------------------数值型<nominal-specification>-----分类(nominal)型string----------------------------字符串型date [<date-format>]--------日期和时间型其中<nominal-specification> 和<date-format> 将在下面说明。
还可以使用两个类型“integer”和“real”,但是WEKA把它们都当作“numeric”看待。
注意“integer”,“real”,“numeric”,“date”,“string”这些关键字是区分大小写的,而“relation”“attribute ”和“date”则不区分。
数值属性数值型属性可以是整数或者实数,但WEKA把它们都当作实数看待。
分类属性分类属性由<nominal-specification>列出一系列可能的类别名称并放在花括号中:{<nominal-name1>, <nominal-name2>, <nominal-name3>, ...} 。
数据集中该属性的值只能是其中一种类别。
例如如下的属性声明说明“outlook”属性有三种类别:“sunny”,“ overcast”和“rainy”。
而数据集中每个实例对应的“outlook”值必是这三者之一。
@attribute outlook {sunny, overcast, rainy}如果类别名称带有空格,仍需要将之放入引号中。
字符串属性字符串属性中可以包含任意的文本。
这种类型的属性在文本挖掘中非常有用。
示例:@ATTRIBUTE LCC string日期和时间属性日期和时间属性统一用“date”类型表示,它的格式是@attribute <name> date [<date-format>]其中<name>是这个属性的名称,<date-format>是一个字符串,来规定该怎样解析和显示日期或时间的格式,默认的字符串是ISO-8601所给的日期时间组合格式“yyyy-MM-dd T HH:mm:ss”。
数据信息部分表达日期的字符串必须符合声明中规定的格式要求(下文有例子)。
数据信息数据信息中“@data”标记独占一行,剩下的是各个实例的数据。
每个实例占一行。
实例的各属性值用逗号“,”隔开。
如果某个属性的值是缺失值(missing value),用问号“?”表示,且这个问号不能省略。
例如:@datasunny,85,85,FALSE,no?,78,90,?,yes字符串属性和分类属性的值是区分大小写的。
若值中含有空格,必须被引号括起来。
例如:@relation LCCvsLCSH@attribute LCC string@attribute LCSH string@dataAG5, 'Encyclopedias and dictionaries.;Twentieth century.'AS262, 'Science -- Soviet Union -- History.'日期属性的值必须与属性声明中给定的相一致。
例如:@RELATION Timestamps@ATTRIBUTE timestamp DATE "yyyy-MM-dd HH:mm:ss"@DATA"2001-04-03 12:12:12""2001-05-03 12:59:55"稀疏数据有的时候数据集中含有大量的0值(比如购物篮分析),这个时候用稀疏格式的数据存贮更加省空间。
稀疏格式是针对数据信息中某个实例的表示而言,不需要修改ARFF文件的其它部分。
看如下的数据:@data0, X, 0, Y, "class A"0, 0, W, 0, "class B"用稀疏格式表达的话就是@data{1 X, 3 Y, 4 "class A"}{2 W, 4 "class B"}每个实例用花括号括起来。
实例中每一个非0的属性值用<index> <空格> <value>表示。
<index>是属性的序号,从0开始计;<value>是属性值。
属性值之间仍用逗号隔开。
这里每个实例的数值必须按属性的顺序来写,如{1 X, 3 Y, 4 "class A"},不能写成{3 Y, 1 X, 4 "class A"}。
注意在稀疏格式中没有注明的属性值不是缺失值,而是0值。
若要表示缺失值必须显式的用问号表示出来。
Relational型属性在WEKA 3.5版中增加了一种属性类型叫做Relational,有了这种类型我们可以像关系型数据库那样处理多个维度了。