# 分析檔案的第一步
準備輸入檔案是任何分析的第一步,但並不是把想要的研究的資料湊在一起就好,
除了必須依照程式的規格來建構檔案,也因為現實中的資料往往存在著各種瑕疵跟紕漏,
有時候還必須做 data cleaning 方便分析工作的進行,在 data mining 的步驟中,
製作輸入檔案其實是相當耗時費力的工作。
依照不同的分析工具有各自支援的檔案格式,ARFF(attribute-relation file format) 是 Weka 所支持的檔案格式之一,
另外一種則是使用 XML 描述的 XRFF。
“””ARFF 檔案範例
% This is the example file from Weka data dictionary
@relation weather.symbolic
@attribute outlook {sunny, overcast, rainy}
@attribute temperature {hot, mild, cool}
@attribute humidity {high, normal}
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}
@data
sunny,hot,high,FALSE,no
sunny,hot,high,TRUE,no
overcast,hot,high,FALSE,yes
rainy,mild,high,FALSE,yes
rainy,cool,normal,FALSE,yes
“””
ARFF 檔案其實滿直覺的,這邊分成四個部分介紹。
所有用 % 開頭的字句都是註解,用來幫助說明檔案的內容,Weka 處理註解時會直接忽略。
“””format
@relation <relation_name>
“”"
這個要在檔案的最開頭(不算註解)。
雖然叫 relation,不過這個其實只是用來表示這個 data set 的名稱用的。
如果 <relation_name> 的地方有包含空白的話,要把它刮起來(quote)。
ex. @relation “relation name"
“””format
@attribute <attr_name> <attr_type>
“””
緊接在 relation 之後,就是定義資料屬性的地方。
每一行 @attribute 都定義了一個資料表格的 column,由 屬性名稱 加上 屬性型態 來組成。
屬性的順序位置是有差異的,每一個屬性會依序對應到 @data 裏面的資料順序。
屬性的名稱如果有出現空白,要像 relation name 一樣用括號括起來起來。
至於屬性型態的部分,主要有以下幾種:
numeric表示所有的實數ex. @attribute numeric_attr numeric
nominal自己定義的名義屬性,使用 {} 括起來ex. @attribute temperature {hot, mild, cool}
string一串字,在做 text mining 的時候很好用ex. @attribute sentence string
date日期,這類型的屬性可以額外指定日期格式,格式要用 “” 括起來:@attribute <date_name> date <date_format>日期格式則是採用 ISO-8601 的表示法:"yyyy-MM-dd’T'HH:mm:ss"
ARFF 格式裡的最後一個區塊,每一個資料會用一行來儲存。
資料屬性則用 “," 來做分隔,依序對應到檔案上面的 @attribute 屬性標籤,如果有資料跟屬性型態不符時會噴錯。
ex. sunny,hot,high,FALSE,no
另外如果原始資料中有屬性的值是未知的,則可以用問號 ? 來表示。
http://weka.wikispaces.com/ARFF+%28book+version%29