Weka项目中的ARFF文件结构解析
2013-10-30 20:11
246 查看
Weka作为数据挖掘开源项目中的经典,很多算法和数据的组织结构是值得学习的。Weka里面大量使用了一种叫做arff(Attribute-Relation File Format )的数据文件结构。这种arff文件内部结构很简单,主要是测试算法使用的轻量级的数据文件结构。OpenMiner继承Weka的风格,也打算支持arff文件格式,并且作为前期的挖掘算法测试数据来源。下面是我从网上找到的关于这种文件格式的网址http://www.cs.waikato.ac.nz/~ml/weka/arff.html
ARFF文件格式很简单,从Weka里面都可以找到一些它的例子:
@relation weather
@attribute outlook {sunny, overcast, rainy}
@attribute temperature real
@attribute humidity real
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
不用多说,直接看,大致都能明白这个数据文件的意思了。
在读取arff文件的时候,有点是需要注意到的。在Java中,InputStream,DataInputStream这些类都不支持mark和reset,也就是说不能倒回去再读。而ByteArrayInputStream支持mark和reset,但是arff文件作为一个数据源文件,可能包含几十MB,甚至是几百MB。。。的数据,如果全部先读进内存,再从内存中解析,恐怕并不可行。还好Java中实现了BufferedInputStream,它可以预读8192个字节的缓冲,内存中的读完后,再从输入流中继续读8192个字节的缓冲,并且支持mark和reset,这就是我在Java里面自己实现解析arff时候的主要技术问题所在。至于字符串的解析就很简单了。
ARFF文件格式很简单,从Weka里面都可以找到一些它的例子:
@relation weather
@attribute outlook {sunny, overcast, rainy}
@attribute temperature real
@attribute humidity real
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
不用多说,直接看,大致都能明白这个数据文件的意思了。
在读取arff文件的时候,有点是需要注意到的。在Java中,InputStream,DataInputStream这些类都不支持mark和reset,也就是说不能倒回去再读。而ByteArrayInputStream支持mark和reset,但是arff文件作为一个数据源文件,可能包含几十MB,甚至是几百MB。。。的数据,如果全部先读进内存,再从内存中解析,恐怕并不可行。还好Java中实现了BufferedInputStream,它可以预读8192个字节的缓冲,内存中的读完后,再从输入流中继续读8192个字节的缓冲,并且支持mark和reset,这就是我在Java里面自己实现解析arff时候的主要技术问题所在。至于字符串的解析就很简单了。
相关文章推荐
- Weka项目中的ARFF文件结构解析
- Weka项目中的ARFF文件结构解析
- iOS开发中常见的项目文件与MVC结构优化思路解析
- android项目结构解析和重要文件
- 开源Registry项目Harbor源代码结构解析
- 深入解析PE文件结构之导出表获取
- Android 项目文件结构
- WEBUS2.0 In Action - 解析索引文件结构(2)
- 我的关于编程中调用系统库的过程始终不理解???这篇文件解析了pe文件的结构
- 解析Cloudera Manager内部结构、功能包括配置文件、目录位置等
- Atitit.Guibutton与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数.
- Spingboot项目实现登陆(H2DB和图片验证码)+上传文件+解析EXCEL
- java Class文件内部结构解析
- 第三章数程序设计初步--控制结构综合项目4-1文件操作初体验练习1从文件读取数据
- 1.初探vs项目文件结构
- stm32存储器结构、 IAR 开发环境下的.icf 文件、.map文件 解析
- 视频文件头解析--MP4-层结构解析
- android学习笔记三 ---- android项目文件结构介绍
- xml文件解析成树状结构