曖昧で不確かなデータの実用的なデータ・マイニング

ファジィ相関ルール・マイニングの紹介

ビジネスで生成される非公開データにしても、Web で生成される公開データにしても、生成されるデータの量は次第に増加しています。この状況のなか、データ・マイニングの注目度と有用性が高まりつつありますが、従来のデータ・マイニングは、ある種の不確かさと曖昧さを処理するには適していません。そこで役立つのが、ファジィ集合論です。

Daniel J Lewis, Researcher, University of Bristol

Daniel LewisDaniel Lewis は、博士としてブリストル大学でインテリジェント・システムを研究している研究者であり、ファジィ集合論、概念階層、オントロジーのコンテキスト内で、ルール・マイニングおよびパターン検出を調査しています。彼はこれまで、OpenLink Software や Open Knowledge Foundation をはじめとする、いくつかの企業を対象としたナレッジベース、セマンティック Web、Linked Data、オープン・データなどの分野で作業をした経験があり、Web 開発者としての経験もある程度あります。Daniel は、データベース・テクノロジーやセマンティック Web テクノロジーを中心とした、さまざまなトピックの記事を IBM developerWorks 向けに多数執筆しており、インテリジェント・システムの分野では本を執筆して出版しています。



2014年 6月 26日

データベースを開発する目的はデータを保管するためですが、それよりも重要なのは、データベースに保管された後でデータを照会できることです。リレーショナル・モデルに基づく (つまり、SQL (Structured Query Language) ベースの) データベース管理システムや、ドキュメント・モデルに従ったデータベース管理システム (MongoDB や Apache CouchDB など)、さらにはグラフ・モデルに従ったデータベース管理システム (RDF (Resource Description Framework) トリプル・ストアなど) では、データベースにデータを保管して、そのデータを正確に照会することができます。

ただし、データをそのままの形で照会しても、ある特定の情報しか取得することができません。基本的な照会処理をステップアップさせたのが、ある特定のカウント (パーセンテージまたは割合) に基づく統計分析です。統計を使用することで、将来の可能性を予測することはできますが、その予測は大方 (通常は) データベース内に保管されたクローズド・データに基づいています。

データ・マイニングは、さまざまな形で存在します。これらのデータ・マイニング手法の多くは、統計分析を専用の目的としており、既存のデータを基にして新しい情報を推測するよう試みます。今や、既存のデータの不確かさと曖昧さまで扱うデータ・マイニング手法が増えてきており、そのような手法では、データ・マイニングでの照会の出力に、不確かさや曖昧さがある答えを許容しています。

不確かさと曖昧さとは何を意味し、どこに存在するのか?

不確かさと曖昧さは日々の生活に存在します。例えば、「今日は雨が降るらしい」という言葉を聞いたとします。これが不確かさと言えます。なぜなら、今日一日まったく雨が降らない可能性があり、天気予報は (今のところはまだ) 絶対確実ではないからです。また、友人が「夕方 6 時頃」家に遊びに来ると言ったとします。この言葉には、意図的な曖昧さが示されています。それは、このように指定された時刻には正確さが欠けるためです。

実際のところ、日々生活するなかでの会話に注意して耳を傾けてみると、あらゆる文に不確かさと曖昧さが含まれていることに気付くはずです。この記事にも、全体を通して不確かさと曖昧さが伴う可能性は十分考えられます!注意しなければならない重要な点は、データが「ファジィ」であるのは、意図的ではない場合と意図的な場合が考えられることです。例えば、人口の一部をサンプルとして世論調査を行った場合、ある強力な意見がそのサンプルに含まれていなければ、その意見が見逃されたとしても、それは意図的なことではありません。その一方、テレビやラジオで天気予報を聞く場合、その予報を伝える人は「さわやかな風」とか「激しい雨」といった意図的に「ファジィ」な用語を使用します。「さわやかな風」、あるいは「激しい雨」とは何を意味するのでしょう?どの程度「さわやか」で、どの程度「激しい」のでしょう?あるいは世論調査の例に関して言うと、自分の意思を決定する上で、強力な意見をある程度重要なものとみなす可能性がありますが、どの程度重要なのでしょう?

