[連載]フリーソフトによるデータ解析・マイニング第22回
WEKAのExperimentとKnowledgFlow環境
1.Experimentの環境
先月号では、複数のデータセットに複数のデータマイニングの方法を用いて比較分析を行った。WEKAのExplorer環境では、このような作業は、各々のデータに一つひとつの方法を対応させるので効率が悪い。WEKAでは、複数のデータと方法をまとめて処理するExperimenter環境を提供している。その操作の手順を次に説明する。
@ WEKAのGUIの[Experimenter]ボタンを押し、Experiment環境パネルを開く。
図1 WEKAのGUI

A Experiment Environmentパネルの[New]ボタンを押す。
図2 Experiment Environmentパネル

B 条件を設定し、データファイルと分析手法を読み込む。
図3 複数のデータと方法を読み込んだ画面

C Runタブをアクティブ化し、[Start]ボタンを押し、計算を開始させる。
図4 計算が終了した画面

D 計算が終了したら、Analyseタブをアクティブ化し、[Experiment]ボタンをクリックする。
図5 Analyseタブの画面

E [Perform test]ボタンを押すとTest outputのウィンドウに結果が返される。
図6 実行結果の画面

さらに、図7のような操作を行うと、図8のような独立したパフォーマンスの結果を返すウィンドウが開かれる。
図7 パフォーマンスの結果画面

図8 独立したパフォーマンスの結果画面

Test outputのウィンドウに返された結果は、[Save output]ボタンを用いて、保存することができる。
2.KnowledgeFlowの環境と機能
(1) KnowledgeFlowとは
WEKAのGUI(図1)には、KnowledgeFlowというボダンが設けられている。KnowledgeFlowは、データの処理システムを、コンポーネント(component、構成要素・部品)アイコンを組み合わせて自由に構築するグラフィカル環境である。
KnowledgeFlowは発展途上であり、WEKAの”classifiers”と”filters”のすべての機能が実装されているが、”clustering”の機能の実装は若干遅れている。その一方、Explorerにない機能を持っている。
WEKAのExplorerでは、データのバッチ処理しかできないが、KnowledgeFlowではバッチ処理と段階的な処理を行うことができる。KnowledgeFlowは次のような特徴を持っている。
² データの処理の流れが直感的
² データの段階的処理とバッチ処理
² データの平行処理
² filtersの連結
² 交差確認の結果の視覚化
² 段階的な処理の視覚化
(2) KnowledgeFlowの起動と基本操作
WEKAのGUIの[KnowledgeFlow]ボタンを押すと図9のようなKnowledgeFlow 環境のパネルが開かれる。
図9 KnowledgeFlow 環境パネル画面

KnowledgeFlow 環境パネルには、複数のタブ(Evaluation、Visualization Filters、Classifiers、Clusterers、DataSources、DataSinks)があり、各タブをクリックするとパネルにコンポーネントアイコンが現れる。その中の一つひとつのアイコンがデータ処理およびマイニングシステムを構築する部品である。
パネルの下部にKnowledgeFlow Layoutというカンバス(canvas)がある。使用者は、コンポーネントアイコンをカンバス上で連結させ、データ処理とマイニングのシステムを構築する。
データの処理とマイニングを行うためには、まずデータを読み込まなければならない。
データの読み込みは、まずDataSourcesタブをアクティブ化する。DataSourcesには、WEKAが扱っているデータファイル形式のコンポーネントがある。コンポーネントのアイコンを左クリックするとコンポーネントが選定される。コンポーネントが選定された状態で、マウスポインタをカンバスに移し、左クリックするとコンポーネントがカンバスに取り込まれる(図10)。取り込まれたアイコンは、マウスの左ボタンで自由に配置位置を換えることができる。アイコンを右クリックするとアイコンを操作するメニューが開かれる(図11)。操作メニューの項目を表1に示す。
図10 コンポーネントを選定した画面

図11 カンバスにコンポーネントを取り込んだ画面

表1 dataアイコンの操作メニュー
|
Edit |
||
|
|
Delete |
アイコンの削除 |
|
|
Configure |
データを読み込むなど |
|
Connections |
||
|
|
dataSet |
アイコン連結と切断 |
|
|
instance |
アイコン連結と切断 |
|
Actions |
||
|
|
Start loading |
データを流す |
データは、dataアイコンの操作メニューのConfigureを左クリックし、データが置かれているフォルダを開きデータファイルをクリックすることで読み込まれる。
上記の操作で、データが正しく読み込まれているかを確認するため、Visualizationタブをアクティブ化し、テキストの表示コンポーネントTextViewerをカンバスに取り込み、図12のようにコンポーネントアイコンを連結する。
アイコンの連結は、基本的にはデータの流れの先後の順に行う。アイコンを右クリックするとアイコンの操作メニューが開かれる。メニューのConnectionの中のdataSetを選択し、マウスのポインタを連結すべきアイコンまで引き、つなぎ合うことでアイコン同士が連結される。連結の切断は、アイコン操作のメニューを開き、連結されている項目を左クリックする。
アイコンの連結操作が終わったら、dataアイコンの操作メニューを開き、Actions下のStart loadingを左クリックするとデータが流される。TextViewerアイコンの操作メニューを開き、Show resultを左クリックすると、読み込んだデータを返すテキストウィンドウが開かれる。
図12 2つのアイコンを連結した画面

