平成16年度卒業

元山 純一
事例から抽出した性質に基づく関係的知識発見に関する研究



1. はじめに

 データマイニングとは、大量のデータから隠された知識や新しい規則を発見するプロセスです。
 データマイニングを行う枠組みとして注目されているものの一つに帰納論理プログラミング(Inductive Logic Programming : ILP)があります。これは述語論理を使用することで豊かな表現力を持ち、可読性の高い解析が行うことができます。

 例えば、下の図のような貨物列車の例で「列車t8」を述語論理で表すと以下のようになります。




図1:貨物列車


train(t8) ←has_car(t8, c1), load(c1, 長方形, 1), length(c1, 長い), wheels(c1, 4つ), roof(c1, 無い), has_car(t8, c2), load(c2, 丸, 1), length(c2, 短い), wheels(c2, 6つ), roof(c2, 有る).

このように、述語論理は複雑なデータも簡単にわかりやすく表すことができます。

 この研究では、一般的にデータマイニングで用いられている相関ルールの考え方を使用して、ILPの枠組みでデータマイニングを行います。


2. 相関ルール

 相関ルールとは、マーケットで売られている商品と顧客が購入した商品リストから、商品に関する規則性を取り出すことを目的として提起された方法です。
 例えば、この方法を使うことによって以下のようなルールが得られます。

  例1: トマト∧レタス     (トマトとレタスを一緒によく売れる)

  例2: トマト∧レタス⇒チーズ (トマトとレタスを一緒に買う人はチーズもよく買う)


ここで、「全顧客のうち、ある商品を買う顧客(例1)」の割合を支持度(Support)と呼びます。また、「ある商品を買う顧客のうち、別の商品も買う顧客(例2)」の割合を確信度(Confidence)と呼びます。相関ルール導出では、これらの指標に閾値を与えることによって閾値以上の規則を導出することを行います。


3. 提案手法

 この研究では、述語論理の枠組みで相関ルール導出を行います。先ほどの述語で表された列車の例について、「列車が屋根をある貨車を持っている」というのは、変数を使って以下のように表されます。

train(A) ← has_car(A, B), roof(B, 有る).

同様に「列車がタイヤが6つある貨車を持っている」というのも、簡単に述語の組で表されます。

train(A) ← has_car(A, B), wheels(B, 6つ).

このように、表される述語の組を事例(この例での列車に当たる)についての性質とし、これらを相関ルールの枠組みで言うアイテムとし、事例をトランザクションとすることで相関ルールの導出を行います。
 またこれらの性質を作り出す際、事例に実際に現れている性質をいくつかサンプリングすることによって、導出を行います。

 この手法のアルゴリズムの流れは以下のようになります。

(1) 事例の集合からいくつかの事例を取り出し、それらの性質をすべて取り出す。
(2) 性質をアイテムと考えて、相関ルールの導出を行う。


4. まとめ

 ILPの枠組みにおけるデータマイニング手法は、いくつか提案されていますが多くの手法が規則の導出に大変時間がかかるという欠点を持っています。この研究では、高速なデータマイニングを行うことができる相関ルール導出を使って、うまく述語論理の利点を残したまま、比較的に高速な規則の導出を行うことができます。

 今後の課題として、より複雑な規則の導出や実データへの適用した検証が必要であると思います。