2004-11-20

ベイジアンネット

Javaでベイジアンネットワークを扱うライブラリを探している。
自分のソフトにベイズ統計の処理を組み込む必要があるので。

ベイジアンネット(Bayesian Network)っていうのは,条件付確率の因果関係をグラフィカルな有向非循環グラフ構造で表したもの。有向ってのはリンクが矢印で向きがついてるという意味で,非循環とはグラフ構造にループがないってこと。

ベイジアンネットは,トマス・ベイズさんが発案したベイズ理論をもとにしている。詳しくは以下を参照。

グーグル、インテル、MSが注目するベイズ理論 - CNET
 一般向け解説。ベイズさんの顔が拝める。

君はベイジアン・ネットワークを知っているか? - @IT
 
研究の最前線についての解説アリ。MS Officeのイルカ君の悲劇も紹介。


ベイジアンネットのライブラリだけど,自分は今までMSBNを使ってました。

Microsoft Bayesian Network Editor
 マイクロソフトリサーチのAdaptive Systems and Interaction Groupが作ったもの

こ れはWindowsのCOMを使ってます。Windows + Visual Studioなら,わりと使いやすい。ベイジアンネットのデータをXMLで出力してくれる。ライブラリだけじゃなくてベイジアンネットの編集アプリもつい てるので(っていうかそっちがメイン),デバッグもやりやすい。関係ないけど研究のときにこれのおかげですごい助かった。Microsoftありがとう!


しかしJavaでやるならJava純正が良いだろうってことで次のようなのを見つけました。

Bayesian Network tools in Java (BNJ)
 オープンソースプロジェクト。sourceforgeで開発中。これが一番有望かな。

Classifier4J
 こちらもオープンソース。テキスト分類のソフトウェアで,Javaによるベイジアンネットライブラリを使っている。

JavaBayes, Bayesian Networks in Java
カーネギーメロン大学の人が作ってるライブラリ。ロゴが面白いな。

Netica-J, for Programming Bayesian Networks in JAVA
 こっちはJava純正じゃないけど,JavaでベイジアンネットエンジンにアクセスできるAPI。
 フリーバージョンはモデルサイズの制限がつく。


他のライブラリはまた今度。っていうか探してたらこんなリストを見つけたよ! 俺探す必要ないじゃん。

Manageability - Open Source Probabilistic Networks Written In Java
 Javaによるオープンソースの確率ネットワークソフトのリスト。充実してるし解説もしっかり書いてある。

Software Packages for Graphical Models / Bayesian Networks
 ベイジアンネットの各種パッケージの比較。比較項目が専門的で役に立ちそう。

Google Directory
 グーグルディレクトリのマシンラーニングソフトウェアのページ。


これから少しずつ試していきます。

Google Deskbar Help

Google Deskbar Help

Google DeskbarのAPIが公開された模様。

上のページではこれを使ったPlug-inの例として,
  • ハードディスクのプレイリストを検索・演奏
  • テキストボックスで数式計算
  • デスクバーからインスタントメッセージを送信
なんてのを挙げてます。

3番目の「インスタントメッセージ送信」ってのが怪しい。
Googleがインスタントメッセンジャを作ってるって噂があったけど,それを意識してんのかな。1番目の「ハードディスクのプレイリスト」を検索ってのもGoogle Desktop Searchとの連携を考えてるんでしょう。
なんか知らぬ間にGoogleに囲い込まれてる感じ。

自分はDeskbarは結構気に入っているので,こういう遊べるSDKがリリースされるのはうれしい。だけど.NET Framework使わなきゃならないんだよね。.NETは良く知らないけど,これを期に勉強しなきゃだな。

関連リンク
Google Takes Another Step Toward Becoming Development Environment



Blogはじめました

Blogってのをはじめてみました。
基本的に自分用のメモしか置かないんで,他の人にはつまらないかも。