Weka
From Wikipedia, the free encyclopedia
Weka (Waikato Environment for Knowledge Analysis) は、ニュージーランドのワイカト大学で開発した機械学習ソフトウェアで、Javaで書かれている。GNU General Public License でライセンスされている自由ソフトウェアである。
|
Weka 3.5.5 | |
| 開発元 | ワイカト大学 |
|---|---|
| 最新版 | |
| リポジトリ | |
| 対応OS | クロスプラットフォーム |
| 種別 | 機械学習 |
| ライセンス | GNU General Public License |
| 公式サイト | http://www.cs.waikato.ac.nz/~ml/weka/ |
概要

Wekaはデータ解析と予測モデリングのための視覚化ツールとアルゴリズムの集合体であり、その機能を容易に扱えるグラフィカルユーザインタフェースを備えている[2]。当初のWekaはJavaではなくTcl/Tkでフロントエンドを構築し、(多くはサードパーティー製の)他のプログラミング言語で書かれたモデリングアルゴリズムを実装し、C言語で書かれたデータプリプロセッサとMakefileベースの機械学習システムを備えていた。その当初のバージョンは主に農業分野のデータを分析するツールとして設計されたが[3][4]、1997年に開発が始まったJavaベースのバージョン (Weka 3) は様々な分野で活用されており、特に教育と研究で使われている。Wekaには次のような利点がある。
- GNU General Public License でライセンスされた自由ソフトウェアである。
- 完全にJavaで実装されているので、ほとんどのプラットフォームで動作する。
- データプリプロセッサとモデリング技法を包括的に取り揃えている。
- GUIを備えているので使いやすい。
Wekaは、データプリプロセッシング、クラスタリング、統計分類、回帰分析、視覚化、特徴選択といった標準的データマイニングタスクをサポートしている。Wekaの技法は全て、データが単一のフラットファイルか関係(データベース)で与えられ、各データポイントは固定個の属性を持つものと想定している(通常、数値属性と名義属性を使用するが、他の属性型もサポートしている)。Java Database Connectivity を使ってSQLデータベースへのアクセスを提供しており、データベースへのクエリの結果を処理できる。複数の関係データベースからのデータマイニングはできないが、相互にリンクしたデータベースのテーブル群を単一のテーブルに変換してWekaで処理できる形にするソフトウェアが別途用意されている[5]。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データを記述する[6]。