csv形式のデータからarff形式(WEKA用のデータフォーマット)のデータへ変換する。 arffでは、属性の型を指定する必要があり、 d=でカテゴリ型項目を、n=で数値型項目を、s=で文字列型項目を、 そしてD=で日付型項目をそれぞれ指定する。 日付型項目名に%tを付ければ時刻を含んだ値と見なし、付けなければ日付のみの値と見なす。
mcsv2arff n=|d=|D=|s= [T=] i= [o=] [-assert_nullin] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [--help] [--helpl] [--version]
n= |
数値項目名(複数項目指定可)を指定する。 |
d= |
カテゴリ項目名(複数項目指定可)を指定する。 |
D= |
日付(時刻)項目名(複数項目指定可)リストを指定する。 [%t] |
%tを指定しなかった場合:yyyyMMdd |
|
%tを指定した場合 :yyyyMMddHHmmss |
|
s= |
文字列項目名(複数項目指定可)を指定する。 |
T= |
タイトルにする文字列を指定する。 |
「顧客」項目は文字列型、 「商品」項目はカテゴリ型、 「日付」項目は日付型(時刻は含まない)、 そして「数量」と「金額」項目は数値型として、 arff形式のデータへ変換する。
$ more dat1.csv 顧客,商品,日付,数量,金額 No.1,A,20081201,1,10 No.2,A,20081202,2,20 No.3,A,20081203,3,30 No.4,B,20081201,4,40 No.5,B,20081203,5,50 $ mcsv2arff s=顧客 d=商品 D=日付 n=数量,金額 T=顧客購買データ i=dat1.csv o=rsl1.csv #END# kgcsv2arff D=日付 T=顧客購買データ d=商品 i=dat1.csv n=数量,金額 o=rsl1.csv s=顧客 $ more rsl1.csv @RELATION 顧客購買データ @ATTRIBUTE 顧客 string @ATTRIBUTE 日付 date yyyyMMdd @ATTRIBUTE 数量 numeric @ATTRIBUTE 金額 numeric @ATTRIBUTE 商品 {A,B} @DATA No.1,20081201,1,10,A No.2,20081202,2,20,A No.3,20081203,3,30,A No.4,20081201,4,40,B No.5,20081203,5,50,B
時刻を伴うデータはD=日付%tのように%tを加えて指定する。
$ more dat2.csv 顧客,商品,日付,数量,金額 No.1,A,20081201102030,1,10 No.2,A,20081202123010,2,20 No.3,A,20081203153010,3,30 No.4,B,20081201174010,4,40 No.5,B,20081203133010,5,50 $ mcsv2arff s=顧客 d=商品 D=日付%t n=数量,金額 T=顧客購買データ i=dat2.csv o=rsl2.csv #END# kgcsv2arff D=日付%t T=顧客購買データ d=商品 i=dat2.csv n=数量,金額 o=rsl2.csv s=顧客 $ more rsl2.csv @RELATION 顧客購買データ @ATTRIBUTE 顧客 string @ATTRIBUTE 日付 date yyyyMMddHHmmss @ATTRIBUTE 数量 numeric @ATTRIBUTE 金額 numeric @ATTRIBUTE 商品 {A,B} @DATA No.1,20081201102030,1,10,A No.2,20081202123010,2,20,A No.3,20081203153010,3,30,A No.4,20081201174010,4,40,B No.5,20081203133010,5,50,B
marff2csv : 逆変換