データマイニングのための柔軟なデータ取得、操作を支援するAPIの設計 2003年2月 伊藤陽生
背景 データマイニング 大量に蓄積されたデータを解析し、その中に潜む項目間の相関関係やパターンなどを探し出そうとする事 データの蓄積、抽出のみを目的とした従来のSQLデータベースでは困難なデータ操作の必要性が生じる
背景 SQLが得意な記述、CやJavaが得意な記述のどちらもサポートするようなプログラム記述パターンを提供(図で説明したい)
研究内容 データマイニングシステム構築を支援するAPIの、 設計 Javaによる実装 データ解析アプリケーションの作成による評価
データの操作 データテーブルクラス 表をJavaのオブジェクトで表現 自分自身の情報を返すメソッド データ操作メソッド DataTable select(Filter f) 抽出 DataTable sortBy(String column,Order o) 整列 DataTable groupBy(String column,Integration i) 要約 DataTable join(DataTable right,JoinFilter jf) 結合
設計 DataTable=Table+Columns Columns=Column[] Column Table=Record List Record=Element[] Element
設計 <<interface>> Filter DataTable use Order <<interface>> Integration create use <<interface>> JoinFilter <<interface>> DtWriter <<interface>> DtReader
データの操作 操作インタフェース データテーブル操作メソッドの引数として使用 具体的な処理方法をデータテーブルに教える DataTable select(Filter f) 抽出 DataTable sortBy(String column,Order o) 整列 DataTable groupBy(String column,Integration i) 要約 DataTable join(DataTable right,JoinFilter jf) 結合
<<interface>> 整列の例 NumberOrder DataTable select sortBy groupBy join 数値順整列 <<interface>> Order getColumns compare StringOrder 辞書順整列 use : implements
実装 データの基本操作パッケージ 操作インタフェースの実装 頻繁に行なわれるであろう操作を予め定義
実装 (基本操作一覧表)
データの取得 データテーブルを作成するクラス J2SDKと連携することで、多用な情報源からデータの取得が可能に CSV PostgreSQL MicrosoftAccess J2SDKと連携することで、多用な情報源からデータの取得が可能に
データの出力 標準出力 Javax.swing.Jtableへの出力 DataTable dt = …; System.out.println(dt); Javax.swing.Jtableへの出力 GUIアプリケーション内に自由に配置
使用例 (スクリーンショットを貼る)
まとめ データマイニング概念の普及 本研究で作成したAPIでは、 マイニングシステム構築の基盤を提供 柔軟なデータ操作、データ取得 多くのマイニングアプリケーションが存在 本研究で作成したAPIでは、 マイニングシステム構築の基盤を提供 柔軟なデータ操作、データ取得 そして多用な出力チャネルを持てる
今後の課題 実行速度の改善 データ操作メソッドの実装最適化 内部アルゴリズムの改善 インスタンス生成回数の低減