Weka--ARFF數據格式介紹和轉換


簡介

Weka 是一個由Java編寫的開源免費的數據挖掘工具,全稱懷卡托智能分析環境(Waikato Environment for Knowledge Analysis),它是基於JAVA環境下開源的機器學習(machine learning)以及數據挖掘(data mining)的軟件,運行該工具需要安裝Java環境。

Weka同時提供了命令行和GUI兩種使用方式方式,前者效率更高,后者使用更簡單。

軟件安裝

1. 下載並安裝Java環境

參見教程:http://www.runoob.com/java/java-environment-setup.html

2.安裝Weka

Windows上下載.exe安裝后直接雙擊運行安裝

官方網址:https://www.cs.waikato.ac.nz/ml/weka/

GUI

數據集介紹

在Weka中,一個數據集由 weka.core.Instances 實現。數據集中每個樣例是由weka.core.Instance實現。每個樣例由多個屬性組成,其中簡單的屬性類型見表1。

表1:Weka數據集的簡單屬性
屬性類型 描述 樣例
列表型(nominal) 一組值得預定義列表 {1,2,3}, {good, bad}
數值型(numeric) 一個實數或者整數 12, 2.3, 50
字符串(string) 一個任意長的字符序列,包含在雙引號內 "better", "worse"

除了簡單屬性,Weka還有附加類型的屬性date和relational,將會在之后介紹。

Weka的數據集存儲在ARFF格式的文件中,下面是一個ARFF文件的格式說明:

% This is a toy example, the UCI weather dataset.
% Any relation to real weather is purely coincidental.

@relation golfWeatherMichigan_1988/02/10_14days 
@attribute outlook {sunny, overcast, rainy}
@attribute windy {TRUE, FALSE}
@attribute temperature real
@attribute humidity real 
@attribute play {yes, no}

@data
sunny,FALSE,85,85,no
sunny,TRUE,80,90,no
overcast,FALSE,83,86,yes
rainy,FALSE,70,96,yes
rainy,FALSE,68,80,yes 

以%開頭的兩行是注釋,主要介紹該數據集的來源,內容和意義等;

@relation 是該數據集的關系名稱;

@attribute 是該數據集每個實例的屬性說明,上例中共有5個屬性,其中3個列表型屬性,2個數值型屬性,沒有字符串型屬性;

@data 下面行就是數據集內容,每行代表一個實例,每個實例由5個之前定義過的屬性。

在Weka中,默認將每個樣例的最后一個屬性認為是類別/標記 屬性,在上例中,類別屬性是play,通過前4個屬性來判斷play是yes或者no。當然也可以通過參數 -c 來自己指定類別屬性。Weka中屬性的索引從1開始編號,例如,-c 1 將指定第一個屬性即outlook為類別屬性。

通過 weka.core.Instances 類可以統計 ARFF數據集的一些基本信息,命令行參數為:

java weka.core.Instances weather.arff

結果如下:

可以看到該數據集的名稱,樣例數目,屬性數目,每個屬性的類型,有誤屬性丟失等統計信息。

weka.core提供了一些別的有用的程序,如converters.C45Loader 和 converters.CSVLoader 能夠分別導入C45數據集和CSV格式的數據集並將其轉換為ARFF格式,命令如下:

java weka.core.converters.CSVLoader data.csv > data.arff
java weka.core.converters.C45Loader c45_filestem > data.arff

 未完待續...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM