SCOPEとweka

  1. wekaダウンロード http://www.cs.waikato.ac.nz/~ml/weka/
    • linux で weka 起動まで
      	wget http://prdownloads.sourceforge.net/weka/weka-3-6-1.zip
      	unzip weka-3-6-1.zip
      	cd weka-3-6-1
      	java -jar weka.jar
    • その後
      1. Explorer を選択
      2. Open fileでファイル読み込み
      3. J48を選択
  2. weka サンプル
    • サンプル作成 参考サイト
    • SCOPE関連 政治的カテゴリに対する各議員の発言数を入力データとして決定木をつくる場合
      	@relation member
      	
      	@attribute 財務(1010)	Real
      	@attribute 病院事業(1101)	Real
      	@attribute 教育(1120)	Real
      	@attribute 学校(1121)	Real
      	・・・
      	@attribute Member	{memberA,memberB,memberC,・・・}
      	
      	@data
      	0.113389626,0.031363088,・・・,0,memberA
      	0.151930262,0.078455791,・・・,0,memberB
    • 元のExcelデータ
      weka-excel.jpg
      • メモ Excelで転置
        	コピーし、「形式を選択してペースト」で、行を列の入れ替えを選択

J48 決定木の作成

  1. SCOPEのデータ作成方法
    • 各議員の発言数が異なるため正規化する
      • 各議員の発言総数で各議員のカテゴリ発言数を割る
      • 	議員Aの発言総数 1000回 議員Aの財務に関連する発言200回 の場合
        	議員Aの財務の値は 0.2 となる
    • 議員名を載せていないバージョン、arff形式のファイル
    • 議員名を載せているバージョン、arff形式のファイル

コマンドラインからの操作について

  1. コマンドラインからサンプル http://furukawa.sfc.keio.ac.jp/course/DM01/man-w.html
    • コマンドラインからどのように操作するのか?
    • java weka.classifiers.j48.J48
      	 -t : 訓練事例ファイルを指定する。
      	 -T : テスト事例ファイルを指定する。 もしこれを指定しない場合、訓練事例に対して交差検定を行う。
      	 -c : クラス属性を指定する。クラスとして指定したい属性を番号で指定する。その属性が入力ファイル中で1番最初に宣言された属性であれば1、2番目であれば2と指定する。
      	 -x : 交差検定の fold 数を指定する。
      	 -v : 木に対する評価(Error on training data)を表示しない。
      	 -o : 決定木を表示しない。
      	 -d : 生成した木を保存する。他のテスト事例に対して、同じ木を作り直す必要がなくなる。
      	 -l : 保存した木を呼び出す。
      	 -C : pruning confidence (枝刈りの強さを表す数値。値が小さいほど、大きい枝刈りが行われる。 デフォルト値は 25% )の値を指定する。
      	 -M : 葉に最低限含まれなければならないデータ数を指定する。 
    • java weka.classifiers.j48.J48 -t weather.arff -d tree.out
      • (weather.arff を訓練事例として生成した決定木を、tree.out という名前で保存する)