従来の確率論は、ある事象が発生する可能性があるかどうかを解明するための統計手法を提供すると同時に、古い情報を基に新しい情報をうまく分類することもできます。このような形の確率は、厳密に言うと主観的確率と呼ばれ、「X の確率はどれだけあるのか?」という質問に対する答えを出そうとする試みです。それとは別の見方で検討するのが、ファジィ集合論です。ファジィ集合論とは、「X はどの程度、この集合のメンバーであると考えられるか?」という質問に対する答えを出すための試みです。従って、確率的手法というよりは、「可能性の測定」として捉えることができます。これまで、ファジィ集合を確率集合に変換する取り組み、そしてその逆の取り組みが行われてきました。


ファジィ集合論の基礎

従来の集合論は、データの集合を組み合わせて操作するための演算を提供します。これらの演算には、(2 つ以上の集合を結合して返す) 和集合、(2 つ以上の集合で共通のデータを見つける) 共通集合、(ある集合で見つかったデータを別の集合から削除する) 差集合、(対象となる集合に含まれていないすべての既知のデータを検索する必要があることを指定する) 否定などがあります。集合論の演算の組み合わせを単純化するために、さまざまな一般則 (ルールや規則というよりは、物理法則のようなもの) が存在しています。数値、集合、順序付けの性質上、これらの法則は常に保持され、数学的に不変です。従来の集合論は、よく使用されているすべてのデータベースの性質そのものに浸透しており、これらのデータベースでは、レコード (あるいはデータのオブジェクト) を 1 つ以上の集合に含まれる項目とみなすことができます。データベース・クエリーは、これらの集合を関連付けて、その関係をフィルタリングすることで、結果を提供します。従来の集合論では、データの項目は集合に「含まれる」か「含まれない」かのどちらかであり、その中間や、白黒の区別がつかない項目というものはありません。

それとは対照的に、ファジィ集合論では、データの項目が集合にある程度「含まれる」(または「含まれない」) ということが可能です。例えば、茶色い髪の人の集合に対する Nick のメンバーシップ値は 0.9 とみなせる一方、茶色い髪の人の集合に対する Joanne のメンバーシップ値は 0.5 とみなせるとします。従来の集合論では、この 2 人をともに「茶色い髪の人」の集合に含めるかどうかを選択しなければなりませんが、Joanne の場合には特に難しい選択になります。彼女の実際の髪の色はあまりはっきりしないからです。「完全に含まれる」のはメンバーシップ値 1.0 で、「完全に含まれない」のがメンバーシップ値 0.0 であることから、従来の集合論はファジィ集合論の制約されたものとみなすことができます。こうした理由から、このテーマに関する文献では、従来の集合論を「クリスプ集合論」と呼ぶことも珍しくありません。従来の集合論と同様に、ファジィ集合論にも同じ一連の演算 (和集合、共通集合、差集合、否定) がありますが、一般則にはいくつかのわずかな違いがあります。それはただ単に、従来の集合論の法則の一部は、メンバーシップを 2 つの値に限定した場合に限って有効であるためです。リレーショナル・データベースに関する知識がある読者であれば、和集合共通集合を特定のタイプの結合として理解できるはずです。

