[連載] フリーソフトによるデータ解析・マイニング 第20

WEKAと樹木モデル

 


1WEKAとは

樹木モデルに関するアルゴリズムは多く提案されているが、RにはCARTのファミリーの一族treerpartrandomForest以外には見当たらない。樹木モデル(決定木)の話題で欠かせないのはC4.5のアルゴリズムである。そこで、本稿では、C4.5のアルゴリズムが実装されているデータマイニングのフリーソフトWEKAを紹介する。

WEKAは、ニュージーランドのワイカト大学(University of Waikato) Ianh. WittenEibe. Frankを中心とした機械学習の研究者によって開発され続けている、Java言語によるオープンソースのデータマイニングのフリーソフトである。実は、WEKAはニュージーランドに生息し、飛ぶのが苦手であるが、探究心が非常に強い鳥の名前である。

ソフトWEKAに関する1次情報は、次のページから入手できる。

http://www.cs.waikato.ac.nz/~ml/WEKA/

上記のサイト、あるいは次のサイトからコンピュータのOS(WindowsMacLinuxなど)にマッチしたWEKAを入手することができる。

http://prdownloads.sourceforge.net/WEKA/WEKA.ppt

使用しているマシンにJava言語がインストールされていない場合は、Javaが同梱されているバージョンを選んだ方がよい。

 WEKAで扱っているデータマイニングのアルゴリズムの基礎に関する本としては、ソフトの開発者の著書(参考文献[1])がある。

WEKAは、データの前処理、分類と予測、クラスタリング、相関ルール、視覚化に関するアルゴリズムの集合体である。

WEKAでは、データセットの中の列(変数)属性(attribution)、行(個体)インスタンス(instance)、特定のタスクを実行するアルゴリズムの集まりをスキーム(scheme)、判別・分類を行うスキームを分類器(classifier)、樹木モデルを決定木(decision tree)と呼ぶ。

本稿で用いたWEKAWindows用のバージョン3-4-3である。

 

2WEKAの基本操作

WEKAのダウンロードとインストールの手順は紙面の都合により割愛する。

WEKAを起動すると図1のようなGUI画面が開かれる。GUIの鳥がWEKAである。GUIの下部には4つのボタンがある。それぞれのボタンを押すとデータを操作するパネルが開かれる。その主な機能を表1に示す。

 

1 WEKAGUI画面

 

 

1 GUIのボタンの機能

SimpleCLI

コマンドによる操作環境

Explorer

メニュー選択型の操作環境

Experimenter

学習スキームの間の統計検定などを行う環境

KnowledgeFlow

データ処理・マイニングのプロセスをアイコンで連結してマイニングを行うGUI環境

 

WEKAを扱っている書籍 Data Mining”(参考文献[1])ではコマンドラインを用いて解説しているが、本稿ではGUIExplorer環境を用いることにする。WEKAGUIにおける[Explorer]ボタンを押すと図2のパネルが開かれる。

 

2 Explorer画面

 

Explorerパネルの上部には6つのタブが設置されている。WEKAのデータ処理・マイニングに関する機能はこの6つのタブに分類されている。この6つのタブに含まれている機能及び主なスキームを表2に示す。

WEKAは、カンマ区切りのCSV形式、C4.5形式、ARFF形式などを読み込むことができる。 

CSV形式は表計算ソフトExcelでも簡単に作成できる。

ARFF形式のデータファイル概観を示すため、データセットIrisARFF形式の一部分のコピーを図3に例示する。

 

2 WEKA-3-4-4のタブとスキーム

Preprocess

データの選択と修正などのための前処理に関するフィルタ環境で、44種類(supervised 7種類、unsupervised 37種類)のアルゴリズムがある

Classify

分類と予測に関する環境で、71種類(Bayes 7種類、function 12種類、lazy 5種類、meta 23種類、misc 3種類、trees 11種類、rules 10種類)のアルゴリズムがある

Cluster

クラスタに関する環境で5種類のアルゴリズムがある

Associate

相関ルールに関する環境で、3種類のアルゴリズムがある

Select attributes

属性の選択に関する環境で、20種類(Attribute Evaluator 12種類、search Method 8種類)のアルゴリズムがある。

Visualize

データの2次元グラフの環境である

 

3 ARFFファイルの形式

 

ARFFファイルは、データの属性部とデータの部分に分けて記述する。属性の部分は、属性のデータの性質について具体的に記述し、データの部分は属性の順序の順にカンマでデータを区切る。データはローカルディスク、インターネット、データベースから直接読み込むことができる。

 

3WEKAと決定木

WEKAにおける決定木はclassifyのタブの中に分類されている。classifyのタブの中には、分類と回帰に関連するスキームが7つのグループに分けられている。その中のtreesグループの主な決定木を表3に示す。

 

3 WEKAの主な決定木

DecisionStump

決定木の切り株(stump)を生成する

LMT

ロジステックモデルの木を構築する

ID3

ID3アルゴリズムに基づいた未剪定の木を生成する

J48

QuinlanC4.5に基づいた決定木を生成する

NBtree

Naive Bayes分類器による決定木を生成する

RandomForest

Leo Breiman2001年に提案した「ランダム森」のモデルを構築する

RandomTree

属性をランダムに用いた未選定の決定木を生成する

REPTree

Giniと分散の情報を用いた快速決定・回帰木を生成する

 

(1) データを読み込む

