データマイニングのための柔軟なデータ取得、操作を支援するAPIの設計

データマイニングのための柔軟
なデータ取得、操作を支援する
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
設計
use
DataTable
use
create
<<interface>>
Filter
<<interface>>
Order
<<interface>>
Integration
<<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) 結合
整列の例
NumberOrder
数値順整列
DataTable
<<interface>>
Order
select
sortBy
groupBy
use
getColumns
StringOrder
辞書順整列
compare
:
:
join
implements
実装

データの基本操作パッケージ


操作インタフェースの実装
頻繁に行なわれるであろう操作を予め定義
実装

(基本操作一覧表)
データの取得

データテーブルを作成するクラス




CSV
PostgreSQL
MicrosoftAccess
J2SDKと連携することで、多用な情報源か
らデータの取得が可能に
データの出力

標準出力



DataTable dt = …;
System.out.println(dt);
Javax.swing.Jtableへの出力

GUIアプリケーション内に自由に配置
使用例

(スクリーンショットを貼る)
まとめ

データマイニング概念の普及

多くのマイニングアプリケーションが存在
本研究で作成したAPIでは、
マイニングシステム構築の基盤を提供
柔軟なデータ操作、データ取得
そして多用な出力チャネルを持てる
今後の課題

実行速度の改善

データ操作メソッドの実装最適化


内部アルゴリズムの改善
インスタンス生成回数の低減