(57)【特許請求の範囲】
【請求項１】
データベースにおける属性と属性値の組を項目、項目の組合せを項目パターンとするとき、０以上の属性値の欠損したレコードからなるデータベースから、属性値の欠損していない２以上の項目の間に成り立つ相関ルールをコンピュータの信号処理を通じて抽出する方法であって、
コンピュータが、
データベースのレコードを順番に読み出した後、レコード毎に属性値が欠損データでない属性の属性リストを取り出し、当該属性リストに各レコードを割り当てることにより、同一の属性が欠損データであるレコードの集合であるデータベース分割に、前記データベースを分割する第１のステップと、
前記データベース分割毎に、特定の属性を含む項目パターンが出現するレコード数を前記項目パターンの局所支持回数として数え上げる第２のステップと、
前記データベース分割毎に数え上げた前記項目パターンの局所支持回数を、同じ項目パターンについて加算し、データベース全体で前記項目パターンが出現するレコード数を表す全域支持回数を算出する第３のステップと、
前記第３のステップにおいて前記全域支持回数が算出された項目パターンについて、当該項目パターンの部分パターンを前提部とし、前記部分パターンを除いた前記項目パターンの残りの部分パターンを結論部とする相関ルールを、前記項目パターンの全ての部分パターンについて作成する第４のステップと、
相関ルールの導出が終了した前記特定の属性を含む全てのデータベース分割から前記特定の属性を除外して新たなデータベース分割を作成する第５のステップと、
前記第５のステップの後、前記データベースを構成する全ての属性に対する処理の終了が確認されるまで、前記第２のステップに帰還する第６のステップと
を含むことを特徴とする相関ルール抽出方法。
【請求項２】
前記相関ルールは、
当該相関ルールを構成する項目パターンの属性値がいずれも欠損していないレコード数の、該項目パターンを含む前記データベース全体のレコード数に対する割合である全域支持度が最小支持度以上であり、かつ、
相関ルールの前提部を構成する部分パターンを含むレコードが、該相関ルールの結論部を構成する部分パターンも同時に含むレコードの割合を示すデータベース全体の確信度が最小確信度以上であり、かつ、
相関ルールの前提部または結論部を構成する項目パターンに含まれる属性がすべて欠損データでないレコードの前記データベース全体のレコードの数に対する割合であるレコード利用度が最小レコード利用度以上である
場合に作成される
ことを特徴とする請求項１記載の相関ルール抽出方法。
【請求項３】
前記第２のステップにおいて、コンピュータは、
前記項目パターンについて算出された前記局所支持回数の、対応するデータベース分割のレコード数に対する割合を局所支持度として算出し、当該局所支持度が対応するデータース分割において事前に指定された最小値以上である場合に、当該項目パターンを局所頻出パターンとして抽出し、
前記第３のステップにおいて、コンピュータは、
前記第２のステップにおいて局所頻出パターンとして抽出された項目パターンについてのみ各データベース分割の局所支持回数を加算して、前記データベース全体における当該項目パターンの前記全域支持回数を算出し、さらに、当該全域支持回数をデータベース全体のレコード数で除算することにより当該項目パターンを含むレコード数の前記データベース全体に対する割合を示す全域支持度を計算する
ことを特徴とする請求項２記載の相関ルール抽出方法。
【請求項４】
前記第３のステップにおいて、コンピュータは、
前記項目パターンを含むデータベース分割に、前記局所支持回数が既知の第１のデータベース分割と、前記局所支持回数が未知の第２のデータベース分割が含まれる場合、コンピュータは、当該項目パターンの全域支持回数の上限値を、当該項目パターンの前記第１のデータベース分割における既知の局所支持回数と、当該項目パターンに含まれる属性がすべて欠損データでない部分パターンの前記第２のデータベース分割における既知の局所支持回数の最小値と、の和として計算するステップと、
前記計算した全域支持回数の上限値から全域支持度の上限値を計算するステップと、
計算された前記全域支持度の上限値が前記最小支持度未満である項目パターンを前記第３のステップの項目パターンから除外するステップと
をさらに有することを特徴とする請求項２記載の相関ルール抽出方法。
【請求項５】
前記第３のステップにおいて、コンピュータは、
前記項目パターンＸの含む属性が欠損データでない前記データベース分割について、
当該データベース分割の数をｍ個（ｍは１以上の整数）とし、
前記項目パターンＸの局所支持回数が既知の前記第１のデータベース分割をＤＢ(１)、・・・、ＤＢ(ｎ)（ｎは１以上の整数）とし、
前記項目パターンＸの局所支持回数が未知の前記第２のデータベース分割をＤＢ(ｎ＋１)、・・・、ＤＢ(ｍ)とし、
前記第１及び第２のデータベース分割の各レコード数をＲＣ(ＤＢ(ｉ))とし、
項目パターンＸの前記データベース分割ＤＢ(ｉ)における局所支持回数をＬＳ(Ｘ：ＤＢ(ｉ))とし、
前記項目パターンＸの部分パターンをＸ’とするとき、
前記項目パターンＸのデータベース全体における前記全域支持度の上限値Ｕ(Ｘ)を下式によって計算することを特徴とする請求項４記載の相関ルール抽出方法。
【数１】
0004676498.tif 000021
【請求項６】
データベースにおける属性と属性値の組を項目、項目の組合せを項目パターンとするとき、０以上の属性値の欠損したレコードからなるデータベースから、属性値の欠損していない２以上の項目の間に成り立つ相関ルールを抽出するシステムであって、
前記相関ルールを構成する項目パターンの属性値がいずれも欠損していないレコード数の、該項目パターンを含む前記データベース全体のレコード数に対する割合である全域支持度の最小値と、
相関ルールの前提部を構成する部分パターンを含むレコードが、該相関ルールの結論部を構成する部分パターンも同時に含むレコードの割合を示すデータベース全体の確信度の最小値と、
相関ルールの前提部または結論部を構成する項目パターンに含まれる属性がすべて欠損データでないレコードの前記データベース全体のレコードの数に対する割合であるレコード利用度の最小値と
を入力するユーザ入力部と、
前記データベースのレコードを順番に読み出した後、レコード毎に属性値が欠損データでない属性の属性リストを取り出し、当該属性リストに各レコードを割り当てることにより、同一の属性が欠損データであるレコードの集合であるデータベース分割に、前記データベースを分割するデータベース分割作成部と、
各データベース分割において局所支持度の最小値を満たす特定の属性を含む項目パターンが各データベース分割に出現するレコード数を当該項目パターンの局所支持回数として計数した後、当該局所支持回数の各データベース分割のレコード数全体に対する割合である局所支持度を算出し、さらに、算出された局所支持度が事前に定められた最小値以上となる項目パターンだけを局所頻出パターンとして抽出する局所頻出パターン抽出部と、
各データベース分割から局所頻出パターンとして抽出された前記局所頻出パターンの局所支持回数を、同じ項目パターンについて加算し、データベース全体において前記局所頻出パターンが出現するレコード数を表す全域支持回数を算出した後、当該全域支持回数のデータベース全体に対する割合である全域支持度を算出し、さらに、算出された全域支持度が前記最小値以上となる局所頻出パターンだけを全域頻出パターンとして抽出する全域頻出パターン抽出部と、
前記全域頻出パターンについて、当該項目パターンの部分パターンを前提部とし、前記部分パターンを除いた前記項目パターンの残りの部分パターンを結論部とする相関ルールを、前記項目パターンの全ての部分パターンについて導出し、その後、相関ルールの導出が終了した前記特定の属性を含む全てのデータベース分割から前記特定の属性を除外した新たなデータベース分割を前記局所頻出パターン抽出部に与える処理を前記データベースを構成する全ての属性に対する処理の終了が確認されるまで実行する、相関ルール導出部と、
導出された相関ルールを表示する出力部と
を含むことを特徴とする相関ルール抽出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース及びデータウェアハウスを対象にしたデータ解析方法及びシステムに関し、特にデータベースのレコードを解析してレコードに含まれるデータの相関性を明らかにするデータマイニングに関する。
【背景技術】
【０００２】
膨大なデータを解析することによってその中に埋もれた有用な情報を抽出するデータマイニングにおいて、データの相関（連関）を示す相関ルールが知られている。例えば、スーパーマーケットのバスケットデータのデータマイニングを考えてみる。スーパーマーケットには複数の商品があり、顧客はその一部の商品の組合せを購入する。顧客が購入した商品の組合せがバスケットデータとして記録される。多数のバスケットデータを解析する場合、有意な商品パターン、つまり、複数の顧客に購入した現れるパターンを抽出することが望ましい。このパターンを頻出パターン（大品目セット，ラージ品目セット）と呼ぶ。「商品Ａと商品Ｂを同時に購入した顧客は、商品Ｃと商品Ｄも同時に購入することが多い。」のような相関ルールが抽出された場合、商品ＣとＤの売り上げと商品ＡとＢの売り上げに関連があることが分かり、商品の配置や特売品の選定、価格の設定など販売の方針決定に役立てることが出来る。【０００３】
相関ルールを抽出する研究は、データマイニングの分野において行われてきた。例えば、特許文献１、特許文献２、非特許文献１に記載の方法がある。特許文献１、特許文献２、非特許文献１など従来手法では、複数の２値属性を含むレコードの集合からなるデータベースから、ユーザによって予め設定された支持度の最小値（最小支持度）以上となる属性値が真となる組合せを抽出し、抽出した組合せからユーザによって予め設定された確信度の最小値（最小確信度）以上となる相関ルールを導出していた。各々のレコードで、属性と属性値の組を項目と呼ぶ。支持度とは全データベース中で項目の組合せを含むレコードの割合である。これら方法により抽出される支持度の最小値を超える項目の組合せを頻出パターンと呼ぶ。相関ルールは頻出パターンに含まれる項目パターンの部分集合から導出する。これら従来技術では、欠損データを含まない理想的なデータベースを解析対象としており、欠損データを含むデータベースが考慮されていない。【０００４】
しかしながら、解析対象とするデータベースには欠損データが存在する場合がある。例えば、医療分野における遺伝子解析データの場合、検体の状態、解析する座位の周辺の遺伝子配列、解析装置の状態によって、遺伝子型が解析出来ない座位が存在する。患者毎に遺伝子型が解析出来ない座位は異なり、個々の患者においても遺伝子型を解析出来る座位と解析出来ない座位が混在する。複数の患者について、遺伝子型が解析出来た座位の遺伝子データと症例データを解析することによって、有用な情報を得ることが出来る。遺伝子データと症例データを解析対象として相関ルールを抽出することにより、遺伝子と薬剤の効果との関係などを知ることが出来る。例えば、「遺伝子ＡのＸ番目の座位の遺伝子型がＹ型の患者は、薬剤Ｃに対してアレルギー反応を起こす。」のような相関ルールが抽出された場合、患者の遺伝子ＡのＸ番目の座位の型を調べることにより、薬剤Ｃを処方すべきか否かの判断に役立ち、各患者に適した医療を行うことが出来る。従来技術を適用した場合、項目パターンの支持度が誤った値となり、正しい相関ルールを抽出することが出来ない。【０００５】
別の例を示す。例えば、スーパーマーケットのバスケットデータの場合、個々の店舗によって、販売する商品が異なる場合がある。例えば、統括する地域内の複数の店舗のバスケットデータを解析することによって、統括する地域内の商品の販売傾向を知ることが出来る。商品Ａと商品Ｂの関連を調べるためには、商品Ａと商品Ｂを共に販売する店舗のバスケットデータのみを利用する。商品Ａまたは商品Ｂを販売していない店舗のバスケットデータを解析に利用した場合、誤った結果を得ることになる。【０００６】
欠損データを含むデータベースから相関ルールを抽出する方法に関しては、非特許文献２がある。非特許文献２の方法では、複数の離散値属性を持つレコードが複数ある、いわゆる縦かける横の表形式のデータベースから、ユーザにより予め設定された支持度の最小値とレコード利用度の最小値以上となる相関ルールを抽出していた。ここで、属性と属性値の組を項目と呼び、項目の組合せを項目パターンと呼ぶ。項目パターンが現れるデータベース中のレコード数を支持回数と呼び、項目を構成する属性が欠損データでないレコードの中で項目の組合せを含むレコードの割合を支持度と呼ぶ。相関ルールに含まれる属性が欠損データでないレコード数のデータベース中の全レコード数に対する割合をレコード利用度と呼ぶ。【０００７】
非特許文献２の方法の相関ルールを抽出する手順を説明する。最初のステップでは、データベース中のレコードを取り出し、各項目について該項目が出現するレコード数の計数、該項目を構成する属性が欠損データであるレコードの識別子を取得する。ある項目Ｘが出現するレコード数を支持回数、ある項目Ｘを構成する属性が欠損データであるレコードの識別子のリストを欠損レコードリストと呼ぶ。すべてのレコードについて計数が終わると、各項目の支持度を計算し、支持度の最小値以上となる項目を取り出す。支持度が最小値以上となる項目を頻出項目と呼ぶ。ここで、ある項目Ｘの支持度は、項目Ｘの支持回数とデータベース全体のレコード数から項目Ｘの欠損レコードリストの識別子の数を引いた値との商である。次のステップでは、２つの頻出項目を組合せ、２つの項目からなる項目パターンを作成する。支持回数が未知の項目パターンを候補パターンと呼ぶ。各候補パターンについて、候補パターンを構成する項目の欠損レコードリストの識別子の和集合を該候補パターンの欠損レコードリストとする。再び、データベース中のレコードを取り出し、各候補パターンについて支持回数を計数する。すべてのレコードについて計数が終わると、各候補パターンの支持度を計算し、支持度が最小値以上となる候補パターンを取り出す。支持度が最小値以上となる候補パターンを頻出パターンと呼ぶ。以降のステップでは、ｋ個の項目から構成される頻出パターンにおいて、（ｋ−１）個の項目が共通する頻出パターンを組合せ、（ｋ＋１）個の候補パターンを作成し、欠損レコードリストを取得し、データベース中のレコードを取り出し、各候補パターンの支持回数を計数し、支持度を計算し、頻出パターンを取り出すステップを繰り返す。すべての頻出パターンが抽出された時点で、ｋ個の項目からなる頻出パターンについて、該頻出パターンを構成する項目パターンの部分パターンから相関ルールを作成する。
【特許文献１】特開平８−２８７１０６号公報
【特許文献２】米国特許第５，７９４，２０９号明細書
【非特許文献１】G.Liu, H.Lu, Y.Xu, J.Yu, "Ascending frequency ordered prefix-tree: efficient mining of frequent patterns", in proceedings of International Conference on Database Systems for Advanced Applications,2003
【非特許文献２】A.Ragel, B.Cremilleux, "Treatment of missing values for association rules", in proceedings of Pacific-Asia Conference on Knowledge Discovery and Data Mining,1998
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来技術で述べたように、欠損を含むデータベースから相関ルールを抽出するのに特許文献１，２、非特許文献１をそのまま使用すると、相関ルールを正確に抽出することが出来ないという問題がある。【０００９】
非特許文献２の方法は欠損を含むデータベースから相関ルールを抽出する方法であるが、候補パターンの作成とデータベーススキャンを繰り返すため、処理性能が悪い。さらに、最初のステップで抽出された頻出項目に含まれない相関ルールを抽出することが出来ない。例えば、データベース全体のレコード数を１２、ある項目Ｘの支持回数を４、項目Ｘの欠損レコードリストを｛１，２｝、ある項目Ｙの支持回数を５、項目Ｙの欠損レコードリストを｛２，３，４，５，６｝とし、支持度の最小値を０．５とする。ここで、項目ＸとＹを組合わせた項目パターンの支持回数が４の場合、該項目パターンの欠損レコードリストは｛１，２，３，４，５，６｝となり、支持度は０．６７となるため、頻出パターンとなる。したがって、項目ＸとＹからなる相関ルールが抽出されなければならない。しかし、項目Ｘは頻出項目ではないため、非特許文献２の方法では項目Ｘを含む相関ルールを抽出することは出来ない。このように非特許文献２の方法は欠損を含むデータベースを解析対象としているが、すべての相関ルールを抽出することが出来ないという欠点がある。【００１０】
本発明の第１の目的は、欠損を含むデータベース中に存在する欠損のないデータの間に成り立つすべての相関ルールを抽出する方法およびシステムを提供することである。【００１１】
本発明の第２の目的は、相関ルールを抽出するために同一の属性が欠損データであるレコードの単位にデータベースを分割し、各分割されたデータベース毎に項目パターンの支持回数を計数することによってデータベース全体での支持度を求め、相関ルールを抽出する方法およびシステムを提供することである。【００１２】
本発明の第３の目的は、相関ルールを抽出するために探索する項目パターンの支持回数計数処理量を低減する方法を提供することである。
【課題を解決するための手段】
【００１３】
本発明による相関ルール抽出方法の１つの特徴は、２以上の属性からなるレコードと、０以上の欠損データを含むレコードの集合からなるデータベースから、ユーザにより指定された支持度の最小値、確信度の最小値、レコード利用度の最小値を満たす相関ルールを、同一の属性が欠損データであるレコードの単位にデータベースを分割する処理、分割されたデータベースにおいて支持度の最小値を満たす項目パターンである局所頻出パターンを抽出する処理、局所頻出パターンについてデータベース全体での支持度を求める処理、データベース全体での頻出パターンから相関ルールを導出する処理によって抽出することである。【００１４】
本発明の別の特徴は、同一の属性が欠損データであるレコードの単位に分割されたデータベースにおいて、少なくとも１つのデータベース分割において支持度と支持回数が既知であり、少なくとも１つのデータベース分割において支持度と支持回数が未知の局所頻出パターンのデータベース全体での支持度の上限値を、支持度が既知のデータベース分割においてはその項目パターンの支持回数を、支持度が未知のデータベース分割においてはその項目パターンの部分パターンの支持回数を用いて計算することにより、該局所頻出パターンの支持回数を数え上げるデータベース分割を限定することである。【００１５】
本発明の別の特徴は、特定の属性を含む相関ルールから順に抽出し、該属性を含む相関ルール抽出処理が終了した時点で、該属性を以降の解析対象から除外することによって、解析処理において同時に必要なデータを限定することである。【００１６】
すなわち、本発明による相関ルール抽出方法は、データベースにおける属性と属性値の組を項目、項目の組合せを項目パターンとするとき、属性値の欠損したレコードを含むデータベースから、属性値の欠損していない２以上の項目の間に成り立つ相関ルールを抽出する相関ルール抽出方法であって、データベースを分割する第１のステップと、特定の属性を含む項目パターンについて、分割されたデータベース毎に項目パターンの支持回数を計数することによって分割されたデータベースにおいて予め設定された支持度の最小値以上となる項目パターンである局所頻出パターンを抽出する第２のステップと、抽出された局所頻出パターンのデータベース全体での支持度を求める第３のステップと、抽出された頻出パターンから相関ルールを導出する第４のステップと、相関ルール抽出処理が終了した属性を以降の解析対象から除外する第５のステップとを含むことを特徴とする。【００１７】
この方法によると、欠損データを含むデータベースから、欠損のないデータに成り立つ相関ルールをすべて抽出することが可能となる。【００１８】
属性値は、離散値または離散値に対応付けることが出来る値であることが好ましい。【００１９】
第２から第４のステップにおいては、特定の属性は１以上の属性であれば良く、複数の属性でも良い。【００２０】
確信度の最小値、および、レコード利用度の最小値は指定されなくても良く、その場合には確信度の最小値とレコード利用度の最小値は０として処理することでも良い。【００２１】
ユーザ入力などによって、抽出する相関ルールに含まれる項目、または、属性が指定されている場合、第１のステップにおいて、指定された項目および属性のみを含む分割されたデータベースを構築するのが好ましい。【００２２】
項目パターンＸが属する属性リストを含むすべてのデータベース分割において、項目パターンＸの局所支持回数が既知の場合、項目パターンＸのデータベース全体での支持度である全域支持度は下記の式(1)によって計算される。
【数１】
0004676498.tif 000002
【００２３】
ここで、項目パターンＸが属する属性リストを含むデータベース分割をｍ個（ｍは１以上の整数）、項目パターンＸの局所支持回数が既知のデータベース分割をＤＢ(１)，・・・，ＤＢ(ｍ)、データベース割ＤＢ(ｉ)が含むレコード数をＲＣ(ＤＢ(ｉ))、項目パターンＸのデータベース分割ＤＢ(ｉ)における局所支持回数をＬＳ(Ｘ：ＤＢ(ｉ))とする。【００２４】
項目パターンＸが属する属性リストを含むデータベース分割において、項目パターンＸの局所支持回数が未知のデータベース分割が存在する場合、項目パターンＸの局所支持回数がどの部分パターンの局所支持回数よりも大きな値となることがないため、項目パターンＸの全域支持度の上限値は下記の式(2)によって計算される。
【数２】
0004676498.tif 000003
【００２５】
ここで、項目パターンＸが属する属性リストを含むデータベース分割をｍ個（ｍは１以上の整数）、項目パターンＸの局所支持回数が既知のデータベース分割をＤＢ(１)，・・・，ＤＢ(ｎ)（ｎは１以上の整数）、項目パターンＸの局所支持回数が未知のデータベース分割をＤＢ(ｎ＋１)，・・・，ＤＢ(ｍ)、データベース分割ＤＢ(ｉ)が含むレコード数をＲＣ(ＤＢ(ｉ))、項目パターンＸのデータベース分割ＤＢ(ｉ)における局所支持回数をＬＳ(Ｘ：ＤＢ(ｉ))、項目パターンＸの部分集合をＸ’とする。【００２６】
計算された全域支持度の上限値がユーザから指定された最小支持度未満である項目パターンについて、局所支持回数が未知のデータベース分割における計数を回避することによって、解析処理量を低減することが出来る。
【発明の効果】
【００２７】
本発明によると、欠損データを含むデータベースから、欠損していないデータ間に成り立ち、予め設定した支持度の最小値を満たすすべての相関ルールを抽出することが出来る。また、同一の属性が欠損データであるレコードの塊にデータベースを分割し、分割されたデータベースの単位で処理を行い、特定の属性を含む項目パターンに限定して相関ルールを抽出し、処理の終了した属性に関するデータを以降の解析対象から除外することによって解析に必要なデータを限定すること、分割されたデータベースの中で局所的に支持度の最小値を満たす項目パターンのみを処理すること、分割されたデータベース毎の局所的な支持度からデータベース全体での支持度の上限値を推定して数え上げるレコードを限定することによって、解析処理量を低減することが出来る。
【図面の簡単な説明】
【００２８】
【図１】本発明の第１の実施形態のシステム構成例を示す図。
【図２】本発明における相関ルール抽出処理の概要を示すフローチャート。
【図３】本発明におけるデータベース分割の概要を示すフローチャート。
【図４】本発明におけるデータベース分割処理を示すフローチャート。
【図５】本発明における最小レコード利用度を満たさない属性を削除する処理を示すフローチャート。
【図６】本発明における最小支持度と最小レコード利用度を同時に満たすことがない項目を検出する処理を示すフローチャート。
【図７】本発明における相関ルール導出処理を示すフローチャート。
【図８】本発明における相関ルール抽出処理の終了した属性を削除する処理を示すフローチャート。
【図９】本発明の第２の実施形態のシステム構成例を示す図。
【図１０】本発明におけるデータベース分割処理の概要を示すフローチャート。
【図１１】本発明におけるデータベース分割処理を示すフローチャート。
【図１２】本発明における相関ルール抽出処理の終了した属性を削除する処理を示すフローチャート。
【図１３】本発明の第３の実施形態のシステム構成例を示す図。
【図１４】本発明における相関ルール抽出処理の概要を示すフローチャート。
【図１５】局所支持回数の計数に用いられるデータ構造を示す概略図。
【図１６】データ構造の構築処理手順を示すフローチャート。
【図１７】データ構造を利用した局所支持回数の計数処理手順を示すフローチャート。
【図１８】本発明の実施例におけるデータ構造の例を示す図。
【図１９】本発明の実施例におけるデータ構造の例を示す図。
【図２０】本発明の実施例におけるデータ構造の例を示す図。
【図２１】本発明の第４の実施形態のシステム構成例を示す図。
【図２２】本発明の第５の実施形態のシステム構成例を示す図。
【図２３】本発明の実施例における解析対象データベースの例を示す図。
【符号の説明】
【００２９】
１０１  処理部
１０２  記憶部
１０３  データ格納部
１０４  入力部
１０５  出力部
９０１  記憶部
１３０１  記憶部
２１０１  処理装置
２１０２  記憶装置
２１０３  データ格納装置
２１０４  入力装置
２１０５  出力装置
２１０６  通信路
２２０１  処理装置
２２０３  データ格納装置
２３０３  データ格納装置
【発明を実施するための最良の形態】
【００３０】
以下、図面を参照して本発明の実施の形態を説明する。以下の図において、同等の機能部分には同じ番号を付し、重複する説明を省略する。【００３１】
はじめに、本実施形態において利用する用語を定義する。【００３２】
データベースは離散値、または離散値に対応付けることが可能な属性値からなる属性により構成される表形式である。属性値が欠損している（空、NULL）場合、欠損データと呼ぶ。また、属性と属性値の組を項目と呼び、属性：属性値で表現する。ある項目Ｘが属性Ａの属性値Ｂから構成される場合、項目Ｘは｛Ａ：Ｂ｝と表現され、項目Ｘは属性Ａに属すると表現する。ここで、属性値が連続値である場合、範囲分割などによって属性値を区分けし、各区分けに特定の離散値を割り当てることにより、連続値を離散値に対応付けることが可能である。また、離散値をグループに分類し、各分類を特定の離散値に対応付けることにより、属性値に含まれない離散値に対応付けることも可能である。【００３３】
データベースは項目のリストであるレコードの集合であり、１つのレコードには１つの識別子が割り当てられている。解析対象のデータベースは１以上の属性について属性値が欠損したレコードの集合からなる。【００３４】
項目の組合せを項目パターンと呼び、ある項目パターンＸを構成する項目があるレコードの部分集合である場合、該レコードは項目パターンＸを含むと表現する。ある項目パターンＸが含む項目が属する属性のリストを属性リストＹとするとき、項目パターンＸは属性リストＹに属すると表現する。例えば、項目パターンＺが属性Ａと属性値Ａ１、属性Ｂと属性値Ｂ１から構成されるとき、項目パターンＺは｛Ａ：Ａ１，Ｂ：Ｂ１｝と表現され、項目パターンＺは属性リスト｛Ａ，Ｂ｝に属する。【００３５】
属性の組合せについて、解析対象のデータベース中のレコードにおいて、該属性が欠損データでなく、他の属性はすべて欠損データであるレコードの集合をデータベース分割と呼ぶ。例えば、属性Ａと属性Ｂに関するデータベース分割に含まれるレコードは、属性ＡとＢの属性値に欠損データがなく、属性ＡとＢ以外の属性はすべての欠損データである。属性ＡとＢに関するデータベース分割は、属性リスト｛Ａ，Ｂ｝のデータベース分割、または、データベース分割｛Ａ，Ｂ｝と表現される。【００３６】
データベース全体のレコードにおいて、項目パターンＸを含むレコードの数を全域支持回数と呼び、該項目パターンが含む項目が属する属性がすべて欠損データでないレコードの数に対する全域支持回数の割合を全域支持度と呼ぶ。あるデータベース分割中のレコードにおいて、項目パターンＸを含むレコードの数を局所支持回数と呼び、該項目パターンが含む項目が属する属性がすべて欠損データでないレコードの数に対する局所支持回数の割合を局所支持度と呼ぶ。ここで、支持回数は全域支持回数および局所支持回数を指し、支持度は全域支持度および局所支持度を指す。全域支持度と局所支持度はそれぞれ全域支持回数と局所支持回数から計算することが可能であることから、全域支持度と全域支持回数、および局所支持度と局所支持回数は同様に扱うことが出来る。また、ある項目パターンＸが含むすべての項目を項目パターンＹが含む場合、項目パターンＹは項目パターンＸを含むと表現し、項目パターンＸを項目パターンＹの部分パターンと呼び、項目パターンＹを項目パターンＸの上位パターンと呼ぶ。また、ある項目パターンの全域支持度が事前に指定された支持度の最小値以上となる場合、該項目パターンを全域頻出パターンと呼ぶ。さらに、ある項目パターンの局所支持度が事前に指定された支持度の最小値以上となる場合、該項目パターンを局所頻出パターンと呼ぶ。【００３７】
相関ルールはＸ⇒Ｙで表現され、ＸとＹは項目パターンであり、ＸとＹに共通する項目は含まれない。Ｘを前提部、Ｙを結論部と呼ぶ。一般に相関ルールは支持度と確信度の評価値を持つ。支持度は相関ルールの適用度を示し、相関ルールＸ⇒Ｙの支持度は項目パターンＸとＹの組み合わせの項目パターンの支持度となる。確信度は前提部を満たすレコードが結論部も同時に満たす割合（ルールの前提部が起きたときに、結論部が起きる確率）を意味し、相関ルールＸ⇒Ｙの確信度は項目パターンＸとＹの組合わせの項目パターンの支持度を項目パターンＸの支持度で割った値となる。さらに、欠損データを含むデータベースから抽出される相関ルールはレコード利用度の評価値を持つ。レコード利用度は相関ルールを抽出するために利用したレコードの割合を示す。相関ルールＸ⇒Ｙのレコード利用度は、項目パターンＸとＹが含む項目が属する属性がすべて欠損データでないレコードの数をデータベースに含まれる全レコード数で割った値となる。
【実施例１】
【００３８】
図１は、本発明の第１の実施形態のシステム構成例を示す図である。このシステムは処理部１０１と記憶部１０２とデータ格納部１０３から構成される。処理部と記憶部はコンピュータからなり、解析対象のデータベースはデータ格納部に格納されている。処理部１０１は、データベース分割部１１１、頻出パターン抽出部１１２、相関ルール導出部１１３を備え、データあるいはファイルとして支持度、確信度、レコード利用度の最小値、データベース分割レコードデータ、後述する属性順序列、後述する除外項目リスト、項目支持度情報、属性レコード数情報、頻出パターン情報を記憶部１０２に保持する。また、処理部１０１には、キーボードやマウスなどを備える入力部１０４、およびディスプレイやプリンタ等からなる出力部１０５が接続されている。データ格納部１０３には、属性Ｘ１，Ｘ２，…、および識別子Ｒ１，Ｒ２，…のレコードが格納されている。【００３９】
図２は、データ解析の手順を詳細に説明するフローチャートである。はじめにユーザは入力部１０４に抽出する相関ルールの支持度の最小値、確信度の最小値、レコード利用度の最小値を入力する。支持度の最小値を最小支持度、確信度の最小値を最小確信度、レコード利用度の最小値を最小レコード利用度と呼ぶ。処理部１０１は、入力された最小支持度、最小確信度、最小レコード利用度を獲得し（２０１）、それらを記憶部１０２に記憶する。その後、処理部は、接続されたデータ格納部１０３に格納されたデータに関して、データベース分割を作成し（２０２）、後述する相関ルール抽出処理の順序を示す属性順序列を作成する（２０３）。以降、後述する特定の項目について、各データベース分割における局所頻出パターンを抽出し（２０５）、抽出された局所頻出パターンから全域頻出パターンを抽出し（２０６）、最小支持度と最小確信度と最小レコード利用度を満たす相関ルールを導出し（２０７）、抽出された相関ルールを出力部１０５に出力し、該属性を以降の解析対象から除外する（２０８）。【００４０】
図３は、データベース分割作成処理（２０２）の手順を説明するフローチャートである。はじめに、記憶部１０２に、各データベース分割に含まれるレコード、各データベース分割における各項目の局所支持回数と局所支持度、各属性の欠損データでないレコード数、解析対象から除外する項目のリストである除外項目リストを保持する領域を用意し、空にする。データベースを同一の属性が欠損データであるレコードの単位に分割し、データベース分割を作成する（３０１）と同時に、各属性について欠損データでないレコードの数、および、各項目について、該項目の全域支持回数と各データベース分割における局所支持回数とを計数する（３０１）。その後、最小レコード利用度を満たさない属性を検出し、各データベース分割から削除し、各項目の局所支持回数を更新する（３０２）。さらに、各属性について、該属性の各データベース分割における局所支持度を計算するとともに、最小支持度と最小レコード利用度を同時に満たすことがない項目を検出し、除外項目リストに追加する（３０３）。【００４１】
図４は、データベースを同一の属性が欠損データであるレコードの単位に分割する処理（２０２）の手順を詳細に説明するフローチャートである。データベースをスキャンし、レコードを読み出す（４０１）。あるレコードＲについて、欠損データでない属性のリストを取り出し、該属性リストのデータベース分割にレコードＲを追加する（４０２）。さらに、レコードＲについて、欠損データでない属性のレコード数のカウント、および欠損データでない項目の全域支持回数と局所支持回数のカウントを１増加させる（４０３）。データベース中に含まれるすべてのレコードについて、以上の処理を繰り返す。【００４２】
次に、最小レコード利用度を満たさない属性を検出し、該属性を各データベース分割から削除し、各項目の局所支持回数を更新する。図５は、処理の手順を詳細に説明するフローチャートである。各属性について、該属性の欠損データでないレコード数をデータベース全体のレコード数で割った値を計算し、この値が最小レコード利用度未満の場合、該属性を含む相関ルールを抽出する必要がないため、解析対象から除外する（５０２）。該属性を含むデータベース分割に含まれるレコードを、該データベース分割の属性リストから該属性を削除した属性リストのデータベース分割に追加する（５０４）。さらに、該属性を含むデータベース分割における各項目の局所支持回数を、該データベース分割の属性リストから該属性を削除した属性リストのデータベース分割における該項目の局所支持回数に加算する（５０５）。最後に、該属性を含むデータベース分割を削除する（５０８）。【００４３】
例えば、属性Ｘが最小レコード利用度を満たさないとし、属性リストＹが属性Ｘを含むとする。はじめに、属性リストＹから属性Ｘを削除した属性リスト（Ｙ−Ｘ）を作成し、属性リストＹのデータベース分割に含まれるレコードを属性リスト（Ｙ−Ｘ）のデータベース分割に追加する。次に、属性リストＹに属する項目Ａについて、属性リストＹのデータベース分割における項目Ａの局所支持回数が１以上の場合、該局所支持回数を属性リスト（Ｙ−Ｘ）のデータベース分割における項目Ａの局所支持回数に加算し、属性リストＹにおける項目Ａの局所支持回数のカウントを削除する。最後に、属性リストＹのデータベース分割を削除する。【００４４】
次に、最小支持度と最小レコード利用度を同時に満たすことがない項目を抽出し、除外項目リストに追加する。図６は、処理の手順を説明するフローチャートである。項目Ａについて、該項目の支持回数がａであり、データベース全体のレコード数がｚであり、最小支持度がｓ、最小レコード利用度がｒであるとするとき、ｚとｓとｒの積の値ｃがａよりも大きい（ｃ＞ａ）場合（６０２）、項目Ａを解析対象から除外するため、除外項目リストに追加する（６０３）。【００４５】
次に、各項目について、各データベース分割における局所支持度を計算し、記憶部１０２に保持する。【００４６】
図２に戻って、１以上のデータベース分割に含まれる属性を任意の順に並べ替え、属性順序列を作成する（２０３）。例えば、各属性を含むデータベース分割の種類数の少ない順とする。局所頻出パターン抽出処理２０５と全域頻出パターン抽出処理２０６と相関ルール導出処理２０７は、この属性順序列の属性の並び順に従い、特定の属性について繰り返し行う。【００４７】
局所頻出パターン抽出処理２０５は、特定の属性について、該属性を含むすべてのデータベース分割において該属性に属する項目を含む項目パターンの局所支持回数を計数し、該項目パターンの局所支持度を算出し、局所頻出パターンを抽出する。ここで、各データベース分割における項目パターンの局所支持回数を計数する項目は、除外項目リストになく、該データベース分割において局所頻出項目である項目である。各データベース分割における局所頻出パターンを抽出する処理は、特許文献１の方法などにより行うことが出来る。【００４８】
全域頻出パターン抽出処理２０６は、すべての局所頻出パターンが抽出された時点で、１以上のデータベース分割において局所頻出となる項目パターンについて、該項目パターンの全域支持回数を求め、全域支持度を計算し、最小支持度を満たす場合に全域頻出パターンとして、記憶部１０２に保持する。【００４９】
例えば、項目パターンＸについて、項目パターンＸが属する属性リストのデータベース分割がＺ０とＺ１であり、項目パターンＸがデータベース分割Ｚ０において局所頻出であるとする。項目パターンＸがデータベース分割Ｚ１においても局所頻出である場合、項目パターンＸの全域支持回数はデータベース分割Ｚ０での局所支持回数とデータベース分割Ｚ１での局所支持回数の和の値となる。ある項目パターンＸについて、該項目パターンの全域支持度は式(1)によって計算される。項目パターンＸがデータベース分割Ｚ１においては局所頻出でないが、データベース分割Ｚ１における局所支持回数が既知の場合、項目パターンＸの局所支持回数が、項目パターンＸの属するすべての属性リストのデータベース分割において計数済みであるため、項目パターンＸの全域支持回数はデータベース分割Ｚ０での局所支持回数とデータベース分割Ｚ１での局所支持回数の和の値となり、項目パターンＸの全域支持度は式(1)によって計算される。項目パターンＸがデータベース分割Ｚ１においては局所頻出でなく、データベース分割Ｚ１における局所支持回数が未知の場合、項目パターンＸの全域支持度の上限値を式(2)によって計算する。項目パターンＸの全域支持回数の上限値は、項目パターンＸのデータベース分割Ｚ０における局所支持回数と、項目パターンＸの局所支持回数が既知の部分パターンのデータベース分割Ｚ１における局所支持回数の最小値の和の値となる。該全域支持度の上限値が最小支持度以上の場合、データベース分割Ｚ１における項目パターンＸの局所支持回数を計数し、式(1)を用いて項目パターンＸの正しい全域支持回数と全域支持度を計算し、全域支持度が最小支持度以上の場合、全域頻出パターンとして記憶部１０２に保持する。
【００５０】
再び図２に戻って、相関ルール導出処理２０７において、全域頻出パターン抽出処理２０６によって抽出された全域頻出パターンから相関ルールを導出する。図７は、相関ルール導出処理２０７を詳細に説明するフローチャートである。全域頻出パターンＸについて、該全域頻出パターンから作成可能なすべての部分パターンを作成し（７０２）、該部分パターンを前提部、該全域頻出パターンに含まれるが該部分パターンに含まれない項目のパターンを結論部とすることにより、相関ルールを導出する。該全域頻出パターンの全域支持回数が該相関ルールの支持回数、全域支持度が支持度となる。該相関ルールの確信度は該全域頻出パターンの支持回数を該相関ルールの前提部の項目パターンの該相関ルールの項目パターンが属するデータベース分割における局所支持回数の総和で割った値となる（７０５）。該相関ルールの前提部の項目パターンの該全域頻出パターンが属するデータベース分割における局所支持回数が未知の場合（７０３）、該データベース分割のレコードを読み出し、局所支持回数を計数する（７０４）。導出された相関ルールはディスプレイなどの出力部１０５に表示される（７０７）。【００５１】
次に、属性の削除処理によって、相関ルール導出処理が終了した属性を削除する。図８は、属性の削除処理の手順を詳細に説明するフローチャートである。相関ルール導出処理が終了した属性について、各データベース分割から該属性を削除する。データベース分割を再編集し（８０３）、該データベース分割に属する項目の局所支持回数と局所支持度を更新し（８０５）、該属性を含むデータベース分割を削除する（８０９）。さらに、該属性に属する項目を除外項目リストに追加する（８１０）。例えば、相関ルール導出処理が終了した属性をＡ、属性リストＺは属性Ａを含むとするとき、属性リストＺから属性Ａを削除した属性リスト（Ｚ−Ａ）を作成し、属性リストＺのデータベース分割に含まれるレコードを属性リスト（Ｚ−Ａ）のデータベース分割に追加し、属性リストＺのデータベース分割を削除する。さらに、属性リストＺのデータベース分割に含まれる各項目について、該項目の属性リストＺのデータベース分割における局所支持回数が１以上の場合、該支持回数を属性リスト（Ｚ−Ａ）のデータベース分割における該項目の局所支持回数に加算し、該項目の属性リスト（Ｚ−Ａ）のデータベース分割における局所支持度を再計算する。さらに、属性Ａに属する項目を除外項目リストに追加する。【００５２】
すべての属性について局所頻出パターン抽出処理、全域頻出パターン抽出処理、相関ルール導出処理が終了した時点で、処理を終了する。【００５３】
以上が、本発明の解析方法である。このように、解析処理において、属性毎に頻出パターン抽出処理および相関ルール導出処理を行うことによって、メモリ上に保持する情報量を少なく抑えることが出来る。さらに、頻出パターン抽出処理の全域支持度を求める処理で少なくとも１つのデータベース分割において局所頻出である項目パターンのみを探索すること、局所支持回数が未知のデータベース分割がある場合には全域支持度の上限値を計算することによって全域頻出パターンとなり得ない項目パターンを事前に検出し、局所支持回数が未知のデータベース分割における局所支持回数の計数処理を回避することによって、解析処理負荷を低減することが出来る。【００５４】
なお、本実施形態では局所頻出パターン抽出処理２０５において、特定の属性に属する項目を含む局所頻出パターンのみを抽出したが、各データベース分割に含まれるすべての局所頻出パターンを抽出することでも同様に処理を実施することが可能である。【００５５】
また、本実施形態の局所頻出パターン抽出処理２０５において、特定の属性に属する項目を含む項目パターンの各データベース分割での局所支持回数を計数したが、該特定の属性に属する項目と各項目の組の局所支持回数を同時に計数することによって、全域頻出パターン抽出処理２０６における項目パターンの計数処理を回避するレコードを増大させることが可能である。【００５６】
さらに、本実施形態では属性順序列作成（２０３）にて作成する属性順序列を各属性を含むデータベース分割の種類数が少ない順としたが、該属性順序列の各属性の並び順は辞書順、ランダム、各属性の項目の種類数の少ない順、各項目の全域頻出項目の種類数の少ない順など任意の並び順で良い。属性順序列の属性の並び順により局所頻出パターン抽出処理（２０５）、全域頻出パターン抽出処理（２０６）、相関ルール導出処理（２０７）において必要なデータの量が変化する。記憶部に保持するデータ量が少なくなるように属性順序列の属性を並べることが望ましい。
【実施例２】
【００５７】
医療データを例に取り、各処理部において行われる処理を説明する。【００５８】
解析対象となるデータベースは複数の属性からなるレコードの集合である。医療データを例に取ると、１つのレコードは１人の患者に対応し、各属性は遺伝子配列など患者の遺伝子に関する情報、性別、年齢、診断疾患名、処方薬剤など患者の疾病に関する情報である。【００５９】
医療データの例を表１に示す。表１の例は、遺伝子１、遺伝子２、虚血性心疾患病名、危険因子病名、虚血性心疾患家族歴の５つの属性からなり、患者ＩＤを識別子とするレコードからなる医療データベースであり、全レコード数を２０とする。
【表１】
0004676498.tif 000004
【００６０】
入力部１０４にユーザから支持度の最小値が０．２５、確信度の最小値が０．７５、レコード利用度の最小値が０．５と入力され、データ格納部１０３に医療データが格納された場合を考える。【００６１】
処理部１０１におけるデータベース分割作成処理を示す。本実施例の場合、例えば、患者ＩＤが２のレコードが読み出されたとき、欠損データでない属性のリストである｛遺伝子２、虚血性心疾患病名、危険因子病名｝のデータベース分割に該レコードを追加する。さらに、属性｛遺伝子２｝、｛虚血性心疾患病名｝、｛危険因子病名｝のレコード数のカウント、および、項目｛遺伝子２：ＡＴ｝、｛虚血性心疾患病名：心筋梗塞｝、｛危険因子病名：高血圧｝について、全域支持回数、および、データベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝での支持回数のカウントを１増加させる。すべてのレコードについて上記の処理が終了したとき、表２に示すデータベース分割が作成される。また、表３に各属性の欠損データでないレコード数、表４に各項目の全域支持回数、表５に各項目の各データベース分割における局所支持回数を示す。
【表２】
0004676498.tif 000005
【表３】
0004676498.tif 000006
【表４】
0004676498.tif 000007
【表５】
0004676498.tif 000008
【００６２】
次に、最小レコード利用率を満たさない属性を削除する。本実施例の場合、属性｛虚血性心疾患家族歴｝の欠損データでないレコード数が７であることから、該属性のレコード利用率は０．３５と計算され、最小レコード利用率を満たさないため、すべてのデータベース分割から削除される。例えば、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名，虚血性心疾患家族歴｝に含まれるレコードから属性｛虚血性心疾患家族歴｝を削除し、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝に追加する。さらに、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名，虚血性心疾患家族歴｝に含まれる各項目の局所支持回数を、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝に加算する。例えば、項目｛遺伝子２：ＡＡ｝のデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名，虚血性心疾患家族歴｝における局所支持回数が、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝に加算され、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝における項目｛遺伝子２：ＡＡ｝の局所支持回数が３となる。また、属性｛虚血性心疾患家族歴｝を含むもう１つのデータベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名，虚血性心疾患家族歴｝についても同様に処理することによって、データベース分割は表６となり、各属性の各データベース分割での局所支持回数は表７となる。
【表６】
0004676498.tif 000009
【表７】
0004676498.tif 000010
【００６３】
次に、最小支持度と最小レコード利用度を同時に満たすことがない項目を抽出し、除外項目リストに追加する。本実施例においては、データベースの全レコード数が２０、最小レコード利用率が０．５、最小支持度が０．２５であることから、全域支持回数が３未満となる項目は全域頻出パターンになり得ない。例えば、項目｛遺伝子２：ＡＴ｝について、該項目のデータベース全体での支持回数が１であることから、解析対象から除外出来るため、除外項目リストに追加する。【００６４】
次に、各項目について、各データベース分割における局所支持度を計算し、記憶部に保持する。本実施例においては、例えばデータベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝において、項目｛遺伝子２：ＡＡ｝の局所支持回数は５、データベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝のレコード数は９であることから、項目｛遺伝子２：ＡＡ｝の局所支持度は０．５６となる。各データベース分割における、各項目について同様に計算することによって、表７が作成される。【００６５】
次に、１以上のデータベース分割に含まれる属性を任意の順に並べ替える。本実施例では、各属性を含むデータベース分割の種類数の少ない順とする。属性順序列は｛遺伝子２，遺伝子１，虚血性心疾患病名，危険因子病名｝の順となる。【００６６】
次に、相関ルール抽出を行う。本実施例では、はじめに属性｛遺伝子２｝について、相関ルール抽出を行う。属性｛遺伝子２｝を含むデータベース分割について、各データベース分割毎に局所頻出となる項目パターンを抽出する。属性｛遺伝子２｝を含むデータベース分割はデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝とデータベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝である。例えば、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝については、該データベース分割における局所頻出項目である項目｛遺伝子１：ＣＣ｝、｛遺伝子１：ＣＧ｝、｛遺伝子２：ＡＡ｝、｛遺伝子２：ＴＴ｝、｛虚血性心疾患病名：狭心症｝、｛虚血性心疾患病名：なし｝、｛危険因子病名：高血圧｝の７つの項目について、項目｛遺伝子２：ＡＡ｝または｛遺伝子２：ＴＴ｝を含む項目パターンを作成し、局所支持回数を数え上げる。各データベース分割において、表８に示す局所頻出パターンが抽出される。
【表８】
0004676498.tif 000011
【００６７】
次に、１以上のデータベース分割において抽出された局所頻出パターンについて、該項目パターンの全域支持回数を求め、全域支持度を計算し、最小支持度を満たす場合に全域頻出パターンとして記憶部に保持する。本実施例の場合、項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：なし｝は、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝においては局所頻出であり、データベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝では局所支持回数が未知であるため、式(2)によって全域支持度の上限値を計算する。データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝における項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：なし｝の局所支持回数は２であり、データベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝における項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：なし｝の部分パターンは局所支持回数が５である項目｛遺伝子２：ＡＡ｝と局所支持回数が１である項目｛虚血性心疾患病名：なし｝であるため、項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：なし｝の全域支持回数の上限値は３、全域支持度の上限値は０．２となる。全域支持度の上限値が最小支持度未満であることから、項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：なし｝は全域頻出パターンとはなり得ないため、局所支持回数が未知であるデータベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝における局所支持回数の計数処理を行わない。また、項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：心筋梗塞｝は、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝においては局所頻出であり、データベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝では局所支持回数が未知であるため、式(2)によって全域支持度の上限値を計算する。データベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝における項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：心筋梗塞｝の局所支持回数は５であり、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝における項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：心筋梗塞｝の部分パターンは局所支持回数が３である項目｛遺伝子２：ＡＡ｝と局所支持回数が１である項目｛虚血性心疾患病名：心筋梗塞｝であるため、項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：なし｝の全域支持回数の上限値は６、全域支持度の上限値は０．４となる。全域支持度の上限値が最小支持度以上となることから、項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：心筋梗塞｝の｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝における局所支持回数を計数する。すべての局所頻出パターンについて全域支持度を求めることによって得られた全域頻出パターンを表９に示す。
【表９】
0004676498.tif 000012
【００６８】
次に、抽出された全域頻出パターンから、相関ルールを導出し、出力部に出力する。本実施例では、例えば、項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：心筋梗塞｝から、相関ルール｛遺伝子２：ＡＡ｝⇒｛虚血性心疾患病名：心筋梗塞｝の相関ルールを抽出することが出来る。該相関ルールの支持度は項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：心筋梗塞｝の全域支持度になるため、０．４０である。該相関ルールの確信度は項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：心筋梗塞｝の全域支持度０．４０を、前提部の項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：心筋梗塞｝の属性｛遺伝子２｝と属性｛虚血性心疾患病名｝を含むデータベース分割における局所支持回数から算出した全域支持度０．５３で割った値の０．７５となる。該確信度が最小確信度を満たすことから、該相関ルールは出力部に出力される。本実施例において抽出され、出力部に出力される相関ルールのうち、属性｛遺伝子２｝を含む相関ルールを表１０に示す。
【表１０】
0004676498.tif 000013
【００６９】
次に、属性の削除処理によって、相関ルール導出処理が終了した属性を削除する。本実施例においては、属性｛遺伝子２｝を各データベース分割から削除し、データベース分割を再編集し、該データベース分割に属する項目の局所支持回数と局所支持度を更新し、属性｛遺伝子２｝に属する項目を除外項目リストに追加する。例えば、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝の各レコードはデータベース分割｛遺伝子１，虚血性心疾患病名，危険因子病名｝に追加される。データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝に含まれる各項目の局所支持回数についても、データベース分割｛遺伝子１，虚血性心疾患病名，危険因子病名｝の該項目の局所支持回数に加算され、局所支持回数が更新される。例えば、項目｛危険因子病名：高血圧｝は、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝における局所支持回数４を、データベース分割｛遺伝子１，虚血性心疾患病名，危険因子病名｝における局所支持回数２に加算することによって、データベース分割｛遺伝子１，虚血性心疾患病名，危険因子病名｝の局所支持回数を６、局所支持度を０．７５に更新する。属性｛遺伝子２｝を含むすべてのデータベース分割と、該データベース分割に含まれる各項目について上記の処理を繰り返すことによって作成されるデータベース分割を表１１に、各項目の局所支持回数と局所支持度を表１２に示す。
【表１１】
0004676498.tif 000014
【表１２】
0004676498.tif 000015
【００７０】
以上の処理によって、属性｛遺伝子２｝を含む相関ルールがすべて抽出されたことになる。【００７１】
次に、属性順序列の２番目以降の属性について順に、局所頻出パターン抽出処理２０５、全域頻出パターン抽出処理２０６、相関ルール導出処理２０７を繰り返すことによって、すべての相関ルールを抽出することが出来る。【００７２】
本実施例においては、例えば項目パターン｛遺伝子２：ＡＡ，虚血性心疾患病名：なし｝のデータベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝における局所支持回数の計数処理を回避し、解析処理の負荷を低減出来る。また、例えば属性｛遺伝子２｝に関する相関ルールのみを抽出し、記憶部に保持する情報を少なく抑えることが出来る。さらに、該属性の相関ルール抽出処理が終了した時点で該属性をデータベース分割から削除し、他の属性に関する相関ルールを抽出する時点では該属性はデータ中に存在しないことによって処理負荷を低減することが出来る。【００７３】
また、本実施例においては、例えば、項目｛虚血性心疾患病名：狭心症｝を含む相関ルール｛遺伝子２：TT，危険因子病名：高血圧｝⇒｛虚血性 心疾患病名：狭心症｝のように単一の項目としては全域局所頻出でない項目 を含む相関ルールを抽出することが出来る。
【実施例３】
【００７４】
図９は、本発明の第２の実施形態のシステム構成例を示す図である。このシステムは処理部１０１と記憶部９０１とデータ格納部１０３から構成される。処理部と記憶部はコンピュータからなり、解析対象のデータベースはデータ格納部に格納されている。記憶部９０１には、データあるいはファイルとして支持度、確信度、レコード利用度の最小値、データベース分割レコード識別子リスト、属性順序列、後述する除外属性リスト、除外項目リスト、項目支持度情報、属性レコード数情報、頻出パターン情報を保持する。【００７５】
データ解析の手順は実施形態１と同じであるが、処理部１０１のデータベース分割部１１１と相関ルール導出部１１３の処理が異なる。【００７６】
図１０は、第２の実施形態における、データベース分割作成処理の手順を詳細に説明するフローチャートである。はじめに、記憶部９０１に、各データベース分割に含まれるレコード識別子のリスト、各データベース分割における各項目の局所支持回数と局所支持度、各属性の欠損データでないレコード数、解析対象から除外する属性のリストである除外属性リスト、解析対象から除外する項目のリストである除外項目リストを保持する領域を用意し、空にする。データベースを同一の属性が欠損データであるレコードの単位に分割し、データベース分割を作成する（１００１）と同時に、各属性について欠損データでないレコードの数、および、各項目について、該項目の全域支持回数と各データベース分割における局所支持回数とを計数する（１００１）。その後、最小レコード利用度を満たさない属性を検出し、除外属性リストに追加し（１００２）、各データベース分割を再編集し、各項目の局所支持回数を更新する（１００３）。さらに、各属性について、該属性の各データベース分割における局所支持度を計算するとともに、最小支持度と最小レコード利用度を同時に満たすことがない項目を検出し、除外項目リストに追加する（１００４）。【００７７】
図１１は、データベースを同一の属性が欠損データであるレコードの単位に分割する処理の手順を詳細に説明するフローチャートである。データベースをスキャンし、レコードを読み出す（１１０１）。あるレコードRについて、欠損データでない属性のリストを取り出し、該属性リストのデータベース分割にレコードRの識別子を追加する（１１０２）。さらに、レコードRについて、欠損データでない属性のレコード数のカウント、および欠損データでない項目の全域支持回数と局所支持回数のカウントを１増加させる（１１０３）。データベース中に含まれるすべてのレコードについて、以上の処理を繰り返す。【００７８】
次に、最小レコード利用度を満たさない属性を検出し、該属性を除外属性リストに追加し、各データベース分割を再編集し、各項目の局所支持回数を更新する。図１２は、処理の手順を詳細に説明するフローチャートである。各属性について、該属性の欠損データでないレコード数をデータベース全体のレコード数で割った値を計算し、この値が最小レコード利用度未満の場合、該属性を含む相関ルールを抽出する必要がないため、解析対象から除外する。該属性を除外属性リストに追加し（１２０３）、該属性を含むデータベース分割に含まれるレコードの識別子のリストを、該データベース分割の属性リストから該属性を削除した属性リストのデータベース分割に追加する（１２０５）。さらに、該属性を含むデータベース分割における各項目の局所支持回数を、該データベース分割の属性リストから該属性を削除した属性リストのデータベース分割における該項目の局所支持回数に加算する（１２０７）。最後に、該属性を含むデータベース分割を削除する（１２０９）。【００７９】
例えば、属性Ｘが最小レコード利用度を満たさないとし、属性リストＹが属性Ｘを含むとする。はじめに、属性Ｘを除外属性リストに追加し、属性リストＹから属性Ｘを削除した属性リスト（Ｙ−Ｘ）を作成し、属性リストＹのデータベース分割に含まれるレコードの識別子を属性リスト（Ｙ−Ｘ）のデータベース分割に追加する。次に、属性リストＹに属する項目Ａについて、属性リストＹのデータベース分割における項目Ａの局所支持回数が１以上の場合、該局所支持回数を属性リスト（Ｙ−Ｘ）のデータベース分割における項目Ａの局所支持回数に加算し、属性リストＹにおける項目Ａの局所支持回数のカウントを削除する。最後に、属性リストＹのデータベース分割を削除する。
【００８０】
次の、最小支持度と最小レコード利用度を同時に満たすことがない項目を抽出し、除外項目リストに追加する処理、および、各項目について、各データベース分割における局所支持度を計算し、記憶部９０１に保持する処理、１以上のデータベース分割に含まれる属性を任意の順に並べ替える処理は第１の実施形態と同じである。【００８１】
第２の実施形態においても、局所頻出パターン抽出処理２０５と全域頻出パターン抽出処理２０６と相関ルール導出処理２０７は、この属性の並び順に従い、特定の属性について繰り返し行う。【００８２】
局所頻出パターン抽出処理２０５は、特定の属性について、該属性を含むすべてのデータベース分割において該属性に属する項目を含む項目パターンの局所支持回数を計数し、該項目パターンの局所支持度を算出し、局所頻出パターンを抽出する。ここで、各データベース分割における項目パターンの局所支持回数を計数する項目は、除外項目リストになく、該データベース分割において局所頻出項目であり、該項目が属する属性が除外属性リストにない項目である。各データベース分割における局所頻出パターンを抽出する処理は、第１の実施形態と同じである。【００８３】
次に、全域頻出パターン抽出処理２０６、相関ルール導出処理２０７を行う。【００８４】
次に、属性の削除処理によって、相関ルール導出処理が終了した属性を削除する。【００８５】
属性削除処理の手順は図８に示すフローチャートと同じであるが、データベース分割の再編集（８０３）において、レコードのデータではなく、レコードの識別子を追加する点が異なる。例えば、相関ルール導出処理が終了した属性をＡ、属性リストＺは属性Ａを含むとするとき、属性リストＺから属性Ａを削除した属性リスト（Ｚ−Ａ）を作成し（８０２）、属性リストＺのデータベース分割に含まれるレコードの識別子のリストを属性リスト（Ｚ−Ａ）のデータベース分割に追加する（８０３）。さらに、属性リストＺのデータベース分割に含まれる各項目について、該項目の属性リストＺのデータベース分割における局所支持回数が１以上の場合、該支持回数を属性リスト（Ｚ−Ａ）のデータベース分割における該項目の局所支持回数に加算し、該項目の属性リスト（Ｚ−Ａ）のデータベース分割における局所支持度を再計算する（８０５）。最後に、データベース分Ｚを削除し（８０９）、属性Ａに属する項目を除外項目リストに、属性Ａを除外属性リストに追加する（８１０）。【００８６】
すべての属性について局所頻出パターン抽出処理、全域頻出パターン抽出処理、相関ルール導出処理が終了した時点で、処理を終了する。【００８７】
以上が、第２の実施形態における解析方法である。このように、解析処理において、データベース分割にレコードではなく、レコードの識別子のリストを保持することによって、メモリ上に保持する情報量を少なく抑えることが出来る。【００８８】
なお、本実施形態では属性の削除処理（２０８）において、相関ルール導出処理が終了した属性を削除する際に、該属性を含むデータベース分割を削除したが、該属性を含むデータベース分割の削除、各データベース分割の再編成、各項目の各データベース分割における局所支持回数と局所支持度の更新を行わず、除外属性リストに該属性を追加することと除外項目リストに該属性に属する項目を追加することでも局所頻出パターン抽出処理（２０５）と全域頻出パターン抽出処理（２０６）と相関ルール導出処理（２０７）を同様に処理することが可能である。属性の削除処理（２０８）において除外属性リストと除外項目リストを更新する処理のみを行うことによって、処理負荷を低減することが出来る。さらに、局所頻出パターン抽出処理（２０５）と全域頻出パターン抽出処理（２０６）と相関ルール導出処理（２０７）において計数した項目パターンを該項目パターンの局所支持回数とともに記憶部９０１に保持し、以降の局所頻出パターン抽出処理（２０５）と全域頻出パターン抽出処理（２０６）と相関ルール導出処理（２０７）において既に計数処理を行った項目パターンの計数処理を回避することによって処理負荷を低減することも出来る。
【実施例４】
【００８９】
表１に示す医療データを例に取り、データベース分割作成処理、および、相関ルール抽出処理の終了した属性の削除処理を説明する。【００９０】
本実施例の場合、例えば、患者ＩＤが２のレコードが読み出されたとき、欠損データでない属性のリストである｛遺伝子２，虚血性心疾患病名，危険因子病名｝のデータベース分割に該レコードの識別子を追加する。さらに、属性｛遺伝子２｝、｛虚血性心疾患病名｝、｛危険因子病名｝のレコード数のカウント、および、項目｛遺伝子２：ＡＴ｝、｛虚血性心疾患病名：心筋梗塞｝、｛危険因子病名：高血圧｝について、全域支持回数、および、データベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝での支持回数のカウントを１増加させる。すべてのレコードについて上記の処理が終了したとき、表１３に示すデータベース分割が作成される。また、表３に各属性の欠損データでないレコード数、表４に各項目の全域支持回数、表７に各項目の各データベース分割における局所支持回数を示す。
【表１３】
0004676498.tif 000016
【００９１】
次に、最小レコード利用率を満たさない属性を削除する。本実施例の場合、属性｛虚血性心疾患家族歴｝の欠損データでないレコード数が７であることから、該属性のレコード利用率は０．３５と計算され、最小レコード利用率を満たさないため、該属性を除外属性リストに追加し、以降の処理において除外する。例えば、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名，虚血性心疾患家族歴｝に含まれるレコードの識別子を、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝に追加する。さらに、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名，虚血性心疾患家族歴｝に含まれる各項目の局所支持回数を、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝に加算する。例えば、項目｛遺伝子２：ＡＡ｝のデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名，虚血性心疾患家族歴｝における局所支持回数が、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝に加算され、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝における項目｛遺伝子２：ＡＡ｝の局所支持回数が３となる。また、属性｛虚血性心疾患家族歴｝を含むもう１つのデータベース分割｛遺伝子２、虚血性心疾患病名、危険因子病名、虚血性心疾患家族歴｝についても同様に処理することによって、データベース分割は表１４となり、各属性の各データベース分割での局所支持回数は表７となる。
【表１４】
0004676498.tif 000017
【００９２】
次の、最小支持度と最小レコード利用度を同時に満たすことがない項目を抽出し、除外項目リストに追加処理、各項目について、各データベース分割における局所支持度を計算し、記憶部に保持する処理、１以上のデータベース分割に含まれる属性を任意の順に並べ替える処理は実施例２と同じである。【００９３】
次に、相関ルール抽出を行う。本実施例では、はじめに属性｛遺伝子２｝について、相関ルール抽出を行う。属性｛遺伝子２｝を含むデータベース分割について、各データベース分割毎に局所頻出となる項目パターンを抽出する。属性｛遺伝子２｝を含むデータベース分割はデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝とデータベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝である。例えば、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝については、該データベース分割のレコードをデータ格納部１０３から読み出し、該データベース分割における局所頻出項目であり、除外項目リストになく、該項目の属する属性が除外属性リストにない項目である｛遺伝子１：ＣＣ｝、｛遺伝子１：ＣＧ｝、｛遺伝子２：ＡＡ｝、｛遺伝子２：ＴＴ｝、｛虚血性心疾患病名：狭心症｝、｛虚血性心疾患病名：なし｝、｛危険因子病名：高血圧｝の７つの項目について、項目｛遺伝子２：ＡＡ｝または｛遺伝子２：ＴＴ｝を含む項目パターンを作成し、局所支持回数を数え上げる。各データベース分割において、表９に示す局所頻出パターンが抽出される。
【００９４】
次の、局所頻出パターンから全域頻出パターンを抽出する処理、抽出された全域頻出パターンから相関ルールを導出する処理は、実施例２と同じである。【００９５】
次に、属性の削除処理によって、相関ルール導出処理が終了した属性を削除する処理を説明する。本実施例においては、属性｛遺伝子２｝の相関ルール抽出処理が終了したため、各データベース分割から該属性を除外する。本実施例ではデータベース分割にレコードを保持していないため、レコードから該属性に属する項目を削除するのではなく、該属性を除外属性リストに追加することによって、以降の解析処理から該属性を除外する。さらに、データベース分割を再編集し、該データベース分割に属する項目の局所支持回数と局所支持度を更新し、属性｛遺伝子２｝に属する項目を除外項目リストに追加する。例えば、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝のレコードの識別子のリストはデータベース分割｛遺伝子１，虚血性心疾患病名，危険因子病名｝に追加される。データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝に含まれる各項目の局所支持回数についても、データベース分割｛遺伝子１，虚血性心疾患病名，危険因子病名｝の該項目の局所支持回数に加算され、局所支持回数が更新される。例えば、項目｛危険因子病名：高血圧｝は、データベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝における局所支持回数４を、データベース分割｛遺伝子１，虚血性心疾患病名，危険因子病名｝における局所支持回数２に加算することによって、データベース分割｛遺伝子１，虚血性心疾患病名，危険因子病名｝の局所支持回数を６、局所支持度を０．７５に更新する。属性｛遺伝子２｝を含むすべてのデータベース分割と、該データベース分割に含まれる各項目について上記の処理を繰り返すことによって作成されるデータベース分割を表１５に、各項目の局所支持回数と局所支持度を表１２、除外属性リストを表１６に示す。
【表１５】
0004676498.tif 000018
【表１６】
0004676498.tif 000019
【００９６】
以上の処理によって、属性｛遺伝子２｝を含む相関ルールがすべて抽出されたことになる。【００９７】
次に、属性順序列の２番目以降の属性について順に、局所頻出パターン抽出処理、全域頻出パターン抽出処理、相関ルール導出処理を繰り返すことによって、すべての相関ルールを抽出することが出来る。
【実施例５】
【００９８】
図１３は、本発明の第３の実施形態のシステム構成例を示す図である。このシステムは処理部１０１と記憶部１３０１とデータ格納部１０３から構成される。処理部と記憶部はコンピュータからなり、解析対象のデータベースはデータ格納部に格納されている。記憶部１３０１には、データあるいはファイルとして支持度、確信度、レコード利用度の最小値、データベース分割レコード識別子リスト、項目順序列、除外属性リスト、除外項目リスト、項目支持度情報、属性レコード数情報、頻出パターン情報、および、後述するパターンツリー構造を保持する。【００９９】
図１４は、データ解析の手順を詳細に説明するフローチャートである。はじめにユーザは入力部１０４から、抽出する相関ルールの最小支持度、最小確信度、最小レコード利用度を獲得し（２０１）、それらを記憶部１３０１に記憶する。その後、処理部は、接続されたデータ格納部１０３に格納されたデータに関して、データベース分割を作成し（２０２）、相関ルール抽出処理の順序を示す属性順序列を作成する（２０３）。以降、特定の項目について、後述するパターンツリー構造を構築し（１４０１）、各データベース分割における局所頻出パターンからを抽出し（１４０２）、抽出された局所頻出パターンから全域頻出パターンを抽出し（１４０３）、計数処理が必要な局所支持回数が未知の項目パターンを計数し（１４０４）、局所支持回数が未知の全域頻出パターンの部分パターンを計数し（１４０５）、最小支持度と最小確信度と最小レコード利用度を満たす相関ルールを導出し（２０７）、抽出された相関ルールを出力部１０５に出力し、該属性を以降の解析対象から除外する（２０８）。【０１００】
本実施形態の局所頻出パターン抽出処理１４０２における、各項目パターンの局所支持回数を数え上げる処理には、図１５に示す組織化されたデータ構造を用いる。該組織化されたデータ構造をパターンツリー構造と呼ぶ。パターンツリー構造は、１以上のノードからなる木構造である。各ノードは、１つの親ノードへのリンクと、０以上の子ノードへのリンクと、該ノードの意味する項目であるラベルと、該ノードの項目の各データベース分割における該項目を含むレコード数を計数するカウンタ配列からなる。このようなデータ構造は、第０の深さ、すなわち第０層目のデータ構造レベルにあるルート１５０１を含む。ここから、データ構造は第１層目にある０以上の子ノード１５０２、・・・へと分岐する。第ｎ層目のノードにおいては、該ノードにリンクされた１つの親ノードへのリンクを辿ることによって、第（ｎ−１）層目のノードに遷移することが出来る。さらに、該ノードにリンクされた子ノードへのリンクを辿ることによって、第（ｎ＋１）層目のノードに遷移することが出来る。あるノードについて、子ノードへのリンクが０の場合、該ノードをリーフノードと呼ぶ。例えば、ラベルが項目Ｘ３のノード１５０４がリーフノードである。あるノードにおけるカウンタ配列は、該ノードから親ノードへのリンクを辿り、ルートノードまで遷移するまでに経由したノードのラベルの項目の組合せの各データベース分割における該項目の組合せを含むレコード数を示している。例えば、図１５に示すパターンツリー構造の場合、第３層目の項目Ｘ３のリーフノード１５０４からルートノード１５０１まで遷移するまでに経由するノードは第２層目の項目Ｘ２のノード１５０３と第１層目の項目Ｘ１のノード１５０２であるため、項目パターン｛Ｘ１，Ｘ２，Ｘ３｝の各データベース分割でのレコード数は該ラベルが項目Ｘ３のノードのカウンタ配列の値となる。【０１０１】
図１６は、パターンツリー構造を構築する手順を詳細に説明するフローチャートである。データベース分割ＺのレコードＲが読み出されたとする（１６０２）。レコードＲに含まれる項目から、除外属性リストに含まれない属性に属する項目であり、除外項目リストに含まれず、データベース分割Ｚにおいて局所頻出である項目を抽出し、該項目を属性順序列に従ってソートした項目列を作成する（１６０３）。はじめに、ルートノードに遷移する（１６０４）。ルートノードのカウンタ配列のデータベース分割Ｚに対応するカウンタを１増加させる（１６０４）。対応するカウンタ配列が存在しない場合、新たに追加し、カウンタを１とする。次に、ルートノードの子ノードに遷移する。ルートノードの子ノードのリンク先に該項目列の先頭の項目をラベルとするノードが存在しない場合、新たにノードを作成し、ルートノードの子ノードとしてリンクを張る。該ノードのラベルに該項目列の先頭の項目を設定し、該ノードのデータベース分割Ｚに対応するカウンタ配列を用意し、カウンタを０に設定する（１６０７）。ルートノードのリンク先のノードに遷移し（１６０８）、該ノードのカウンタ配列のデータベース分割Ｚに対応するカウンタを１増加させる（１６０９）。対応するカウンタ配列が存在しない場合、新たに追加し、カウンタを１とする。以降、第ｉ層目のノードＰから第（ｉ＋１）層目の子ノードＱに遷移する処理を以下に示す。ノードＰの子ノードに該項目列の先頭から（ｉ＋１）番目の項目をラベルとするノードが存在する場合、該子ノードに遷移する（１６０８）。存在しない場合、該項目をラベルとし、該データベース分割に対応するカウンタ配列のカウンタを０とする新しいノードを作成し、第ｉ層目のノードの子ノードとしてリンクを張った後（１６０７）、該新たに作成した子ノードに遷移する（１６０８）。遷移したノードＱにおいて、カウンタ配列の該データベース分割に対応するカウントを１増加させる（１６０９）。対応するカウンタ配列が存在しない場合、新たに追加し、カウンタを１とする。次に、ｉを１増加させ（１６１３）、該項目列の最後尾の項目まで親ノードから子ノードへの遷移を繰り返す。【０１０２】
各データベース分割における局所頻出パターン抽出のための各項目パターンの局所支持回数の計数は、パターンツリー構造を用いる。ある第ｍ層目のラベルが項目Ｘ[ｍ]のリーフノードからルートノードまで親ノードへのリンクと辿ることによって遷移する際に経由するノードのラベルが項目Ｘ[ｍ−１]、・・・、Ｘ[１]であるとする。ここで、該経由するノード中の第ｉ層目のノードをＸ[ｉ]とし、該経由するノードのラベルの集合をパスと呼ぶ。該ラベルが項目Ｘ[ｍ]のノードに保持されているカウンタ配列のデータベース分割Ｚに対するカウンタがCである場合、パスはパスに含まれるすべての項目の組合せである項目パターン｛Ｘ[1]，Ｘ[２]，・・・，Ｘ[ｍ]｝のデータベース分割Ｚにおける局所支持回数がCであることを示す。さらに、該パスは、該パスに含まれる項目の部分集合の項目パターンについては、該パスに含まれる部分の局所支持回数が該項目パターンの局所支持回数であることを示す。例えば、該パスの部分集合の項目パターン｛Ｘ[１]，Ｘ[ｍ]｝のパス｛Ｘ[1]，Ｘ[２]，・・・，Ｘ[ｍ]｝に含まれる部分については、データベース分割Ｚにおける局所支持回数がCであるとなる。該項目パターンのデータベース分割Ｚ全体での局所支持回数は、該項目パターンを含むパスにおける局所支持回数の総和となる。【０１０３】
図１７は、各項目パターンの各データベース分割における局所支持回数を抽出する処理を詳細に説明するフローチャートである。各リーフノードについて、パスを作成し（１７０２）、パスから作成可能な項目パターンを作成し（１７０３）、該項目パターンの局所支持回数の加算（１７０５）を繰り返すことによって、各項目パターンの各データベース分割における局所支持回数を計数する。例えば、１つ目のリーフノードから作成されるパスが｛Ａ：ａ０，Ｂ：ｂ１，Ｃ：ｃ０｝であり、カウンタ配列の１番目が３、２番目が５であるとする。ここで、カウンタ配列の１番目がデータベース分割Ｚ１、２番目がデータベース分割Ｚ２であるとする。パス｛Ａ：ａ０，Ｂ：ｂ１，Ｃ：ｃ０｝から、項目パターン｛Ａ：ａ０，Ｂ：ｂ１，Ｃ：ｃ０｝、項目パターン｛Ａ：ａ０，Ｂ：ｂ１｝、項目パターン｛Ａ：ａ０，Ｃ：ｃ０｝、項目パターン｛Ｂ：ｂ１，Ｃ：ｃ０｝、項目パターン｛Ａ：ａ０｝、項目パターン｛Ｂ：ｂ１｝、項目パターン｛Ｃ：ｃ０｝を作成し、これら項目パターンのデータベース分割Ｚ１の局所支持回数のカウンタを３、データベース分割Ｚ２の局所支持回数のカウンタを５に設定する。２つ目のリーフノードから作成されるパスが｛Ａ：ａ０，Ｃ：ｃ０｝であり、ノード｛Ａ：ａ０｝は１つ目のリーフノードと共通しているとし、カウンタ配列の１番目が４、２番目が７であるとする。パス｛Ａ：ａ０，Ｃ：ｃ０｝から作成可能なすべての項目パターンを作成し、該項目パターンのデータベース分割Ｚ１のカウンタに４を、データベース分割Ｚ２のカウンタに７を加算するが、パスに含まれる項目中で既に計数済みのパスと共通する項目のみから作成される項目パターンは計数しない。例えば、項目パターン｛Ａ：ａ０，Ｃ：ｃ０｝のデータベース分割Ｚ１のカウンタには７を加算するが、項目パターン｛Ａ：ａ０｝については２つ目のパスにおいては加算しない。すべてのリーフノードに対して計数処理を行うことによって、各項目パターンの各データベース分割における局所支持回数を計数することが出来る。計数済みパスと共通する項目のみから作成される項目パターンの計数を回避する方法は、パスの作成の際に経由した各ノードに計数済みであるフラグを立て、パスに含まれる項目を計数済みフラグの状態によって区別することによって処理する（１７０４）。また、特定の属性を含む局所頻出パターンを抽出する場合には、パスから作成する項目パターンを該特定の属性に属する項目を含む項目パターンに限定することによって処理する。【０１０４】
次に、１以上のデータベース分割において局所頻出となる項目パターンについて、該項目パターンの全域支持回数を求め、全域支持度を計算し、最小支持度を満たす場合に全域頻出パターンとし、記憶部１３０１に保持する（１４０３）。さらに、局所支持回数が未知であるが、全域頻出パターンになり得るために、計数する必要がある項目パターンとデータベース分割のリストを作成する。該リストを追加処理リストと呼ぶ。【０１０５】
次に、追加処理リストに登録された項目パターンの局所支持回数を計数し、全域頻出パターンを抽出する（１４０４）。各データベース分割において、該データベース分割に含まれるレコード中で、追加処理リストに含まれる該データベース分割の項目パターンに含まれる項目をパターンツリー構造に追加する。すべてのデータベース分割に対する処理が終了した時点で、追加されたノードまたはカウンタ配列が更新されたノードからルートノードまでのパスを作成することによって、追加処理リストに含まれる項目パターンの局所支持回数を計数し、全域頻出パターンを記憶部１３０１に保持する。【０１０６】
次に、記憶部１３０１に保持された各全域頻出パターンについて、該全域頻出パターンの部分パターンであり、全域支持度が未知の項目パターンの局所支持回数をデータ構造のノードを辿ることによって計数し、式(1)によって全域支持度を計算し、記憶部１３０１に保持する（１４０５）。【０１０７】
次に記憶部１３０１に保持された全域頻出パターンから相関ルールを導出し、出力部１０５に出力する。【０１０８】
以上が、第３の実施形態の解析方法である。このように局所頻出パターン抽出処理において、データベース分割からパターンツリー構造を構築し、パターンツリー構造を用いて各項目パターンの各データベース分割における局所支持回数を計数することによって、データベースの検索処理負荷を低減することが出来る。【０１０９】
なお、以上で説明した第３の実施形態では、パターンツリー構造の構築において、各データベース分割のレコードに含まれる項目から、除外属性リストに含まれない属性に属する項目であり、除外項目リストに含まれない項目中で、該データベース分割において局所頻出である項目に限定してパターンツリー構造を構築したが、該データベース分割において局所頻出である項目に限定せず、局所頻出でない項目も含めてパターンツリー構造を構築することでも同様に処理を実施することが可能である。【０１１０】
また、第３の実施形態では、パターンツリー構造を用いて各項目パターンの各データベース分割での局所支持回数を計数するため、局所頻出パターンを抽出すると同時に全域頻出パターンを抽出することも可能である。
【実施例６】
【０１１１】
表１に示す医療データを例に取り、第３の実施形態におけるパターンツリー構造構築１４０１、局所頻出パターン抽出１４０２、全域頻出パターン抽出１４０３、追加計数１４０４、部分パターン計数１４０５の処理を説明する。【０１１２】
本実施例では、属性｛遺伝子２｝を含む相関ルールを抽出するための、パターンツリー構造構築処理と局所頻出パターン抽出処理と全域頻出パターン抽出処理と追加計数処理と部分パターン計数処理を示す。【０１１３】
パターンツリー構築処理１４０１においては、属性｛遺伝子２｝を含むデータベース分割について、レコードを読み出し、パターンツリーを構築する。属性｛遺伝子２｝を含むデータベース分割から構築されるパターンツリー構造を図１８に示す。各ノードの各データベース分割のカウンタ配列は、１つ目がデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝、２つ目がデータベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝である。【０１１４】
次に、パターンツリー構造のノードを辿ることによって、属性｛遺伝子２｝を含む項目パターンを作成し、該項目パターンの各データベース分割における局所支持回数を計数する。本実施例では、例えば、ラベル｛危険因子病名：高血圧｝のリーフノード１８０５から、ラベル｛虚血性心疾患病名：なし｝のノード１８０４、ラベル｛遺伝子１：ＣＣ｝のノード１８０３、ラベル｛遺伝子２：ＡＡ｝のノード１８０２、ルートノード１８０１と辿ることによって、パス｛遺伝子２：ＡＡ，遺伝子１：ＣＣ，虚血性心疾患病名：なし，危険因子病名：高血圧｝が作成され、これらノードの計数済みフラグが立てられる。ラベル｛危険因子病名：高血圧｝のリーフノード１８０５のデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝、の支持回数が１であり、データベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝はこのパスから作成される項目パターンには含まれないことがわかる。項目パターンの計数は、パス｛遺伝子２：ＡＡ，遺伝子１：ＣＣ，虚血性心疾患病名：なし，危険因子病名：高血圧｝から作成可能であり、属性｛遺伝子２｝を含む項目パターンを作成し、該項目パターンのデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝のカウンタを１とする。次に、ラベル｛虚血性心疾患病名：なし｝のノード１８０７、ラベル｛遺伝子１：ＣＧ｝のノード１８０６、ラベル｛遺伝子２：ＡＡ｝のノード１８０２、ルートノード１８０１と辿ることによって、パス｛遺伝子２：ＡＡ，遺伝子１：ＣＧ，虚血性心疾患なし｝が作成され、これらノードの計数済みフラグが立てられる。該パスから作成可能であり、属性｛遺伝子２｝を含む項目パターンを作成し該項目パターンのデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝のカウンタに１を加算する。ただし、該パス中の項目｛遺伝子２：ＡＡ｝については計数済みフラグが立っているため、該項目のみの項目パターンは加算しない。各リーフノードからルートノードまで親ノードへのリンクを辿ることによって作成したパスから、各項目パターンの各データベース分割における局所支持回数を計数することが出来る。各項目パターンの各データベース分割における局所支持度を計算することによって、局所頻出パターンを抽出する。【０１１５】
次に、抽出された局所頻出項目パターンから、全域頻出パターンを抽出し、追加計数処が必要な項目パターンを抽出する。例えば、項目パターン｛遺伝子２：ＴＴ，虚血性心疾患病名：心筋梗塞｝はデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝では計数されていないが、データベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝での局所支持回数が５であり、式(2)から計算した該項目パターンの上限値が最小支持度以上となる。該項目パターンをデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝において計数する必要があるため、追加処理リストに該項目パターンと該データベース項目の組を保持する。【０１１６】
すべての局所頻出パターンに対する全域頻出パターンと追加計数処理の必要な項目パターンの抽出が終了した時点で、追加処理リストに保持されている項目パターンの局所支持回数を計数する。例えば、項目パターン｛遺伝子２：ＴＴ，虚血性心疾患病名：心筋梗塞｝のデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝での局所支持回数の計数が必要であることが登録されているため、該データベース分割を読み出したときに項目｛虚血性心疾患病名：心筋梗塞｝をパターンツリー構造に追加する。追加処理リストに保持された項目パターンについて、パターンツリー構造への追加が終了した時点で、追加されたノードまたはカウンタ配列が更新されたノードからルートノードまで親ノードを辿ることによってパスを作成し、追加処理リストに保持された項目パターンの局所支持回数を計数し、全域支持度を式(1)によって計算し、最小支持度を満たす項目パターンを全域頻出パターンとして記憶部に保持する。さらに、追加処理リストを空にする。【０１１７】
次に、各全域頻出パターンについて、該項目パターンの部分パターン中で全域支持度が未知である項目パターンが存在する場合、該項目パターンを追加処理リストに保持する。すべての全域頻出パターンについて全域支持度が未知の部分パターンの抽出が終了した時点で、パターンツリー構造から追加処理リストに保持された項目パターンの計数を行い、全域支持度を計算する。ここで、追加処理リストに保持される項目パターンを計数するためのデータは既に構築したパターンツリー構造に保持されているため、データベースの検索は不要である。【０１１８】
次に、記憶部に保持された全域頻出パターンから相関ルールを導出する。属性｛遺伝子２｝を含む相関ルールを導出するための項目パターンが全域頻出パターンとして保持されているため、データベースの検索処理は不要である。【０１１９】
本実施例に示したように、パターンツリー構造を構築することによって、全域頻出パターンを抽出することが可能である。項目パターンの局所支持回数の計数処理をパターンツリー構造を用いて行うことによって、データベースの検索処理負荷を低減することが出来る。
【実施例７】
【０１２０】
本発明の第３の実施形態における属性の削除処理（２０９）を実施する別の形態を説明する。【０１２１】
特定の属性を含む相関ルール導出処理が終了した時点で、各データベース分割から該属性を削除する処理を行っていたが、該属性を除外属性リストに追加することと、該属性に属する項目を除外項目リストに追加することと、構築したパターンツリー構造から該属性に属する項目をラベルとするノードを削除し、残りのノードを記憶部に保持し、以降の相関ルール抽出処理時に再利用することが出来る。【０１２２】
属性の削除処理（２０９）において、相関ルール抽出処理の終了した属性について、除外属性リストへの追加と除外項目リストへの追加の後、パターンツリー構造から該属性に属する項目をラベルとするノードを削除する。各ノードについて、同じ項目をラベルとする子ノードを統合する。同じ項目をラベルとする子ノードについて、該ノードのカウンタ配列の各データベース分割における値の総和を求め、任意の１つのノードのカウンタ配列の値を置き換える。さらに、該カウンタ配列の値が置き換えられたノードに、他のノードの子ノードのリンクを張り、該他のノードをパターンツリーから削除する。すべてのノードについてルートノードから順に同じラベルを項目とする子ノードの統合を行い、構築されたパターンツリー構造を記憶部に保持する。【０１２３】
次の属性に対する相関ルール抽出処理において、記憶部に保持されたパターンツリー構造が保持するデータベース分割に対するパターンツリー構造を構築する必要がある場合、記憶部に保持されたパターンツリー構造から、該データベース分割記憶部に保持されたパターンツリー構造に加えて、記憶部に保持されていないデータベース分割が局所支持回数の計数に必要な場合、実施形態３のパターンツリー構造構築処理１４０１によって、該記憶部に保持されたパターンツリー構造に新たなノードを追加することによってパターンツリー構造を構築する。【０１２４】
以上が、第３の実施形態における属性の削除処理の別の形態である。このように構築したパターンツリー構造から不要なノードを取り除き、残りのパターンツリー構造を記憶部に保持することによって、パターンツリー構造構築の処理負荷を低減することが出来る。【０１２５】
なお、以上で説明した実施形態では、構築したパターンツリー構造から不要な属性を除いたパターンツリー構造を記憶部に保持したが、不要な属性を除いた後、各データベース分割毎にパターンツリー構造を分解することでも同様に処理することが可能である。
【実施例８】
【０１２６】
表１に示す医療データを例に取り、実施例７に示した第３の実施形態における属性の削除処理２０８の別の実施形態を説明する。【０１２７】
本実施例では、属性｛遺伝子２｝を含む相関ルールの抽出処理における、相関ルール導出処理が終了したときに、図１８に示すパターンツリー構造が構築されたとする。属性｛遺伝子２｝に属する項目をラベルとするノード｛遺伝子２：ＡＡ｝１８０２と｛遺伝子２：ＴＴ｝１８０８を削除することによって、図１９に示すパターンツリー構造が構築される。ルートノード１９０１について、該ルートノードの子ノード１９０２と子ノード１９０３は同じラベルを｛遺伝子１：ＣＣ｝を持つため、統合される。該子ノードのカウンタ配列の各データベース分割のカウンタの総和を求めることによって、１番目が４、２番目はカウントなしとなる。子ノード１９０２に子ノード１９０３を統合する場合、子ノード１９０２のカウンタ配列を１番目が４、２番目はカウントなしとし、子ノード１９０３の項目｛虚血性心疾患病名：なし｝をラベルとする子ノード１９０４へのリンク１９０６と項目｛虚血性心疾患病名：狭心症｝をラベルとする子ノード１９０５へのリンク１９０７とを子ノード１９０２の子ノードのリンクに追加し、子ノード１９０３を削除する。すべての同一のラベルを持つ子ノードの統合が終了したとき、図２０に示すパターンツリー構造が構築され、記憶部に保持される。該パターンツリー構造は以降にデータベース分割｛遺伝子１，遺伝子２，虚血性心疾患病名，危険因子病名｝、データベース分割｛遺伝子２，虚血性心疾患病名，危険因子病名｝が計数処理に必要になったときに再利用出来る。【０１２８】
本実施例に示したように、パターンツリー構造の再利用により、パターンツリー構築の処理負荷を低減することが出来る。
【実施例９】
【０１２９】
図２１は、本発明の第４の実施形態のシステム構成例を示す図である。このシステムは処理装置２１０１、記憶装置２１０２、データ格納装置２１０３、入力装置２１０４、出力装置２１０５がバスまたはネットワークである通信路２１０６を介して相互接続されている。各装置の処理は第１、第２、第３の実施形態と同じであり、処理装置２１０１は処理部１０１、記憶装置２１０２は記憶部１０２、データ格納装置２１０３はデータ格納部１０３、入力装置２１０４は入力部１０４、出力装置２１０５は出力部１０５の処理を行うことによって、欠損を含むデータから相関ルールを抽出することが出来る。
【実施例１０】
【０１３０】
図２２は、本発明の第５の実施形態のシステム構成例を示す図である。このシステムは処理装置２２０１、記憶装置２１０２、入力装置２１０４、出力装置２１０５と複数のデータ格納装置２２０３ａ，２２０３ｂ，・・・，２２０３ｍ（ｍは２以上の整数）がバスまたはネットワークである通信路２１０６を介して相互接続されている。各データ格納装置には、２以上のデータ格納装置の間で属性が同一または重複するデータベースであり、２以上のデータ格納装置の間で重複する識別子が存在しないレコードが保持されている。【０１３１】
記憶装置２１０２、入力装置２１０４、出力装置２１０５の処理は第４の実施形態と同じである。処理装置２２０１は各データ格納装置２２０３ａから２２０３ｍからレコードを読み出すことによって、第４の形態と同じ処理により、欠損を含むデータから相関ルールを導出することが出来る。
【実施例１１】
【０１３２】
図２３に示す小売業におけるバスケットデータを例にとり、第５の実施形態の処理を説明する。【０１３３】
解析対象となるデータベースは複数の属性からなるレコードの集合である。小売業におけるバスケットデータを例に取ると、１つのレコードは１人の顧客の購入した商品のリストであり、各属性は商品名、商品分類など販売する商品に関する情報、または、性別、年齢層など購入した顧客の特徴に関する情報である。【０１３４】
本実施例では、店舗Ａ、店舗Ｂ、店舗Ｃの３つの店舗におけるバスケットデータが通信路によって接続された３つの独立したデータ格納装置２３０３ａ、２３０３ｂ、２３０３ｃに保持されているとする。図２３の例は商品１、商品２、商品３、商品４の４つの属性からなり、各属性の属性値は１と０の２値である。属性値が１であることは、顧客が該属性値の属性である商品を購入したこと、０であることは購入しなかったことを示している。全レコード数を３０とし、レコード識別子１から１２が店舗Ａのデータベース、レコード識別子１３から２０が店舗Ｂのデータベース、レコード識別子２１から３０が店舗Ｃのデータ格納部に格納されている。店舗Ａはすべての商品を販売しているため、欠損データは含まない。しかし、店舗Ｂは商品４を販売していないため、店舗Ｂのデータベースにおけるレコードは商品４がすべて欠損データとなる。店舗Ｃはある時期までは商品２を販売していなかったため、一部のレコードにおいて商品２が欠損データとなっている。【０１３５】
入力装置２１０４において、ユーザから支持度の最小値が０．２０、確信度の最小値が０．７５、レコード利用度の最小値が０．２と入力された場合について考える。【０１３６】
処理装置２２０１はデータ格納装置２３０３ａ，２３０３ｂ，２３０３ｃからレコードを読み出すことによって、表１７に示すデータベース分割を作成し、記憶装置２１０２に保持する。以降の処理は、処理装置２２０１において、記憶装置２１０２からデータを読み出すことと抽出した相関ルールを出力装置２１０５に出力することによって、第１の実施形態と同様に処理することが出来る。
【表１７】
0004676498.tif 000020
【０１３７】
本実施例の場合、例えば、相関ルール｛商品１：１｝⇒｛商品２：１｝（確信度＝１．００、支持度＝０．２３、レコード利用度＝０．６７）が抽出される。該相関ルールは商品１を購入した顧客は常に商品２も購入していることを意味している。さらに、本実施例の場合、相関ルール｛商品１：０，商品２：０｝⇒｛商品４：１｝（確信度＝０．７５、支持度＝０．４３、レコード利用度＝０．４０）が抽出される。該相関ルールは商品１と商品２を共に購入しなかった顧客の４分の３の顧客が商品４を購入していることを意味している。このような相関ルールから商品の配置など販売方針決定に役立てることが出来る。【０１３８】
なお本発明の応用範囲は医療や小売業に限定されず、広くデータベースを業務管理に使う分野に適用可能であることは言うまでもない。
【産業上の利用可能性】
【０１３９】
欠損を含むデータを解析対象とし、データ間の関連性を解析するソフトウェア、サービスに本発明を適用出来る。汎用のデータマイニングソフトウェア、統計解析ソフトウェアの相関ルールマイニング機能に本発明を追加することも出来る。
【図１】
0004676498.tif 000022
【図２】
0004676498.tif 000023
【図３】
0004676498.tif 000024
【図４】
0004676498.tif 000025
【図５】
0004676498.tif 000026
【図６】
0004676498.tif 000027
【図７】
0004676498.tif 000028
【図８】
0004676498.tif 000029
【図９】
0004676498.tif 000030
【図１０】
0004676498.tif 000031
【図１１】
0004676498.tif 000032
【図１２】
0004676498.tif 000033
【図１３】
0004676498.tif 000034
【図１４】
0004676498.tif 000035
【図１５】
0004676498.tif 000036
【図１６】
0004676498.tif 000037
【図１７】
0004676498.tif 000038
【図１８】
0004676498.tif 000039
【図１９】
0004676498.tif 000040
【図２０】
0004676498.tif 000041
【図２１】
0004676498.tif 000042
【図２２】
0004676498.tif 000043
【図２３】
0004676498.tif 000044