Preprocessタブの[Open file]ボタンを押し、データが置かれているフォルダを開き、ファイルを指定して、開かれているパネルの「開く」ボタンを押すとファイルが読み込まれる。WEKAには、幾つかのデータセットがインストールする際に作成されたdataというフォルダに置かれている(例えば、C:\Program Files\Weka-3-4\data)。ここではその中のirisデータセットを用いて説明する。図4にフォルダdataの中のiris.arffを読み込んだパネル画面を示す。

 

4 データセットirisを読み込んだ画面

 

(2)     マイニング方法の選択

 目的に応じて、マイニングタブをクリックし、アクティブ化する。決定木の選択は、Classifyのタブをアクティブ化し、[Choose]のボタンを押し、treesフォルダのリストから1つを選ぶ。ここではJ48を選択する。J48が取り入られている画面を図5に示す。[Choose]ボタンの右側にJ48-***が表示されたら、正常に読み込まれている。

5 J48が読み込まれている画面

 

  J48C4.5WEKAに実装したものである。C4.5では、ゲイン比(gain ratio)を分岐基準としている。ゲイン比は、エントロピーとゲイン値から求められる。

最も簡単なデータの例として、表4のような男女別の意思表示(賛成、反対)に関するデータがあるとする。意思表示の結果を目的・被説明変数、性別を説明変数とする。

 

4 データの例

 

意思表示

賛成   反対

合計

4

3

2

8

合計

10

5

15

 

=

=

=

=

=

=

=

紙面の都合により、ここでは1つの変数(性別)のみのゲイン比を求めた。このように全ての説明変数についてゲイン比を求め、その中で最も大きいゲイン比を持つ「変数」を決定木の分岐に用いる変数の第1候補とする。

 変数が連続の量的データの場合は、群間の平方和が最大になる変数を第1候補とする。

 

(3) 決定木の生成

Classifyパネルの左側のTest optionsの下には、学習データセット(Use training set)、テストデータセット(Supplied test set)、交差確認法(Cross-validation Folds)、データセットの1部分(Percentage split)がある。決定木を求める前に、この中から1つを選択しなければならない。ここでは、学習データセット(Use training set)を指定する。

出力の結果に関しては[More options…]ボタンを押し、開かれる分類器環境(Classifier evaluation)パネルで自由に指定することができる。ここでは図6のように設定し、[OK]ボタンを押す。

 

6 出力の関するオプションパネル

 

ボタン[More options…]の下部の窓には目的変数を指定する。

上記の設定が終ったら、[Start]ボタンを押すとプログラムが実行され、計算結果が返される。その結果の画面を図7に示す。

 

7 J48が実行された画面

 

パネルの右側のClassifier outputの下の窓には決定木に関する結果がテキスト形式で出力される。結果は、用いたデータに関する情報、決定木のルール、決定木生成に関する情報の要約、正・誤判別の行列(Confusion Matrix)の順になっている。出力される結果は、分類器環境パネルの設定に依存する。決定木のルール画面コピーを図8に示す。

 

図8 テキスト結果のウインドウ

 

パネルの左下部のResult list(right-clickfor options)の下の窓に行ったマイニングの結果のリスト返される。リストの項目を右クリクすると図9のようなメニューが開かれる。

 

図9 結果の表示リスト

 

メニューの中のView in separate windowを左クリックすると操作パネルと分離されたテキスト結果のウインドウが開かれる。

メニューリストの中のVisualize treeを左クリクすると生成した木のグラフがTree viewウインドウで作成される。マウスポインタを木のグラフに合わせ、左ボタンを押したまま移動することで自由にグラフの位置を変えることができる。

Tree viewウインドウの空白部分を右クリックすると図10に示すような、グラフの配置スタイルや文字列のサイズを調整するメニューが開かれる。

 

10 決定木のグラフウインド

 

(4) パラメータの調整

Classifyパネルの[Choose]ボタンの右にある文字列の窓をクリックするとその方法のオプションパネルが開かれる。図11J48のオプションパネルを示す。

 

11 J48のオプションパネル

 

返されたJ48の決定木は、開かれているパネルに示されている条件の下で生成されている。表5にパネルのパラメータを簡潔に説明する。

 

5 J48のパラメータ

binarySplits

名義(nominal)尺度の変数を2分岐するか(True)しないか(False)の指定

confidence

Factor

剪定のための信頼要因。値が小さいほどより多く剪定される

debug

コンソールに返す情報をコントロールする

minNumObj

葉における最少の個体数

numFolds

データを分割する組数。1組をREP(reduced-error pruning)という剪定に、その残りを木の生成に用いる

reducedError

Pruning

C4.5の剪定の代わりにREPを用いるかどうかの指定

saveInstance

Data

視覚化のために学習したデータを保存するかどうかの指定

seed

REPを行うときに無作為化に用いる種(seed)

subtree

Raising

剪定を行うとき部分木の扱いの指定

unpruned

剪定を行うかどうかの指定

useLaplace

葉の計算はラプラス(Laplace)における平滑に基づくかどうかの指定

 

オプションの設定例として、オプションのminNumObjを4に設定した決定木のグラフを図12に示す。図で分かるように葉の中に含められている個体数が4以下の葉を刈り切った木が出力されている。

 

12 個体数が4以下の葉を切り取ったirisの決定木

 

静岡大学理工学研究科阿部秀尚氏のホームページにWEKAのインストールを含む決定木などに関するパワーポイントの資料が公開されている。2005年2月現在のURLを次に示す。

http://panda.cs.inf.shizuoka.ac.jp/~hidenao/work/weka/

 

参考文献

[1]  I.H. Witten, E. Frank: Data Mining: MORGAN KAUFMANN: ISBN 1-55860-552-5