読み込んだデータは、図13のようにVisualizationタブの中のDataVisualizer、ScatterPlotMatrix、AttributeSummarizerのコンポーネントを用いて、散布図、対散布図、ヒストグラムを作成することができる。
図13 作図アイコンを連結した画面

図13のようにアイコン同士の連結が終わったら、dataアイコンのメニューのStart loadingをクリックし、作図アイコンのメニューのShow plotをクリックすると図が返される。例として、ScatterPlotMatrixによる対散布図の画面を図14に示す。散布図のマークのサイズや色などは開かれているVisualizeのパネルで調整することができる。
図14 対散布図のパネル画面

(2) タブの機能
@ Evaluationタブ
Evaluationタブは、データセットの分割と作成(TrainingSetMaker、TestSetMaker、CrossValidationFoldMaker、
TrainTestSplitMaker、ClassValuePicker、ClassValuePiker)、結果の表示など
(ClassifierPerformanceEvaluator、IncrementalClassifierEvaluator、PredictionAppender)に関するコンポーネントにより構成されている。
A Visualizationタブ
Visualizationタブには、データの表示(TextViewer)、データの図示(DataVisualizer、ScatterPlotMatrix、AttributeSummatizer)、解析結果の図示(GraphViwer、StripChart)などのコンポーネントが実装されている。
B FiltersタブとClassifiersタブ
WEKAのExplorerの“filters”と“classifiers”のすべて機能のコンポーネントが実装されている。
C Clusterersタブ
Explorerの“Clusterers”の一部のコンポーネントが実装されている。
D DataSourcesタブ
Explorerで扱えるすべてのデータ形式のコンポーネントが実装されている。
3.KnowledgeFlowの構築の例
通常のデータ処理及びマイニングを行う際のデータの流れは、データの読み込み(DataSources)→データの前処理(Filters)→データの処理(Classifiers)→結果の表示と図示(Evaluation)の順になる。次に決定木分析を例としたKnowledgeFlowの構築の例を示す。
例:irisデータを読み込み、交差確認法による決定木(J48)、RandomForestの分析とその結果を図示するシステムを構築する。
手順:
@ DataSourcesタブをアクティブ化し、ArffLoaderコンポーネントをカンバスに取り込む。
A 取り込んだArffLoaderアイコンの操作メニューのConfigureを左クリックし、データの置かれているフォルダを開き、iris.arffを読み込む。
B Evaluationタブをクリックし、交差確認法のコンポーネントCrossValidation FoldMakerと、分類の精度に関するパフォーマンス環境のコンポーネントClassfier PerformationEvaluationをカンバスに取り込む。カンバス上のCross ValidationFoldMakerアイコンの操作メニューのConfigureをクリックし、n重交差確認のnを指定することができる。デフォルトではn=10になっている。
C Classifiersタブをアクティブ化し、J48、RandomForestをカンバスに取り込む。
D 結果の観測のため、Visualizationのタブをアクティブ化し、TextViewerとGraphViewerをカンバスに取り組み、図15のようにアイコンを連結する。
図15 アイコンを連結した画面

上記の作業が終わったら、ArffLoaderの操作メニューのStart Loadingを左クリックすると解析が始まり、計算が終了次第、その結果が最終端末のコンポーネントに記録される。
カンバス上のJ48と連結されているText Viewerの操作メニューのShow resultsをクリックするとJ48の結果のテキストパネルが開かれる。ここではn重交差確認(n=10)を行ったので、決定木が10個作成され、パネルの左のResult listにリストアップされている。その中の任意の1行をクリックするとそれに対応する結果が右のTextウィンドウに表示される(図16)。
GraphViewerのメニューのShow resultsをクリックするとGraph listのパネルが開かれる。さらにGraph listの中の項目をクリクすると、図18のようなTree Viewウィンドウに決定木のグラフが返される。
アイコンClassfierPerformationEvaluationと連結されているTextViewerアイコンの操作メニューのShow resultsをクリックすると、パフォーマンスの結果のウィンドウが開かれる(図18)。
図17 決定木のテキスト結果画面

図18 決定木の画面

図19 パフォーマンスのテキスト画面

構築したデータマイニングのKnowlgdeFlowは、KnwelgdeFlow Environmentパネルの左上のフロッピーアイコンを用いて保存することができる。