(57)【要約】  【課題】  大量データからルールに基づく知識抽出を行う際、データの特性を表す変数が階層的な構造を持つ場合に、分析者が着目する階層に重点を置いたルール候補を作成する。  【解決手段】  階層構造に属する各変数について抽象性の深さを示す抽象度を計算し、分析者からは着目する階層の抽象度を受け取る。変数の階層構造を考慮しながら変数値を組み合わせてルール候補を作成し、事例データを読み出して出現回数をカウントアップする。上記両方の抽象度と出現回数から評価値を計算し、評価値の大きい順にルール候補を表示する。【選択図】  図５
2005122509.tif 000002
【特許請求の範囲】
【請求項１】
事例データレコードを構成する各データ項目を変数とみなし、前記変数は階層構造をもつ複数の変数のうちの少なくとも一部の変数を構成するものであり、前記階層構造に属する各変数の変数値を区分するカテゴリ値が設けられ、前記カテゴリ値の組み合わせを条件部とし指定された前記カテゴリ値を結論部とするルール候補を作成し、前記ルール候補を満足する前記事例データレコードの出現回数を計数し、前記出現回数に基づいて前記ルール候補を評価する階層構造データ分析方法において、
前記階層構造に属する各変数について抽象性の深さを示す抽象度を計算するステップと、
前記ルール候補を満足する前記事例データレコードの出現回数を計数するステップと、
前記階層構造に属し分析者によって指定された１つの変数を受け取り、受け取った変数の抽象度を求めるステップと、
各ルール候補に含まれる変数の抽象度と、分析者から受け取った抽象度と、前記ルール候補の出現回数とから各ルール候補の評価値を計算するステップと、
前記評価値の大きいものから順に前記ルール候補を表示するステップとを有することを特徴とする階層構造データ分析方法。
【請求項２】
分析者から受け取った抽象度と各ルール候補の条件部に含まれる変数の抽象度との平均２乗誤差の逆数によって前記出現回数に基づく評価値を重み付けして各ルール候補の評価値を計算することを特徴とする請求項１記載の階層構造データ分析方法。
【請求項３】
前記ルール候補の条件部に含まれる変数の組み合わせは、組み合わせ可能なものに限られることを特徴とする請求項１記載の階層構造データ分析方法。
【請求項４】
前記ルール候補を表示するステップの後に、分析者の指示に従って指定された変数の抽象度を求めるステップ、前記評価値を計算するステップおよび前記ルール候補を表示するステップを繰り返すことを特徴とする請求項１記載の階層構造データ分析方法。
【請求項５】
前記ルール候補を表示するステップにおいて、指定されたルール候補の条件部に含まれる注目される変数と、前記注目される変数の祖先変数と子孫変数とを含む階層構造を表示することを特徴とする請求項１記載の階層構造データ分析方法。
【請求項６】
前記子孫変数を表示する際に、前記子孫変数の１つを前記条件部とする前記ルール候補の評価値が最大となる子孫変数と、前記注目される変数との間の階層にある子孫変数とを表示することを特徴とする請求項５記載の階層構造データ分析方法。
【請求項７】
事例データレコードを構成する各データ項目を変数とみなし、前記変数は階層構造をもつ複数の変数のうちの少なくとも一部の変数を構成するものであり、前記階層構造に属する各変数の変数値を区分するカテゴリ値が設けられ、計算機に、前記カテゴリ値の組み合わせを条件部とし指定された前記カテゴリ値を結論部とするルール候補を作成する機能、前記ルール候補を満足する前記事例データレコードの出現回数を計数する機能、および前記出現回数に基づいて前記ルール候補を評価する機能を実現させるための階層構造データ分析プログラムにおいて、
前記計算機に、前記階層構造に属する各変数について抽象性の深さを示す抽象度を計算する機能、
前記ルール候補を満足する前記事例データレコードの出現回数を計数する機能、
前記階層構造に属し分析者によって指定された１つの変数を受け取り、受け取った変数の抽象度を求める機能、
各ルール候補に含まれる変数の抽象度と、分析者から受け取った抽象度と、前記ルール候補の出現回数とから各ルール候補の評価値を計算する機能、および
前記評価値の大きいものから順に前記ルール候補を表示する機能を実現させるための階層構造データ分析プログラム。
【請求項８】
前記評価値を計算する機能は、分析者から受け取った抽象度と各ルール候補の条件部に含まれる変数の抽象度との平均２乗誤差の逆数によって前記出現回数に基づく評価値を重み付けして各ルール候補の評価値を計算する機能を含むことを特徴とする請求項７記載の階層構造データ分析プログラム。
【請求項９】
前記ルール候補を表示した後に、分析者の指示に従って、前記計算機に、指定された変数の抽象度を求める機能、前記評価値を計算する機能、および前記ルール候補を表示する機能を繰り返し実現させることを特徴とする請求項７記載の階層構造データ分析プログラム。
【請求項１０】
事例データレコードを構成する各データ項目を変数とみなし、前記変数は階層構造をもつ複数の変数のうちの少なくとも一部の変数を構成するものであり、前記事例データレコードを格納するデータベース記憶手段と、前記階層構造に属する各変数の変数値を区分するカテゴリ値を設定するテーブル記憶手段と、前記カテゴリ値の組み合わせを条件部とし指定された前記カテゴリ値を結論部とするルール候補を作成する手段と、前記ルール候補を満足する前記事例データレコードの出現回数を計数する手段と、前記出現回数に基づいて前記ルール候補を評価する手段とを有する階層構造データ分析装置において、前記階層構造データ分析装置は、
前記階層構造に属する各変数について抽象性の深さを示す抽象度を計算する手段と、
前記ルール候補を満足する前記事例データレコードの出現回数を計数する手段と、
前記階層構造に属し分析者によって指定された１つの変数を受け取り、受け取った変数の抽象度を求める手段と、
各ルール候補に含まれる変数の抽象度と、分析者から受け取った抽象度と、前記ルール候補の出現回数とから各ルール候補の評価値を計算する手段と、
前記評価値の大きいものから順に前記ルール候補を表示する手段とを有することを特徴とする階層構造データ分析装置。
【請求項１１】
前記評価値を計算する手段は、分析者から受け取った抽象度と各ルール候補の条件部に含まれる変数の抽象度との平均２乗誤差の逆数によって前記出現回数に基づく評価値を重み付けして各ルール候補の評価値を計算する手段を有することを特徴とする請求項１０記載の階層構造データ分析装置。
【請求項１２】
前記階層構造データ分析装置は、前記ルール候補を表示する手段の実行後に、分析者の指示に従って指定された変数の抽象度を求める手段、前記評価値を計算する手段および前記ルール候補を表示する手段を繰り返し実行することを特徴とする請求項１０記載の階層構造データ分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大量データ中から知識抽出を行うデータマイニング技術に係わり、特に分析対象とするデータの特性を表す変数が階層的な構造を持っている場合に適用し、分析者が求める階層に存在するルールを生成して表示する技術に関するものである。
【背景技術】
【０００２】
大量データから知識抽出を行うデータマイニングの代表的な手法に、ＩＦ−ＴＨＥＮ形式のルールを用いる手法がある。この手法は、「ＩＦ  Ｘ  ＴＨＥＮ  Ｙ」という形式のルールによって知識を表現し、データ中に高頻度で出現するルールが有用であると評価して抽出する。以後、Ｘを条件部、Ｙを結論部と呼ぶ。
【０００３】
上記データマイニング手法の１つに相関ルールがある。データレコードに出現する変数値の集合を上記ＸおよびＹとする。全データレコードに対してＸとＹの両方が出現するデータレコードの割合を支持度と呼び、Ｘが出現するデータレコードのうちＹも出現するデータレコードの割合を確信度と呼ぶ。相関ルールは、これら支持度と確信度が一定以上の値となる相関ルールのみを抽出する。
【０００４】
データの特性を表す変数が階層的な構造を持つ場合に、一般化相関ルール（非特許文献1参照）が知られている。一般化相関ルールは、階層構造に属する変数の変数値において、下位階層の変数値が上位階層の変数値に属するという自明な関係を表す変数値の組み合わせを作らないことによって、重複する相関ルールの評価を防止する。例えば商品Ａと商品Ｂという変数値がテレビという変数値に属していて、商品Ａはテレビの一種という関係にあるとする。このとき商品Ａかつテレビという組み合わせは、商品Ａであるということと等価となるため、商品Ａかつテレビという組み合わせを含む相関ルールを作成しない。また一般化相関ルールは、基準となる相関ルールについて、含まれる変数値の１つが親変数値であるルール候補を親ルール、含まれる変数値の１つが子変数値であるルール候補を子ルールとして定義している。親ルールの支持度から推定した子ルールの支持度と実際の子ルールの支持度が一致していた時には、その相関ルールは、有用でないと判断してその子ルールを除外する。以後、これを従来技術１と呼ぶ。
【０００５】
また一般化相関ルールを生成するデータマイニングエンジンに関し、分析者と対話的な処理を行う前処理部と後処理部を加えて相関ルールの絞り込みを行う方法が特許文献1で述べられている。この後処理部は、類義語データベースに格納された変数値を用い、類義の変数値が相関ルールに含まれている場合にはそのルールを削除するか優先的に出力する。これによってデータマイニングエンジンが生成した相関ルールの数を削減させている。以後、これを従来技術２と呼ぶ。
【０００６】
【非特許文献１】Srikant、R. Agrawal: Mining Generalized Association Rules、Proceedings of the 21st VLDB Conference、１９９５年、ｐｐ．４０７−４１９
【０００７】
【特許文献１】特開平１０−３０１９４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記従来技術１は、変数が階層構造になっていた場合に相関ルールを用いて大量データからの知識抽出を行える。しかし分析者が与える最小支持度と最小確信度の頻度情報に基づいて抽出する相関ルールを決定するため、相関ルールは階層構造に属するいくつかの変数を無差別に含むことになり、分析者が着目する階層あるいは変数に重点を置いたルールが得られるとは限らない。以後、これを課題１と呼ぶ。
【０００９】
上記従来技術２では、データマイニングエンジンの後処理部は、類義語データベースに格納された変数値を用い、類義の変数値が相関ルールに含まれている場合にはルールを削除するか優先的に出力する。しかし分析者は、相関ルールに現れる変数値が不要な変数値か、あるいは必要な変数値かをあらかじめ把握している必要があり、これは必ずしも容易ではない。以後、これを課題２と呼ぶ。
【００１０】
また上記従来技術２は、分析者が着目する階層を変更するとき、最初に戻ってデータマイニングエンジンを動かし、事例データの出現回数を再度計数する必要があり、相関ルールの作成と抽出には１回目と同じだけの処理量を要する。以後、これを課題３と呼ぶ。
【００１１】
データマイニングの結果得られたルールを分析者に表示する典型的な方法として、変数の階層構造を表示してルールに含まれる変数の該当箇所を示す方法が考えられる。しかし１画面内にルールに含まれる変数の階層構造を表示するとき、階層構造に属する変数を全て画面に表示すると、１つの変数を表示するためには一定の画面領域を必要とするため、変数の数が多い場合には１画面内に収まらない可能性がある。以後、これを課題４と呼ぶ。
【課題を解決するための手段】
【００１２】
本発明は、階層構造に属する各変数について抽象性の深さを示す抽象度を計算し、分析者からは着目する階層の抽象度を受け取る。変数の階層構造を考慮しながら変数値を組み合わせてルール候補を作成し、事例データを読み出して出現回数をカウントアップする。上記両方の抽象度と出現回数から評価値を計算し、評価値の大きい順にルール候補を表示する技術を特徴とする。
【発明の効果】
【００１３】
本発明によれば、挙げられた課題を解決する階層構造データ分析技術を提供できる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を用いて本発明の実施形態について説明する。
【００１５】
図１は、実施形態の階層構造データ分析装置の概略構成を表している。階層構造データ分析装置は、ＣＰＵ１０１、入力装置１０２、表示装置１０３、メモリ１１０、ディスク装置１２０及びこれら装置がバス１０４によって接続された計算機である。メモリ１１０は、構造処理部１１１、ルール生成部１１２および変数パス処理部１１３の各プログラムを格納し、また抽象度データベース１１４およびルールデータベース１１５を格納する。ディスク装置１２０は、事例データベース１２１、構造データベース１２２およびカテゴリ値データベース１２３を格納する。
【００１６】
ＣＰＵ１０１は、メモリ１１０に格納された構造処理部１１１、ルール生成部１１２および変数パス処理部１１３の各プログラムを実行する。入力装置１０２は、分析者が分析装置に対して分析用パラメータや動作指示を与えるための装置である。表示装置１０３は、メモリ１１０及びディスク装置１２０に格納されたデータの内容、分析者が与えた分析用パラメータ、分析結果などを分析者に対して表示する装置である。
【００１７】
図２（ａ）は、事例データベース１２１中の事例テーブル２００のデータ構成例を示す図である。事例テーブル２００の各データレコード２１１は、各顧客に対応し、商品Ａ２０１、商品Ｂ２０２、商品Ｃ２０３、商品Ｄ２０４、商品E２０５、支店Ａ２０６、支店Ｂ２０７、支店Ｃ２０８、支店Ｄ２０９および顧客種別２１０の各データ項目から構成される。各データ項目は、変数とみなされる。データレコード２１２は、各変数の変数値を格納する。これらの変数は、階層構造をもつ変数群の中の少なくとも一部の変数を構成する。
【００１８】
例えばデータレコード２１２の商品Ａ２０１〜商品Ｅ２０５には各商品の購入金額を表す数値が入り、支店Ａ２０６〜支店Ｄ２０９には各支店で商品を購入したかどうかの名義値（文字列）が入り、顧客種別２１０には顧客が優良顧客であるか一般顧客であるかを示す名義値が入る。本実施例では、顧客種別２１０の変数値は、ルール候補の結論部を指定する際に使用される。
【００１９】
図２（ｂ）は、構造データベース１２２中の祖孫関係テーブル２２０のデータ構成例を示す図である。祖孫関係テーブル２２０の各レコードは、変数名２２１、親変数名２２２および集計方法２２３の各データ項目から構成される。変数名２２１は、変数の関係を階層構造によって表現したときの各ノードの変数名である。図３は、祖孫関係テーブル２２０に対応する変数名の階層構造を示す。図３のノードが各変数を表し、ノードとその下位のノードとを結ぶアークが変数の親子関係を表す。子変数はその親変数に含まれる具体的なアイテムである。従って親変数名２２２は、その変数名２２１の直属の親変数の名称である。
【００２０】
例えばテレビ３０３と商品３０５は親子関係にあり、商品３０５が親変数でテレビ３０３が子変数である。また商品３０５や店舗３０８のように親変数を持たない変数をルート変数と呼び、商品Ａ２０１〜顧客種別２１０のように子変数を持たない変数をリーフ変数と呼ぶ。ルート変数から任意の変数までの距離を、ルート変数とその変数の間にあるアーク数で表す。変数の上下関係を比較する時には、ルート変数からの距離が近い変数ほど上位とし、ルート変数からの距離が遠い変数ほど下位とする。例えば商品Ａ２０１はルート変数である商品３０５からのアーク数が３であり、ビデオ３０４は商品３０５からのアーク数が１であるため、ビデオ３０４が上位で商品Ａ２０１が下位となる。またある変数から親変数を辿ることで見つかる変数を祖先変数と呼び、ある変数から子変数を辿ることで見つかる変数を子孫変数と呼ぶ。例えば液晶３０１から親変数を辿ることで見つかるテレビ３０３と商品３０５が液晶３０１の祖先変数となる。同様に液晶３０１から子変数を辿ることで見つかる商品Ａ２０１と商品Ｂ２０２が液晶３０１の子孫変数となる。
【００２１】
祖孫関係テーブル２２０の集計方法２２３は、その変数名２２１が下位に子変数をもつ場合において、子変数の変数値をどのように集計したら当該変数名２２１の変数値となるかを示す。例えばデータレコード２２６は変数名２２１が「液晶」で、集計方法２２３が「加算」であるから、「液晶」の子変数の変数値を「加算」して「液晶」の変数値を集計する。「液晶」の子変数は、親変数名２２２が「液晶」となる変数を探索して見つけ出される。親変数名２２２を「液晶」で探索するとデータレコード２２４の「商品Ａ」とデータレコード２２５の「商品Ｂ」が該当するので、「商品Ａ」と「商品Ｂ」を「液晶」の子変数とする。事例データ２００のデータレコード２１２の場合、「商品Ａ」の変数値「２万円」と「商品Ｂ」の変数値「０円」を加算して「液晶」の変数値を「２万円」とする。上記「液晶」と同様に、データレコード２２９は変数名２２１が「関東」で、集計方法２２３が「論理和」であるから、「関東」の変数値は子変数の「論理和」で集計される。「関東」の子変数は、親変数名２２２が「関東」となる変数を探索して見つけ出される。親変数名２２２を「関東」で探索するとデータレコード２２７の「支店Ａ」とデータレコード２２８の「支店Ｂ」が該当するから、「支店Ａ」と「支店Ｂ」を「関東」の子変数とする。データレコード２１２の場合、「支店Ａ」の変数値「購入」と「支店Ｂ」の変数値「未購入」の「論理和」を計算して「関東」の変数値を「購入」とする。
【００２２】
図２（ｃ）は、カテゴリ値データベース１２３中のカテゴリ値テーブル２３０のデータ構成例を示す図である。カテゴリ値テーブル２３０の各レコードは、変数名２２１、カテゴリ化条件２３１およびカテゴリ値２３２の各データ項目から構成される。カテゴリ化条件２３１は、変数名２２１で示される変数の変数値をそのカテゴリ値に変換する条件を表す。カテゴリ値２３２は、当該変数の変数値のカテゴリを示す番号である。カテゴリ値は、変数値を区分あるいは分類するための識別子である。ルール候補の条件部及び結論部は、カテゴリ値の組み合わせによって構成される。そこでカテゴリ化条件２３１を設けて変数値をいくつかのカテゴリ値に振り分け、１つのカテゴリ値又はカテゴリ値の組み合わせをルール候補の条件部及び結論部とする。
【００２３】
図４（ａ）は、抽象度データベース１１４中の抽象度テーブル４００のデータ構成例を示す図である。抽象度テーブル４００の各行は、変数名２２１及び抽象度４０１の各データ項目から構成される。抽象度４０１は、変数名２２１で示される変数が概念的にどれだけ抽象的もしくは具体的な内容を表しているのかを表す。本例の抽象度４０１は、値が小さいものほど具体的な内容を表し、値が大きいものほど抽象的な内容を表すように、その変数が持つ子孫変数の個数で計算した時の例である。
【００２４】
図４（ｂ）は、ルールデータベース１１５中のルールリスト４１０のデータ構成例を示す図である。このルールリスト４１０は、ルール候補をリスト形式で表すものである。変数名２２１とカテゴリ値２３２によってルール候補の条件部を示している。組み合わせ数４１１は、ルール候補の条件部に含まれるカテゴリ値の個数を示す。例えばカテゴリ値２３２が「１」と「３」の組み合わせについてその組み合わせ数は２である。条件部該当数４１２は、対応するルール候補の条件部が事例テーブル２００中に出現した回数、すなわちレコード件数を表す。ルール該当数４１３は、対応するルール候補の条件部と所定の結論部が事例テーブル２００中に同時に出現した回数、すなわちレコード件数を表す。ルールリスト４１０は、カテゴリ値２３２が１個の場合も含めてすべての組み合わせ可能なカテゴリ値の組み合わせについて条件部該当数４１２及びルール該当数４１３を計数したものである。
【００２５】
構造処理部１１１は、抽象度テーブル４００を作成し、また祖孫関係テーブル２２０と抽象度テーブル４００を用いて変数の階層構造を作成し、表示装置１０３に表示する。また構造処理部１１１は、分析者によって指定された階層構造中のキーとなる変数を受け取る。
【００２６】
ルール生成部１１２は、事例テーブル２００から順にデータレコードを読み出して階層構造に属する各変数の変数値を計算し、カテゴリ値テーブル２３０を参照して変数値をカテゴリ値に変換し、データレコードのカテゴリ値一覧を作成する。次に各変数のカテゴリ値に基づいてルール候補、すなわちルールリスト４１０の条件部を作成する。次にデータレコードのカテゴリ値一覧にルール候補を適用してルール候補の出現回数をカウントアップし、この出現回数に基づいて各ルール候補の評価尺度を求め、評価尺度の高いものから順に表示装置１０３に表示する。
【００２７】
変数パス処理部１１３は、分析者によってルール候補が指定されたとき、そのルール候補に含まれる変数を中心とする変数の階層構造を作成し、表示装置１０３に表示する。
【００２８】
図５は、第１の実施例の階層構造データ分析の処理手順を示すフローチャートである。構造処理部１１１は、最初に各変数の抽象度を計算して抽象度テーブル４００を作成する（ステップ５０１）。構造処理部１１１は、祖孫関係テーブル２２０の変数名２２１に格納されている変数の名称を読み出し、抽象度テーブル４００の変数名２２１へ格納し、抽象度４０１を０で初期化する。次に構造処理部１１１は、祖孫関係テーブル２２０の親変数名２２２から親変数を持たないルート変数を見つけ出し、各ルート変数について祖孫関係テーブル２２０の変数名２２１と親変数名２２２を用いて子孫変数を辿り、見つかった各変数についてルート変数からの距離を計算する。次に構造処理部１１１は、ルート変数からの距離が遠い変数から順番に、祖孫関係テーブル２２０の親変数名２２２を参照して親変数を見つけ、親変数の抽象度４０１について子変数が持つ抽象度に１を加算し、親変数が見つからない変数の順番が来た時点で処理を終了する。
【００２９】
図７は、表示装置１０３に表示される着目抽象度指定画面７００の例を示す図である。着目抽象度指定画面７００は、図７（ａ）に示すように、階層表示部７０１とルート変数選択部７０２とに区分される。ルート変数選択部７０２は、ルート変数の変数名をすべて表示する。図７（ｂ）は、ルート変数選択部７０２中の商品３０５が選択されたとき、階層表示部７０１に商品３０５をルート変数とする変数の階層構造が表示された状態を示す。
【００３０】
次に構造処理部１１１は、表示装置１０３に変数の階層構造を表示する（ステップ５０２）。構造処理部１１１は、まず祖孫関係テーブル２２０の親変数名２２２を探索し、親変数名を持たないルート変数を見つけ出す。次に構造処理部１１１は、表示装置１０３に着目抽象度指定画面７００を表示し、見つかったルート変数の変数名２２２の値をルート変数選択部７０２に表示する。次に構造処理部１１１は、ルート変数ごとに祖孫関係テーブル２２０の親変数名２２２を探索し、親変数名２２２にルート変数の変数名を持つ子変数を見つけ出す。以後、構造処理部１１１は、見つかった変数に対してさらに子変数を見つけ出す処理を、子変数が見つからなくなるまで繰り返し、ルート変数ごとに全ての子孫変数を見つけ出す。次に構造処理部１１１は、抽象度テーブル４００の変数名２２１と抽象度４０１を用いてルート変数の抽象度と子孫変数の抽象度を読み出し、階層表示部７０１に表示する子孫変数の垂直位置をルート変数の抽象度と前述の子孫変数の抽象度との差で決定し、階層表示部７０１にルート変数とその子孫変数の階層構造を表示する。
【００３１】
例えば分析者が商品３０５をルート変数に選択すると、構造処理部１１１は、図７（ｂ）の階層表示部７０１のように、商品３０５をルートとする変数の階層構造を表示する。また商品３０５の抽象度は「９」、ビデオ３０４の抽象度は「３」、商品Ｅ２０５の抽象度は「０」であるから、階層表示部７０１における商品Ｅ２０５−ビデオ３０４間の垂直距離とビデオ３０４−商品３０５間の垂直距離が１：２の比率となるように配置する。
【００３２】
分析者がユーザ入力装置１０２を介してルールの結論部を指定すると、ルール生成部１１２は指定された１つ又は複数組み合わせたカテゴリ値を受け取る（ステップ５０３）。例えば結論部のカテゴリ値２３２として「３５」（優良）を受け取る。
【００３３】
次にルール生成部１１２は、親変数の変数値を計算する（ステップ５０４）。ルール生成部１１２は、まず事例テーブル２００から順にデータレコードを読み出し、ルート変数からの距離が遠い変数の順に、祖孫関係テーブル２２０の親変数名２２２から親変数を求める。次に求めた親変数の集計方法２２３と自変数の変数値から親変数の変数値を計算し、親変数を持たないルート変数の順番がきた時点で終了する。この処理を事例テーブル２００のすべてのデータレコードについて各データレコードごとに繰り返す。
【００３４】
次にルール生成部１１２は、カテゴリ値テーブル２３０のカテゴリ化条件２３１を参照し、計算した各変数の変数値をそのカテゴリ値へと変換しデータレコードのカテゴリ一覧を作成する（ステップ５０５）。この処理を事例テーブル２００のすべてのデータレコードについて各データレコードごとに繰り返す。
【００３５】
次にルール生成部１１２は、各変数のカテゴリ値に基づいてルール候補、すなわちルールリスト４１０を作成する（ステップ５０６）。ルール生成部１１２は、まず祖孫関係テーブル２２０の変数名２２１から変数の一覧表を求め、分析者から受け取った結論部のカテゴリ値に対応するカテゴリ値テーブル２３０の変数を求めてこの一覧表から削除する。この処理によって一覧表は条件部を構成する変数のみとなる。次にルール生成部１１２は、この一覧表に含まれる各変数について、ルート変数からの距離が遠い順に、親変数名２２２を用いてその親変数を見つけ、当該変数およびその子孫変数をその親変数の子孫変数に追加する。次にルール生成部１１２は、この一覧表に含まれる各変数について、ルート変数からの距離が近い順に、親変数名２２２を用いてその親変数を見つけ、当該変数およびその祖先変数をその親変数の祖先変数に追加する。次にルール生成部１１２は、その一覧表に含まれる各変数について、一覧表に含まれる変数からその祖先変数と子孫変数を除外した変数群を求め、その変数群を組み合わせ可能な変数群として保持する。
【００３６】
各変数について組み合わせ可能な変数を表す例が図９の組み合わせ可能対応表９００である。組み合わせ可能対応表９００は、各セルの数値が組み合わせ可能かどうかを表しており、数値が１の場合は組み合わせ可能であり、数値が０の場合は組み合わせ不可である。
【００３７】
次にルール生成部１１２は、上記の一覧表に含まれる変数を用いて１変数によるルール候補を作成するために、カテゴリ値テーブル２３０のカテゴリ値２３２を用いて１つの変数を１つ以上のカテゴリ値に分解し、組み合わせた変数の個数「１」を組み合わせ数４１１に格納する。またルール生成部１１２は、変数名をルールリスト４１０の変数名２２１に格納し、その変数に属する１つのカテゴリ値をルールリスト４１０のカテゴリ値２３２に格納し、条件部該当数４１２とルール該当数４１３を０で初期化する。
【００３８】
以後、ルール生成部１１２は、既に組み合わされた変数に組み合わせ可能な新たな変数を追加してルール候補を作成し、各変数に含まれるカテゴリ値の組み合わせに分解し、組み合わせた変数の個数を組み合わせ数４１１に格納する。またルール生成部１１２は、複数の変数名をルールリスト４１０の変数名２２１に各々格納し、これら変数群に属するカテゴリ値をルールリスト４１０のカテゴリ値２３２に格納し、条件部該当数４１２とルール該当数４１３を０で初期化する処理を、追加する変数が無くなるまで繰り返す。ここで新たな変数を追加する際に、ルール生成部１１２は、既に組み合わされた変数に対する組み合わせ可能な変数群を、各変数の組み合わせ可能な変数群の積集合から求め、組み合わせ可能な変数群に含まれている変数から追加するものを選択する。
【００３９】
次にルール生成部１１２は、ステップ５０６で作成したルール候補の各々について、条件部該当数４１２とルール該当数４１３をカウントアップする（ステップ５０７）。ルール生成部１１２は、ステップ５０５で求めた事例テーブル２００の各データレコードのカテゴリ値一覧にステップ５０６で作成したルールリスト４１０を適用し、ルール条件部、すなわちカテゴリ値２３２が１個の場合も含めてすべての組み合わせ可能なカテゴリ値の各々の組み合わせについて各データレコードのカテゴリ値の組み合わせと合致する場合には条件部該当数４１２に１を加算する。またそのルール条件とステップ５０３で指定されたルール結論部のカテゴリ値を同時に満足する場合にはルール該当数４１３に１を加算する。
【００４０】
ルール生成部１１２は、ルールリスト４１０中の各カテゴリ値２３２の組み合わせが各データレコードのカテゴリ値一覧に含まれるか否か判定する。含まれる場合にはその組み合わせに対応する条件部該当数４１２に１を加算する。また条件部を満足した当該組み合わせについてそのデータレコードのルール結論部のカテゴリ値と合致するか、すなわちルール候補を満足するか否か判定する。ルール候補を満足する場合にはその組み合わせに対応するルール該当数４１３に１を加算する。これらの処理をルールリスト４１０中のすべてのカテゴリ値の組み合わせについて繰り返す。さらにこの処理を事例テーブル２００のすべてのデータレコードについて繰り返す。
【００４１】
例えばステップ５０３で分析者から受け取ったカテゴリ値が「３５」の時、カテゴリ値テーブル２３０のカテゴリ値２３２を探索するとレコード２３７が一致する。レコード２３７のカテゴリ化条件は「優良」であるから、データレコード２１２の場合、変数名が「顧客種別」の変数値は「優良」であるから、分析者から受け取ったカテゴリ値と一致する。またデータレコード２１２における「商品Ａ」の変数値は「２万円」であり、カテゴリ値テーブル２３０において変数値が対応するのはレコード２３３であり、カテゴリ値は「２」である。１変数によるルール候補が変数「商品Ａ」であったとき、データレコード２１２のカテゴリ値は「２」であるから、ルールリスト４１０の変数名２２１が「商品Ａ」でカテゴリ値２３２「２」のリストの条件部該当数４１２とルール該当数４１３にそれぞれ１を加算する。
【００４２】
次に分析者がユーザ入力装置１０２を介して階層表示部７０１に表示された変数の階層構造の中の所望の変数を指定すると、構造処理部１１１は、その変数名を受け取る（ステップ５０８）。この変数は、変数の階層構造の中でどのレベルの階層と変数に重点を置いてルールを作成するかを分析者が指定するものである。次に構造処理部１１１は、抽象度テーブル４００を参照して受け取った変数の抽象度４０１を求める。
【００４３】
次にルール生成部１１２は、ステップ５０８で指定された変数を最重要の変数としてルール候補の評価を行う（ステップ５０９）。ルール生成部１１２は、抽象度テーブル４００を参照してルールリスト４１０に現れる各変数名２２１に対応する抽象度４０１を求める。次にルール生成部１１２は、ステップ５０８で受け取った抽象度と各ルール候補の条件部Ｘに含まれる変数の抽象度との平均２乗誤差を求め、その逆数をそのルール候補についての重みＷ（Ｘ）とする。この平均２乗誤差が０の時には０に近い値に置き換える。
【００４４】
次にルール生成部１１２は、各ルール候補の条件部Ｘがデータ中に出現する確率Ｐ（Ｘ）を求める。Ｐ（Ｘ）は、事例テーブル２００に含まれる全データ件数に対するそのルール候補に対応する条件部該当数４１２の比率である。次にルール生成部１１２は、ルールの結論部Ｙがデータ中に出現する確率Ｐ（Ｙ）を求める。Ｐ（Ｙ）は、事例テーブル２００に含まれる全データ件数に対するルール結論部Ｙに合致するデータ件数の比率である。次にルール生成部１１２は、各ルール候補の条件部Ｘのうち結論部Ｙが出現する確率Ｐ（Ｙ｜Ｘ）を求める。Ｐ（Ｙ｜Ｘ）は、そのルール候補に対応する条件部該当数４１２に対する対応するルール該当数４１３の比率である。
【００４５】
次にルール生成部１１２は、Ｗ（Ｘ）、Ｐ（Ｘ）、Ｐ（Ｙ）およびＰ（Ｙ｜Ｘ）を用いて、次の式によって各ルール候補の評価尺度μを計算する。
【００４６】
【数１】
2005122509.tif 000003
評価尺度μは、条件部Ｘが結論部Ｙをいかに適切に説明するかの度合を示す数値であり、μが大きいほど評価の高いルール候補と言える。
【００４７】
次にルール生成部１１２は、評価尺度μの大きいルール候補から順にＩＦ−ＴＨＥＮの形式で表示装置１０３に表示する（ステップ５１０）。このときルール生成部１１２は、カテゴリ値テーブル２３０を参照してルール候補に含まれるカテゴリ値を文字列で表現されるカテゴリ化条件に変換し、変数名＝カテゴリ化条件の形式で表示する。
【００４８】
図８は、表示装置１０３に表示されるルール出力画面８００の例を示す図である。ルール出力画面８００は、図８（ａ）に示すように、ルール階層表示部８０１とルール表示部８０２とに区分される。ルール表示部８０２は、ルール候補をＩＦ−ＴＨＥＮ形式で表示する領域であり、評価尺度μが最大であるルール候補から順に評価尺度μの大きい順にルール候補を表示する。ルール階層表示部８０１は、第２の実施例において、指定されたルール候補に関する変数とその上下の階層構造を表示する。図８（ａ）のルール階層表示部８０１は、ルール表示部８０２の先頭に表示されるルール候補が指定されたとき、そのルール候補の条件部に含まれる変数である「液晶」「ビデオ」「関東」を各々中心としてその上下の階層構造に属する変数の変数名を表示している。ただし中心となる変数の子孫変数については、表示領域を有効に使用するために、子孫変数の中で最も評価の高い変数を表示している。子孫変数に含まれる各変数の評価は、その変数のみを条件部とするルール候補の評価尺度によって決まる。この例ではステップ５０８で分析者が指定した変数が「ビデオ」であり、「ビデオ」がルール階層表示部８０１の中心線８０４上に位置づけられている。図８（ｂ）は、図８（ａ）のルール階層表示部８０１中で重複する商品３０５を統合して表示するものである。
【００４９】
第１の実施例は、各変数に対して抽象度を計算し、階層構造から自明となる変数値の組み合わせを除外して評価対象とするルール候補を作成する。また事例データを読み出してルール候補の条件部が出現する回数及びルール候補の条件部と結論部が同時に出現する回数とをカウントアップする。最後に分析者が着目した階層を反映するようにルール候補の評価尺度を計算して結果の表示を行うことによって、分析者の意図を反映したルール候補の評価が行える。
【００５０】
第１の実施例によれば、分析者から受け取った変数の抽象度とルール候補に含まれる変数の抽象度との差を用いて、評価尺度を重み付けすることができる。これによって分析者が着目する階層の変数を含むルール候補に高い評価尺度を与えることができる。これによって課題１を解決することができる。
【００５１】
また第１の実施例によれば、評価の高いルール候補を絞り込むために、評価関数を用いる。これによって従来技術のように分析者があらかじめ必要な変数値（キーワード）と不必要な変数値を把握する必要がない。これによって課題２を解決することができる。
【００５２】
図６は、第２の実施例の階層構造データ分析の処理手順を示すフローチャートである。第２の実施例のステップ５０１〜ステップ５１０は、第１の実施例と同じである。第２の実施例は、第１の実施例にステップ６０１〜ステップ６０４を加えたものである。
【００５３】
分析者がルール表示部８０２中のいずれかのルール候補を指定したとき、変数パス処理部１１３は、そのルール候補の条件部に含まれる変数名＝カテゴリ化条件の組み合わせをカテゴリ値の組み合わせに変換する（ステップ６０１）。
【００５４】
次に変数パス処理部１１３は、指定されたルール候補に関する変数とその上下の階層構造を表示する（ステップ６０２）。変数パス処理部１１３は、ステップ６０１で受け取ったカテゴリ値の組み合わせについて、カテゴリ値テーブル２３０の変数名２２１とカテゴリ値２３２との対応を参照してカテゴリ値ごとに注目する変数の変数名を求める。次に変数パス処理部１１３は、祖孫関係テーブル２２０の変数名２２１と親変数名２２２との対応を参照して注目する変数名ごとに祖先変数を探索する。次に抽象度テーブル４００の変数名２２１と抽象度４０１との対応を参照してその祖先変数の抽象度を読み出す。次に変数パス処理部１１３は、ルール階層表示部８０１に表示する祖先変数の垂直位置をルート変数の抽象度と祖先変数の抽象度との差で計算し、ルール階層表示部８０１に祖先変数の階層構造を表示する。
【００５５】
次に変数パス処理部１１３は、祖孫関係テーブルの変数名２２１と親変数名２２２との対応を参照して上記注目する変数名ごとに子孫変数を探索する。次に変数パス処理部１１３は、カテゴリ値テーブル２３０の変数名２２１とカテゴリ値２３２との対応を参照して得られた子孫変数に該当するカテゴリ値を各々求める。次に変数パス処理部１１３は、子孫変数に含まれる各変数の各カテゴリ値のみを条件部とし、ステップ５１０で表示したカテゴリ値又はその組み合わせを結論部とするルール候補を作成し、各ルール候補の評価尺度を求める。次に子孫変数群に含まれる変数の各カテゴリ値が最大のカテゴリ値を求め、カテゴリ値テーブル２３０の変数名２２１とカテゴリ値２３２との対応を参照して変数名を求める。
【００５６】
次に変数パス処理部１１３は、祖孫関係テーブル２２０を参照して抽出した１つの子孫変数とステップ６０１で受け取ったカテゴリ値から求めた注目する当該変数との間に含まれる変数があればすべて抽出する。次に変数パス処理部１１３は、このようにして注目する変数について抽出した子孫変数について抽象度テーブル４００の変数名２２１と抽象度４０１との対応を参照してルール階層表示部８０１に表示する子孫変数の垂直位置をルート変数の抽象度と子孫変数の抽象度との差によって計算し、ルール階層表示部８０１に注目変数の抽出された子孫変数の階層構造を表示する。このようにして変数パス処理部１１３は、上記ステップ６０２の処理をステップ６０１で受け取ったカテゴリ値の組み合わせに含まれる各々の注目する変数について繰り返す。
【００５７】
変数パス処理部１１３は、ルール階層表示部８０１に分析者から指定されたルール評価の条件部に含まれるカテゴリ値から求めた注目する変数をその抽象度に従って配置して表示し、注目する変数の変数名を強調表示する。
【００５８】
次に変数パス処理部１１３は、入力装置１０２を介して分析者が別のルール候補を選択するのを待つ。ルール候補が選択されたとき（ステップ６０３Ｙｅｓ）、ステップ６０１に戻って上記処理を繰り返す。分析者の指示がルール候補の選択でなければステップ６０４へ行く。
【００５９】
表示画面が着目抽象度指定画面７００に戻り、分析者が入力装置１０２を介して階層表示部７０１に表示された変数の階層構造の中のある変数を指定すると（ステップ６０４Ｙｅｓ）、変数パス処理部１１３は、ステップ５０８に制御を移す。分析者が処理の終了を指示したとき（ステップ６０４Ｎｏ）、変数パス処理部１１３は、処理を終了する。
【００６０】
第２の実施例によれば、ステップ５０７でルール候補のカウントアップを行っておくことによって、ステップ６０４で分析者から着目する階層構造の変更があった場合にも、ステップ５０８から処理を開始できるため、再度ステップ５０７の処理を行う必要がなくなり、処理時間を短縮できる。これによって課題３を解決することができる。
【００６１】
また第２の実施例によれば、分析者からルール候補の指定を受けて、そのルール条件部に含まれる注目すべき変数を中心とする階層構造を表示するとき、その変数の子孫変数の経路を１本に絞り込むことができる。これによってその変数の子孫変数をすべて画面上に表示する場合に比べて、表示する変数の数を減らすことができるため、使用する画面領域を少なくすることができる。これによって課題４を解決することができる。
【図面の簡単な説明】
【００６２】
【図１】実施形態の階層構造データ分析装置の概略構成図である
【図２】関連するテーブルのデータ構成例を示す図である。
【図３】変数の階層構造の例を示す図である。
【図４】抽象度テーブルとルールリストのデータ構成例を示す図である。
【図５】第１の実施例の階層構造データ分析の処理フローチャートである。
【図６】第２の実施例の階層構造データ分析の処理フローチャートである。
【図７】着目抽象度指定画面の例を示す図である。
【図８】ルール出力画面の例を示す図である。
【図９】組み合わせ可能表の例を示す図である。
【符号の説明】
【００６３】
１１１：構造処理部、１１２：ルール生成部、１１３：変数パス処理部、１１４：抽象度データベース、１１５：ルールデータベース、１２１：事例データベース、１２２：構造データベース、１２３：カテゴリ値データベース。
【図１】
2005122509.tif 000004
【図２】
2005122509.tif 000005
【図３】
2005122509.tif 000006
【図４】
2005122509.tif 000007
【図５】
2005122509.tif 000008
【図６】
2005122509.tif 000009
【図７】
2005122509.tif 000010
【図８】
2005122509.tif 000011
【図９】
2005122509.tif 000012