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

WEKAExperimentKnowledgFlow環境



1Experimentの環境

先月号では、複数のデータセットに複数のデータマイニングの方法を用いて比較分析を行った。WEKAExplorer環境では、このような作業は、各々のデータに一つひとつの方法を対応させるので効率が悪い。WEKAでは、複数のデータと方法をまとめて処理するExperimenter環境を提供している。その操作の手順を次に説明する。

 

@           WEKAGUI[Experimenter]ボタンを押し、Experiment環境パネルを開く。

1 WEKAGUI

 

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とは

WEKAGUI(図1)には、KnowledgeFlowというボダンが設けられている。KnowledgeFlowは、データの処理システムを、コンポーネント(component、構成要素・部品)アイコンを組み合わせて自由に構築するグラフィカル環境である。

KnowledgeFlowは発展途上であり、WEKA”classifiers””filters”のすべての機能が実装されているが、”clustering”の機能の実装は若干遅れている。その一方、Explorerにない機能を持っている。

WEKAExplorerでは、データのバッチ処理しかできないが、KnowledgeFlowではバッチ処理と段階的な処理を行うことができる。KnowledgeFlowは次のような特徴を持っている。

²      データの処理の流れが直感的

²      データの段階的処理とバッチ処理

²      データの平行処理

²      filtersの連結

²      交差確認の結果の視覚化

²      段階的な処理の視覚化

 

(2) KnowledgeFlowの起動と基本操作

WEKAGUI[KnowledgeFlow]ボタンを押すと図9のようなKnowledgeFlow 環境のパネルが開かれる。

 

図9 KnowledgeFlow 環境パネル画面

 

KnowledgeFlow 環境パネルには、複数のタブ(EvaluationVisualization FiltersClassifiersClusterersDataSourcesDataSinks)があり、各タブをクリックするとパネルにコンポーネントアイコンが現れる。その中の一つひとつのアイコンがデータ処理およびマイニングシステムを構築する部品である。

パネルの下部に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タブの中のDataVisualizerScatterPlotMatrixAttributeSummarizerのコンポーネントを用いて、散布図、対散布図、ヒストグラムを作成することができる。

 

13 作図アイコンを連結した画面

 

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

 

14 対散布図のパネル画面

 

(2) タブの機能

@ Evaluationタブ

Evaluationタブは、データセットの分割と作成(TrainingSetMakerTestSetMakerCrossValidationFoldMaker

TrainTestSplitMakerClassValuePickerClassValuePiker)、結果の表示など

(ClassifierPerformanceEvaluatorIncrementalClassifierEvaluatorPredictionAppender)に関するコンポーネントにより構成されている。

 

A Visualizationタブ      

Visualizationタブには、データの表示(TextViewer)、データの図示(DataVisualizerScatterPlotMatrixAttributeSummatizer)、解析結果の図示(GraphViwerStripChart)などのコンポーネントが実装されている。

 

B FiltersタブとClassifiersタブ

WEKAExplorerの“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タブをアクティブ化し、J48RandomForestをカンバスに取り込む。

D     結果の観測のため、Visualizationのタブをアクティブ化し、TextViewerGraphViewerをカンバスに取り組み、図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パネルの左上のフロッピーアイコンを用いて保存することができる。