Weka

Weka (Waikato Environment for Knowledge Analysis) は、ニュージーランドのワイカト大学で開発した機械学習ソフトウェアで、Javaで書かれている。GNU General Public License でライセンスされているフリーソフトウェアである。

概要 

Wekaはデータ解析とのための視覚化ツールとアルゴリズムの集合体であり、その機能を容易に扱えるグラフィカルユーザインタフェースを備えている。当初のWekaはJavaではなくTcl/Tkでフロントエンドを構築し、（多くはサードパーティ製の）他のプログラミング言語で書かれたモデリングアルゴリズムを実装し、C言語で書かれたデータプリプロセッサとMakefileベースの機械学習システムを備えていた。その当初のバージョンは主に農業分野のデータを分析するツールとして設計されたが、1997年に開発が始まったJavaベースのバージョン (Weka 3) は様々な分野で活用されており、特に教育と研究で使われている。Wekaには次のような利点がある。

 GNU General Public License でライセンスされたフリーソフトウェアである。
 完全にJavaで実装されているので、ほとんどのプラットフォームで動作する。
 データプリプロセッサとモデリング技法を包括的に取り揃えている。
 GUIを備えているので使いやすい。

Wekaは、データプリプロセッシング、クラスタリング、統計分類、回帰分析、視覚化、特徴選択といった標準的データマイニングタスクをサポートしている。Wekaの技法は全て、データが単一のフラットファイルか関係（データベース）で与えられ、各データポイントは固定個の属性を持つものと想定している（通常、数値属性と名義属性を使用するが、他の属性型もサポートしている）。Java Database Connectivity を使ってSQLデータベースへのアクセスを提供しており、データベースへのクエリの結果を処理できる。複数の関係データベースからのデータマイニングはできないが、相互にリンクしたデータベースのテーブル群を単一のテーブルに変換してWekaで処理できる形にするソフトウェアが別途用意されている。Wekaが内蔵するアルゴリズムで対応できない重要な分野として、シーケンスモデリングがある。

Wekaの主たるユーザインタフェースは Explorer だが、同じ機能はコンポーネントベースの Knowledge Flow からもコマンドラインからもアクセスできる。また、同一データセットに対して複数のアルゴリズムを適用して得られた予測を体系的に比較評価できる Experimenter も備えている。

Explorer には、Wekaの主要コンポーネントへのアクセスを提供する次のようなパネルがある。

 Preprocess パネル - データベース、CSVファイルなどからデータをインポートし、filtering と呼ばれるアルゴリズムでプリプロセッシングする。それらフィルタ群は（例えば数値属性を離散的な属性に変換するなど）データを変換し、特定の基準に従ってインスタンスと属性を削除可能にする。予測モデルの正確度を評価したり、誤った予測やROC曲線を視覚化したり、
 Classify パネル - Wekaで classifiers と呼んでいるアルゴリズム（統計分類や回帰分析アルゴリズム）をデータセットに適用でき、決定木などでモデル自身を視覚化したりできる。
 Associate パネル - アルゴリズムにアクセスし、データの属性間の重要な相互関係を特定しようと試みる。
 Cluster パネル - クラスタリング技法（単純名K平均法アルゴリズム）にアクセスする。複数の正規分布が混合したものを学習するEMアルゴリズムも実装している。
 Select attributes パネル - データセット内で最も予言的な属性を識別するアルゴリズム群を提供する。
 Visualize パネル - 散布図行列を表示し、特定の散布図を選択して拡大し、さらに様々な選択オペレータを使って分析できる。

ARFFファイル 
Attribute Relationship File Format (ARFF) はWekaが使用するテキストファイルフォーマットで、このフォーマットでデータベースにデータを格納する。次の例は "weather" 関係データベース用のARFFファイルのヘッダ部を示したものである。

 @relation weather
 @attribute outlook {sunny, overcast, rainy}
 @attribute temperature real
 @attribute humidity real
 @attribute windy {TRUE, FALSE}
 @attribute play {yes, no}
 
ARFFファイルはヘッダ部とデータ部で構成される。ヘッダ部の先頭行には関係名がある。その後 "@attribute" で属性を定義している。各属性は一意な名前と型が対応している。型としては、数値型、名義型、文字列型、日付型がある。デフォルトのクラス属性はリストの最後のアイテムである。ヘッダ部にはコメント行も書くことができ、行頭に '%' を書く。データ部は "@data" で個々のデータを記述し、コンマで区切って属性を列挙する形で1行に1データを記述する。

歴史 
1993年、ニュージーランドのワイカト大学で最初のバージョンの開発が始まった。Tcl/Tk、C、Makefile などで構成されていた。1997年、Javaで一から書き直すことを決め、モデリングアルゴリズムもJavaで実装することとした。

2005年、SIGKDDの Data Mining and Knowledge Discovery Service Award を受賞。2006年、Pentahoがビジネスインテリジェンス向けにWekaの独占ライセンスを取得し、同社のビジネスインテリジェンス向けスイートのデータマイニングおよび予測分析コンポーネントとして搭載した。

脚注

関連項目 
 数値解析ソフトウェア

外部リンク 

一般
 Weka Project home page ワイカト大学（ニュージーランド）
 Weka Project home page SourceForge.net
 Wiki with FAQs, HOWTOs, code-snippets, etc.
 Community documentation at Pentaho
 List of algorithms compared to other DM Tools

応用例
 頭字語識別
 マイクロアレイデータからの遺伝子選択による癌の分類
 金属配位をQSPRで分析
 植物や病原体のESTの分類
 その他の応用

拡張版
 Weka4WS - イタリアのカラブリア大学で開発したグリッド対応版のWeka

機械学習
データマイニング
統計処理ツール
オープンソースソフトウェア
フリー人工知能アプリケーション