***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 という名前で保存する)