ファジィ集合論には、さまざまな形の和集合、共通集合、否定、差の演算がありますが、とりわけよく使われているのは以下の演算です。これらの演算には共通して、クリスプ集合で機能するという利点もあります。

  • ファジィ和集合:
    A union B = { max(mu(a), mu(b)) for a in A and b in B and if a == b }

    この式が意味することは、ファジィ和集合の結果は、両方の集合に含まれる固有の項目すべての中の最大メンバーシップ値であるということです。従って、Joanne が両方の集合に出現する場合、2 つの集合のうち、いずれか大きいほうのメンバーシップ値が和集合のメンバーシップ値となります。

  • ファジィ共通集合:
    A intersection B = { min(mu(a), mu(b) for a in A and b in B and if a == b }

    この式が意味することは、ファジィ共通集合の結果は、両方の集合に含まれる固有の項目すべての中の最小メンバーシップ値であるということです。一方の集合では Nick のメンバーシップ値が 0.9 で、もう一方の集合では 0.1 となっている場合、共通集合のメンバーシップ値としては 0.1 が選択されます。Nick のメンバーシップ値が 0.0 であれば (つまり、一方の集合に Nick が出現しなかった場合)、Nick は共通集合から除外されます。

  • ファジィ否定:
    -A = { 1 – mu(a) for a in A }

    この式では、集合全体を処理して、1.0 から各メンバーシップ値を引いています。例えば、Keith は「白髪の人々」の集合に 0.8 のメンバーシップ値で含まれるとします。この場合、Keith が「白髪ではない人々」の集合に含まれる度合いを知りたいとしたら、1.0 - 0.8を実行します。その結果は当然、0.2 です。

  • ファジィ差集合:
    A – B = { max(0, mu(a) – mu(b)) for a in A and b in B and if a == b }

    この式では、あるデータ集合に含まれる各要素のメンバーシップ値を、別のデータ集合の中でこれらの要素に相当する要素のメンバーシップ値から引いています。この特有の形は、もっと正確には「有界差」と呼ばれます。その理由は、減算の結果が負数の場合、その結果は常に 0 となるためです。従って、Nick が茶色い髪の人々の集合にメンバーシップ値 0.9 で含まれていて、金髪の人々の集合にもメンバーシップ値 0.2 で含まれているとすると、Nick はファジィ差集合 ([茶色い髪の人々の集合] - [金髪の人々の集合]) にメンバーシップ値 0.7 (つまり、0.9 - 0.2) で含まれることになります。このファジィ差集合は、他の潜在的な特性を除外することによって、Nick が明らかに茶色い髪の人々に属するかどうかを見極められるようにするために使用することができます。


ファジィ・データ・マイニングの開発

ファジィ・アルゴリズム、ファジィ・データベース、そしてファジィ・ナレッジ・ベースの作成は、ファジィ集合の演算を使用することによって可能になります。ファジィ・データ・マイニングは、計算処理を行うマシンが大規模なデータ集合に対してデータ・マイニング手法および機械学習手法を実行するのに十分なほど強力になり、不確かさと曖昧さの処理が不可欠になった後、1990年代後半から 2000年代初めにかけて登場するようになりました。この記事では主に、ファジィ・データ・マイニングの形としてファジィ相関ルール・マイニングを取り上げますが、他のファジィ・データ・マイニング手法についても簡単に説明します。

従来のファジィ相関ルール・マイニング

IBM では 1990年代初頭に、Rakesh Agrawal 氏、Tomasz Imielinski 氏、および Arun Swami 氏からなる研究者グループが、トランザクション・データベース内のある項目と別の項目との関係の「確信度」を自動的に計算するというアイデアを概念化しました。対象となったトランザクション・データベースは、顧客が行うトランザクションを格納する、スーパーマーケットのデータベースでした。Agrawal と彼のチームが開発した APRIORI というアルゴリズムは、例えば「牛乳」という項目を「パン」という項目に対応させて、1 回のトランザクションで牛乳とパンが一緒に出現する頻度に基づいて確信度を計算します。この (順序付けられた) 項目のストリングは「相関ルール」と呼ばれ、これらの 1 つ以上の項目でのトランザクションの回数は「支持度」と呼ばれるようになりました。ルールに含まれるすべての項目の支持度を初期項目の支持度で除算して計算された結果が「確信度」です。トランザクション相関ルールは、長年にわたって開発が続けられ、より効率的なアルゴリズムになりました。そこで、研究者たちはこのアルゴリズムの並列処理コンピューター専用のバージョンを開発するようになりました。基本的に、トランザクション相関ルールで確信度を求めるには、以下の計算を行います。

transaction_association_confidence(A to B) = support(A union B)/support(A)

例を用いて説明すると、上記の計算で A が牛乳で B がパンだとすると、「牛乳を買った場合にパンも買う」確信度は、牛乳だけのトランザクションの回数 (パーセンテージ) に対する、牛乳またはパンのいずれか (またはその両方) のトランザクションの回数 (パーセンテージ) と等価です。

多少異なる相関ルールの形は、トランザクションに基づいて誕生したのではなく、オブジェクトの特性に基づいて誕生しました。つまり、「牛乳を買った場合はパンも買う」確信度を求めるのではなく、「髪が茶色い場合、目は栗色である」という確信度、つまりここではソース集合とターゲット集合の両方に項目 (この例では、人) が出現する場合を求めることができます。この場合、オブジェクトの性質から、確信度の計算に含まれる和集合は共通集合にならなければなりません。

object_association_confidence(A to B) = support(A intersection B)/support(A)

例を用いて説明すると、A が茶色い髪で B が栗色の目だとすると、上記の計算は、髪が茶色である上に目が栗色である人の数を、(目の色とは無関係に) 茶色い髪を持つ人の数で除算することを意味します。

ファジィ相関ルールのハウツー

相関ルール・マイニング・アルゴリズムをさらに「ファジィ」にする最も簡単な方法の 1 つは、単純に、0.0 から 1.0 の間の既定のポイントでカット (「アルファ・カット」と呼ばれます) を行うことです。この場合、カット・レベルより上のメンバーシップ値を持つメンバーがクリスプ (つまり、完全なメンバーシップ) であり、カット・レベルより下のメンバーにはメンバーシップがないとみなします。従って、ルールの確信度レベルはさまざまな mu 値で設定されることになります。これは、最もファジィな手法の 1 つであり、確信度は単一の値ではなく、2 次元のグラフで表されます。この場合のファジィ相関の計算は、以下のようになります (この計算は、トランザクションの形でも、オブジェクト指向の形でも有効です)。

fully_fuzzy_association_confidence(A to B) = {classical_association_confidence(alphacut(A, alpha) 
    to alphacut(B, alpha)) for alpha in predetermined_alphas}

これはおそらく最もファジィな方法であり、実装するのも簡単ですが、計算コストがかなり高くなる可能性があります。また、メンバーシップ値 (またはメンバーシップ関数) をデータベース内の各項目 (あるいは項目の各クラス) に追加しなければなりません。理想的には、これらのメンバーシップ値はある種の式で計算することになります。例えば、「激しい雨」を降雨量 (ミリメートル) に基づくファジィ・メンバーシップ関数にして、これを相関させる「強風」を 1 時間あたりのキロメートル数に基づくファジィ・メンバーシップ関数にするなどです。相関は、ある特定の日の例を用いて作成することができます。例えば、ある国の特定の日を過去 5 年にわたって分析した結果、「激しい雨」と「強風」に密接な相関関係があることがわかるかもしれませんが、気象予報士はその日について、意図的に少し曖昧に (そして、アルファ・カットをより高く設定して)、「激しい雨」になるとしたら「強風」になるでしょうと予報するかもしれません。

ファジィ相関ルール・マイニングに関する文献では、メンバーシップ値を合計して、その結果をデータベース内のトランザクション (オブジェクト) 数で除算するという方法がより多く見られるようです。次の 2 つの形の合計を見てください。

fuzzy_sum_transaction_association_confidence(A to B) = sum({mu(t) 
    for t in (A union B)})/number_of_transactions

_________________________________________


fuzzy_sum_object_association_confidence(A to B) = sum({mu(o) 
    for o in (A intersection B)})/number_of_objects

このような形の合計は、(2 次元のグラフではなく) 単一の値を提供するという点で結果としての確信度を単純化しますが、実質的にはデータの曖昧さが失われることになります。この場合、曖昧さがもたらす有意性はありません。また、この方法ではメンバーシップ値またはメンバーシップ関数をあらかじめ設定する必要があります。

1998年に香港中文大学の研究者グループ (Ada Wai-chee 氏と Man Hon Wong 氏を含む) が、特定のデータベースからファジィ集合を見つける手法を開発しました。その研究を発表している学術論文のタイトルは、「Finding Fuzzy Sets for the Mining of Fuzzy Association Rules for Numerical Attributes」です。この論文は、1998年の Intelligent Data Engineering and Automated Learning Conference 向けに執筆されました。この研究の極めて興味深いところは、開発した手法では、関連するファジィ・メンバーシップ値や関数をあらかじめ把握する必要がないという点です。その一方で、この手法では CLARANS (このアルゴリズムについては、この記事では説明しません) と呼ばれる、かなり複雑なクラスタリング・アルゴリズムを使用するという欠点があります。


その他のファジィ・データ・マイニングの形

データ・マイニングには、相関ルール・マイニング以外の形もあります。実際、Rakesh 氏が率いた IBM のチームは、相関パターン・マイニングの拡張として、シーケンシャル・パターン・マイニングを開発しました。シーケンシャル・パターンは、方向性のある相関を時間と無関係に形成するのではなく、時間に依存するパターンです。簡単に言うと、順序付けが必要になるということです。シーケンシャル・パターン・マイニングは、トランザクション・データベースではおそらく相関ルールよりも有効に利用されるようになっています。また、タイム・スタンプを使用するデータベース・レコード (時間に関するデータ集合) にも応用されています。シーケンシャル・パターン・マイニングには「ファジィ化」の機能もあります。例えば、「『午後早く』に関連付けられる項目には何があるか?」といった質問にも対応できます。データ・マイニングの形としては、「分類」もあります。分類では通常、クラスタリング・手法を使用し、統計的に類似性を見つけ出そうと試みて、そのデータを分類します。また、ファジィ分類手法が存在しており、多様な分野 (例えば、地質学や医学など) に適用されています。


まとめ

この記事では、データ・マイニングで不確かさと曖昧さを扱う方法を簡単に概説し、これらの不確かさ、曖昧さに対処するためにファジィ集合論を実践するソリューションを開発する方法について探りました。また、IBM が最初に開発して以来、データ・マイニング・コミュニティーによって拡張および強化されてきた相関ルールについて調べるとともに、相関ルールでファジィ・データを処理する各種の方法を説明し、「ファジィ化」とファジィ相関ルール・マイニングの結果は、対象分野とユーザーに強力に依存することを強調しました。そして最後に、さまざまな業界で採用されて功を奏している、その他の形のファジィ・データ・マイニングを簡単に説明して記事を締めくくりました。

データ・マイニングで使用されているアルゴリズムは、データベースにデータを保管する人々にとっても次第に必要になってきています。このことが明らかになるのは、データベース製品を販売している企業 (IBM を含む) が、その製品はスケール・アップ可能であり、並列コンピューティングに対処できるということを宣伝をしているのを見たとき、そして研究者や開発者がビッグ・データの利点と欠点を議論しているのを見たときです。私は、ファジィ集合論が確率論と併せて、今後のデータ・マイニング開発に不可欠になると確信しています。それは、不確かさと曖昧さに対処できる可能性があるだけでなく、コンピューター・インターフェースをより人間に近いものにするために、コードによる計算ではなく、「言葉による計算」の実装を利用するからです。

IBM には、IBM DB2 Intelligent Miner と SPSS Modeler という 2 つのデータ・マイニング製品があります。IBM はまた、データ・マイニング向けアーキテクチャーである Unstructured Information Management Architecture の基盤作りにも貢献しました。データ・マイニングには、他のオープンソースおよび商用のソフトウェア製品も使用できますが、これらのシステムは統計を重点にしています。そのため、私は企業とオープンソース・コミュニティーにファジィ手法の実装を要求したいと思っていますが、差し当たり、開発者はこれらのシステムをベースにファジィ手法を実装することができます。この記事に関するコメントや、ファジィ・データ・マイニング・アルゴリズムを実装して成功したこと、難しかったことをお聞かせください。

参考文献

学ぶために

製品や技術を入手するために

議論するために

  • developerWorks コミュニティーに参加してください。ここでは他の developerWorks ユーザーとのつながりを持てる他、開発者によるブログ、フォーラム、グループ、Wiki を調べることができます。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=ビジネス・アナリティクス
ArticleID=974524
ArticleTitle=曖昧で不確かなデータの実用的なデータ・マイニング
publish-date=06262014