***SCOPEとweka [#u43bdf54]

+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
--その後
+++Explorer を選択
+++Open fileでファイル読み込み
+++J48を選択
+weka サンプル
--サンプル作成 [[参考サイト>http://www.mkc.zaq.ne.jp/eabeh309/weka/index.html#%E5%85%A5%E5%8A%9B%E3%83%87%E3%83%BC%E3%82%BF]]
--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データ
#ref(weka-excel.jpg,,40%);
---メモ Excelで転置
	コピーし、「形式を選択してペースト」で、行を列の入れ替えを選択

***J48 決定木の作成 [#l968669e]
-J48とは [[参考サイト>http://www1.doshisha.ac.jp/~mjin/R/20.pdf]]
--Quinlan の C4.5 に基づいた決定木を生成する
--デフォルトで実行すると、"J48 -C 0.25 -M 2" となっている。
---オプションCについて
	Confidence Factor
	剪定のための信頼要因。値が小さいほどより多く剪定される
---オプションMについて
	miniNumObj
	葉における最少の個体数
+SCOPEのデータ作成方法
--各議員の発言数が異なるため正規化する
---各議員の発言総数で各議員のカテゴリ発言数を割る
---例
	議員Aの発言総数 1000回 議員Aの財務に関連する発言200回 の場合
	議員Aの財務の値は 0.2 となる
--議員名を載せていないバージョン、arff形式のファイル
---&ref(MemberH19.txt);
---"J48 -C 0.25 -M 2" 結果
#ref(weka-1.jpg,,50%);
--議員名を載せているバージョン、arff形式のファイル
---&ref(MemberH19-Otaru.txt);
---"J48 -C 0.25 -M 2" 結果
#ref(weka-member.jpg,,50%);
---"J48 -C 0.25 -M 1" 結果
#ref(weka-otaru-j48-C025-M1.jpg,,50%);
	バッファの保存
#ref(OtaruH19-J48-C025-M1.txt)

***コマンドラインからの操作について [#wfc6f796]

+コマンドラインからサンプル 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 という名前で保存する)