(57)【特許請求の範囲】
【請求項１】
各レコードに対し、各レコードが持つ項目であるところの属性を記録した形式のデータから各レコードを意味するイベントの組合せと前記属性である各特徴量の組合せとを選択することによって部分データを全体のデータから抽出するデータ分解装置であって、
各特徴量を選択したか否かを示す論理値を成分として持つ特徴量選択ベクトルと、各イベントを選択したか否かを示す論理値を成分として持つイベント選択ベクトルの組を、全ての組み合わせについて、ベクトルデータとして記憶領域に格納する手段と、
該ベクトルデータを選択されたイベントの数が多い順に配列する手段と、
前記特徴量が値を取ることのできる範囲を部分区間に分けたそれぞれをセグメントと呼ぶとき、選択されたイベントの数に対して単調増加で、選択する特徴量を選択された次元として持つ部分特徴量空間における全セグメント数に対して単調増加で、選択する部分特徴空間における選択セグメント数に対して単調減少である評価関数を用い、その評価値の極大値よりもイベントの数が多いベクトルデータを部分データとして抽出する手段と、
を備えることを特徴とするデータ分解装置。
【請求項２】
前記評価関数と増減関係が逆転した評価関数を用いて、極小値に対応する部分データを抽出することを特徴とする請求項１に記載のデータ分解装置。
【請求項３】
選択されたイベントと選択された特徴量で指定される、全データ中の部分データである部分状況に含まれるイベント数の比率、部分特徴量空間におけるセグメント毎の選択イベント数の平均値、部分特徴空間における選択セグメント数の空間占有率を含むパラメータを使用して評価量値を算出することを特徴とする請求項１に記載のデータ分解装置。
【請求項４】
部分状況に含まれるイベント数の比率に対して単調増加で、部分特徴量空間におけるセグメント毎の 選択イベント数の平均値に対して単調増加で、部分特徴量空間における選択セグメント数の空間占有率に対して単調減少である評価関数を用い、該評価関数の出 力値である評価値の極大値に対応する部分データを抽出することを特徴とする請求項３に記載のデータ分解装置。
【請求項５】
前記評価関数と増減関係が逆転した評価関数を用いて、極小値に対応する部分データを抽出することを特徴とする請求項４に記載のデータ分解装置。
【請求項６】
Ｃ1 、Ｃ2 、Ｃ3 を正の定数、ｎ／Ｎを、部分状況に含まれるイベント数の比率、ｎ／ｒd を、部分特徴量空間におけるセグメント毎の選択イベント数の平均値、ｒd ／Ｓd を、部分特徴量空間における選択セグメント数の空間占有率として、
【数１】
0003762835.tif 000012
を前記評価関数として使用することを特徴とする請求項４に記載のデータ分解装置。
【請求項７】
Ｃ1 ＝ｋ、Ｃ2 ＝０．３ｋ、Ｃ3 ＝０．７ｋ（ｋは定数）と設定することを特徴とする請求項６に記載のデータ分解装置。
【請求項８】
特徴量の組合せ変化とイベントの組合せ変化の双方に対して評価値が極値となる複数個の部分データを抽出する手段として、
特徴量選択の組合せを生成する手段と、
そこで生成された特定の部分特徴量空間においてイベントの組合せの変化による評価値の極値を探索する手段と、
極値となるイベントの組合せが特徴量選択方向の微小変化に対して極値であることを確認する手段と、前記探索手段と確認手段からのいずれの変化に対しても極値であるイベントと特徴量の選択の結果を出力する手段とにより構成されることを特徴とする請求項１に記載のデータ分解装置。
【請求項９】
特定の部分特徴量空間においてイベントの組合せの変化による評価値の極値を探索する手段として、
生成された特定の部分特徴量空間により指定されるセグメント選択空間において、セグメントを選 択することで間接的にイベントを選択することでイベントの組合せの変化による評価値の極値を探索する手段を備えることを特徴とする請求項８に記載のデータ分解装置。
【請求項１０】
セグメントの選択において、一つもイベントを含まないセグメントを選択しないことを特徴とする請求項８に記載のデータ分解装置。
【請求項１１】
選択したセグメントに含まれるイベントをすべて選択することを特徴とする請求項８に記載のデータ分解装置。
【請求項１２】
イベント数の大きなセグメントを優先的に選択することを特徴とする請求項８に記載のデータ分解装置。
【請求項１３】
各レコードに対し、各レコードが持つデータの項目であるところの属性を記録した形式のデータから各レコードを意味するイベントの組合せと前記属性である各特徴量の組合せとを選択することによって部分データを全体のデータから抽出するデータ分解方法であって、
各特徴量を選択したか否かを示す論理値を成分として持つ特徴量選択ベクトルと、各イベントを選択したか否かを示す論理値を成分として持つイベント選択ベクトルの組を、全ての組み合わせについて、ベクトルデータとして記憶領域に格納するステップと、
該ベクトルデータを選択されたイベントの数が多い順に配列するステップと、
前記特徴量が値を取ることのできる範囲を部分区間に分けたそれぞれをセグメントと呼ぶとき、選択されたイベントの数に対して単調増加で、選択する特徴量を選択された次元として持つ部分特徴量空間における全セグメント数に対して単調増加で、選択する部分特徴空間における選択セグメント数に対して単調減少である評価関数を用い、その評価値の極大値よりもイベントの数が多いベクトルデータを部分データとして抽出するステップと、
を備えることを特徴とするデータ分解方法。
【請求項１４】
前記評価関数と増減関係が逆転した評価関数を用いて、極小値に対応する部分データを抽出することを特徴とする請求項１３に記載のデータ分解方法。
【請求項１５】
選択されたイベントと選択された特徴量で指定される、全データ中の部分データである部分状況に含まれるイベント数の比率、部分特徴量空間におけ るセグメント毎の選択イベント数の平均値、部分特徴空間における選択セグメント数の空間占有率を含むパラメータを使用して評価量値を算出することを特徴とする請求項１３に記載のデータ分解方法。
【請求項１６】
部分状況に含まれるイベント数の比率に対して単調増加で、部分特徴量空間におけるセグメント毎の選択イベント数の平均値に対して単調増加で、部分特徴量空間における選択セグメント数の空間占有率に対して単調減少である評価関数を用い、該評価関数の出力値である評価値の極大値に対応する部分データを抽出することを特徴とする請求項１５に記載のデータ分解方法。
【請求項１７】
前記評価関数と増減関係が逆転した評価関数を用いて、極小値に対応する部分データを抽出することを特徴とする請求項１６に記載のデータ分解方法。
【請求項１８】
Ｃ1 、Ｃ2 、Ｃ3 を正の定数、ｎ／Ｎを、部分状況に含まれるイベント数の比率、ｎ／ｒd を、部分特徴量空間におけるセグメント毎の選択イベント数の平均値、ｒd ／Ｓd を、部分特徴量空間における選択セグメント数の空間占有率として、
【数２】
0003762835.tif 000013
を前記評価関数として使用することを特徴とする請求項１６に記載のデータ分解方法。
【請求項１９】
Ｃ1 ＝ｋ、Ｃ2 ＝０．３ｋ、Ｃ3 ＝０．７ｋ（ｋは定数）と設定することを特徴とする請求項１８に記載のデータ分解方法。
【請求項２０】
特徴量の組合せ変化とイベントの組合せの変化の双方に対して評価値が極値となる複数個の部分データを抽出するステップとして、特徴量選択の組合せを生成するステップと、そこで生成された特定の部分特徴量空間においてイベントの組合せの変化による評価値の極値を探索するステップと、極値となるイベントの組合せが特徴量選択方向の微小変化に対して極値であることを確認するステップと、前記探索及び確認ステップからいずれの変化に対しても極値であるイベントと特徴量選択の結果を出力するステップと、からなることを特徴とする請求項１３に記載のデータ分解方法。
【請求項２１】
特定の部分特徴量空間においてイベントの組合せの変化による評価値の極値を探索するステップとして、生成された特定の部分特徴量空間により指定されるセグメント選択空間において、セグメントを選択することで間接的にイベントを選択することでイベントの組合せの変化による評価値の極値を探索するステップを備えることを特徴とする請求項２０に記載のデータ分解方法。
【請求項２２】
セグメントの選択において、一つもイベントを含まないセグメントを選択しないことを特徴とする請求項２０に記載のデータ分解方法。
【請求項２３】
選択したセグメントに含まれるイベントをすべて選択することを特徴とする請求項２０に記載のデータ分解方法。
【請求項２４】
イベント数の大きなセグメントを優先的に選択することを特徴とする請求項２０に記載のデータ分解方法。
【請求項２５】
コンピュータに、各レコードに対し、各レコードが持つデータの項目であるところの属性を記録した形式のデータから各レコードを意味するイベントの組合せと前記属性 である各特徴量の組合せとを選択することによって部分データを全体のデータから抽出させるコンピュータ読み取り可能な記録媒体であって、
各特徴量を選択したか否かを示す論理値を成分として持つ特徴量選択ベクトルと、各イベントを選択したか否かを示す論理値を成分として持つイベント選択ベクトルの組を、全ての組み合わせについて、ベクトルデータとして記憶領域に格納する機能と、
該ベクトルデータを選択されたイベントの数が多い順に配列する機能と、
前記特徴量が値を取ることのできる範囲を部分区間に分けたそれぞれをセグメントと呼ぶとき、選択されたイベントの数に対して単調増加で、選択された特徴量を選択された次元として持つ部分特徴量空間における全セグメント数に対して単調増加で、選択する部分特徴空間における選択セグメント数に対して単調減少である評価関数を用い、その評価値の極大値よりもイベントの数が多いベクトルデータを部分データとして抽出する機能と、
をコンピュータに実行させることを特徴とする記録媒体。
【請求項２６】
前記評価関数と増減関係が逆転した評価関数を用いて、極小値に対応する部分データを抽出することを特徴とする請求項２５に記載の記録媒体。
【請求項２７】
選択されたイベントと選択された特徴量で指定される、全データ中の部分データである部分状況に含まれるイベント数の比率、部分特徴量空間におけるセグメント毎の選択イベント数の平均値、部分特徴空間における選択セグメント数の空間占有率を含むパラメータを使用して評価量値を算出することを特徴とする請求項２５に記載の記録媒体。
【請求項２８】
部分状況に含まれるイベント数の比率に対して単調増加で、部分特徴量空間におけるセグメント毎の選択イベント数の平均値に対して単調増加で、部 分特徴量空間における選択セグメント数の空間占有率に対して単調減少である評価関数を用い、該評価関数の出力値である評価値の極大値に対応する部分データを抽出することを特徴とする請求項２７に記載の記録媒体。
【請求項２９】
前記評価関数と増減関係が逆転した評価関数を用いて、極小値に対応する部分データを抽出することを特徴とする請求項２８に記載の記録媒体。
【請求項３０】
Ｃ1 、Ｃ2 、Ｃ3 を正の定数、ｎ／Ｎを、部分状況に含まれるイベント数の比率、ｎ／ｒd を、部分特徴量空間におけるセグメント毎の選択イベント数の平均値、ｒd ／Ｓd を、部分特徴量空間における選択セグメント数の空間占有率として、
【数３】
0003762835.tif 000014
を前記評価関数として使用することを特徴とする請求項２８に記載の記録媒体。
【請求項３１】
Ｃ1 ＝ｋ、Ｃ2 ＝０．３ｋ、Ｃ3 ＝０．７ｋ（ｋは定数）と設定することを特徴とする請求項３０に記載の記録媒体。
【請求項３２】
特徴量の組合せ変化とイベントの組合せ変化の双方に対して評価値が極値となる複数個の部分データを抽出する記録媒体として、
特徴量選択の組合せ を生成する機能と、そこで生成された特定の部分特徴量空間においてイベントの組合せの変化による評価値の極値を探索する機能と、
極値となるイベントの組合せが特徴量選択方向の微小変化に対して極値であることを確認する機能と、前記探索機能と確認機能からのいずれかの変化に対しても極値であるイベントと特徴量の選択の結果を出力する機能をコンピュータに実行させることを特徴とする請求項２５に記載の記録媒体。
【請求項３３】
特定の部分特徴量空間において、セグメントの組合せの変化による評価値の極値を探索する機能として、
生成された特定の部分特徴量空間により指定されるセグメント選択空間において、セグメントを選択することで間接的にイベントを選択することでイベントの組合せの変化による評価値の極値を探索する機能をコンピュータに実行させることを特徴とする請求項３２に記載の記録媒体。
【請求項３４】
セグメントの選択において、一つもイベントを含まないセグメントを選択しないことを特徴とする請求項３２に記載の記録媒体。
【請求項３５】
選択したセグメントに含まれるイベントをすべて選択することを特徴とする請求項３２に記載の記録媒体。
【請求項３６】
イベント数の大きなセグメントを優先的に選択することを特徴とする請求項３２に記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、無作為に収集されたデータの中から関連のあるデータの集まりを抽出する技術に関する。
【０００２】
【従来の技術】
今日では、膨大且つ様々な情報が計算機上に蓄積されつつあるが、膨大な情報はそのままでは人間に理解できないので、データマイニングや多変量解析が脚光を浴びている。この種の技術の主な目的は、情報から構造を抽出して予測等に利用すること、人間が理解できるサイズまで情報を圧縮して視覚化することの、二つである。
【０００３】
一方で、データ蓄積技術が安価になったために盲目的に収集されたデータが増大することで、データに質的変化が生じている。つまり、従来であれば予め目的を持ったデータのサンプリングが行われたので、データ内に存在する少数の因果関係が予め予測されていたが、新しいタイプのデータ内には予期されていない複数の因果関係が混在している。
【０００４】
このような複数の因果関係が混在するデータを解析するために因子分析などの典型的な多変量解析手法を単純に用いても有効な結果を得ることは難しい。そこで、予め人間がデータが収集される領域の特徴に関する知識を用いて、データ内にどのような関連性が含まれているかを予測し、問題を分割しておく必要がある。しかし、この種の作業には大変コストがかかるので、できれば問題分割の作業も可能な限り計算機に任せたい。
【０００５】
従来、特徴量を抽出したり選択する技術としては多変量解析、パターン認識、ニューラルネットワーク、Case-based reasoningなどの分野で研究が行われている。ここで、特徴量とは以下のようなことである。複数の人々に対して身体測定をしたとすると、一人の人に対して測定される身長や体重、あるいは、性別、年齢が一人の人の特徴を表す量となっている。量といっても性別は「男」、「女」の２通りしかなく、量というにはなじまないかもしれないが、一人の人を特徴づける因子の１つであるので、このような場合も含めて特徴量という。また、一人の人に対する特徴量の測定の結果である１つのレコードは、一人の人に対する測定という１つの作業に対応する。従って、このようなデータベース等での１つのレコードを１つのイベントという。イベントとしては、この他にも、システムの動作を時系列に測定する場合、各時間において行われた測定の各レコードをそれぞれイベントと呼ぶことも出来る。このとき、１つの測定において取得されたシステムの動作を特徴づける量が特徴量である。
【０００６】
【発明が解決しようとする課題】
従来、膨大なデータの中からデータ間の関連性を抽出するさまざまな技術が提案されてきた。しかし、これらの多くが、データ間に関連性を有する特徴量だけを抽出する技術であったり、ある特定の関連性を有するイベントを抽出するものである。
【０００７】
しかし、前述したように、近年、データは盲目的に蓄積される傾向にあり、取得された全ての種類の特徴量に関し、蓄積されたデータが関連性を有しているとは限らず、また、特定の種類の特徴量に限った場合にも、これらの特徴量に関して、収集された全てのデータが関連性を有しているとは限らない。従って、盲目的に蓄積されたデータに関しては、特定の特徴量の組合せに対して関連性を有する特定のイベントの組合せを抽出する必要がある。すなわち、蓄積されたデータの中から特徴量とイベントを組み合わせて抽出する必要がある。
【０００８】
本発明の課題は、複数のイベントに対し所定の種類の特徴量が対応づけられたデータの中から、特徴量とイベントを組み合わせて、相互に関連性のあるデータを抽出する技術を提供することである。
【０００９】
【課題を解決するための手段】
本発明のデータ分解装置は、各レコードに対し、各レコードが持つ複数の属性を記録した形式のデータから各レコードに対応する各イベントの組合せと前記属性である各特徴量の組合せとを選択することによって部分データを全体のデータから抽出するデータ分解装置であって、特定の特徴量の組合せと特定のイベントの組合せに対して、データ間の関連性の基準となる評価値を算出する手段と、特徴量の組合せの変化とイベントの組合せの変化の双方に対して評価値が極値となる複数個の部分データを抽出する手段とを備えることを特徴とする。
【００１０】
本発明のデータ分解方法は、各レコードに対し、各レコードが持つ複数の属性を記録した形式のデータから各レコードに対応する各イベントの組合せと前記属性である各特徴量の組合せとを選択することによって部分データを全体のデータから抽出するデータ分解方法であって、特定の特徴量の組合せと特定のイベントの組合せに対して、データ間の関連性の基準となる評価値を算出するステップと、特徴量の組合せの変化とイベントの組合せの変化の双方に対して評価値が極値となる複数個の部分データを抽出するステップとを備えることを特徴とする。
【００１１】
本発明によれば、盲目的に収集されたデータの中から、相互に関連のあるレコード（イベント）と、各イベントを関連付けいている特徴量を全体のイベントの集合及び特徴量の集合から選択して抽出するので、人間がデータの選り分け作業をする必要がなく、容易に相互に関連性のあるデータを抽出することが出来る。
【００１２】
この技術を使えば、多変量解析やデータマイニング、パターン認識など、収集されたデータの中から一定のデータ間の相関関係を見つけ出す処理の前処理として有効に利用することが出来る。
【００１３】
【発明の実施の形態】
本発明では、与えられた全データをイベントと特徴量の行列と考えて全体状況と呼び、任意のイベントの部分集合と特徴量の部分集合の組合せを部分状況と呼ぶ。
【００１４】
図１は、本発明で全体状況と呼ぶイベントと特徴量の行列としてのデータの例を示した図である。
同図は、複数の人に対し１日に何本タバコを吸うかという調査結果を示した図である。同図においては、調査を行った一人の人に対するレコードが１つのイベントであり、７つのイベントまでが示されている。また、一人の人に対して行った調査内容が特徴量であり、同図では「性別」、「年齢」、「身長」、「体重」、及び「タバコ」と示されている。ここで、「タバコ」とは１日にその人が吸うタバコの本数がデータとして登録されている。一般には、これら以外にも調査項目がある場合もあり、また、調査対象人数も多くなりうるが、同図のような収集された全ての特徴量と全てのイベントの組合せ、及びその組合せで示されるデータの集合を全体状況という。
【００１５】
部分状況とは、任意のイベントの部分集合と特徴量の部分集合の組合せ、及びその組合せによって指定されるデータの集合である。例えば、イベントの部分集合として、１、３、５、６番目のレコードを採用し、特徴量の部分集合として、「性別」、「年齢」、「タバコ」を採用したとすると、部分状況は、これらのイベント及び特徴量の部分集合と、同図の太線で囲まれた各データの集合である。
【００１６】
以下、本実施形態のデータ分解方法の原理の説明を行う。
先ず、特徴量の選択／非選択を表す特徴量選択ベクトルｄを定義する。特徴量選択ベクトルｄは、各種類の特徴量を選択するか否かを示す情報を成分とするベクトルである。なお、以後、ベクトルを表す記号は文字の下に線を引いて表す。特徴選択ベクトルは、
ｄ＝（ｄ1 、ｄ2 、・・・、ｄD ）
であり、ｄi （ｉ＝１、２、・・・、Ｄ）＝ｔ（ｒｕｅ）／ｆ（ａｌｓｅ）で定義される。Ｄは、全特徴量の数であり、ｄi が“ｔ”に設定されている場合には、その特徴量が選択されていることを示し、“ｆ”に設定されている場合には、その特徴量は選択されていないことを示す。
【００１７】
例えば、図１の部分状況を表す場合、Ｄ＝５とすると、特徴量「性別」から「タバコ」を順に、それぞれｄ1 〜ｄ5 に対応させて、特徴量選択ベクトルを次のように表すことが出来る。
【００１８】
ｄ＝（ｔ、ｔ、ｆ、ｆ、ｔ）
同様に、イベントの選択／非選択を表すイベント選択ベクトルｎを定義する。イベント選択ベクトルｎは、特定のイベントを選択するか否かを示す情報を成分とするベクトルである。すなわち、
ｎ＝（ｎ1 、ｎ2 、・・・、ｎN ）
であり、ｎi （ｉ＝１、２、・・・、Ｎ）＝ｔ（ｒｕｅ）／ｆ（ａｌｓｅ）で定義される。Ｎは全イベントの数であり、ｎi が“ｔ”に設定されている場合には、そのイベントが選択されていることを示し、“ｆ”に設定されている場合には、そのイベントは選択されていないことを示す。
【００１９】
例えば、図１の部分状況を表す場合、Ｎ＝７とすると、同図の番号順にｎ1 〜ｎ7 を対応させて、イベント選択ベクトルを次のように表すことが出来る。
ｎ＝（ｔ、ｆ、ｔ、ｆ、ｔ、ｔ、ｆ）
すると、すべての特徴量を選択した場合の特徴量選択ベクトルＤと、すべてのイベントを選択した場合のイベント選択ベクトルＮは、次のように表される。
【００２０】
Ｄ＝（ｔ、ｔ、ｔ、・・・、ｔ）
Ｎ＝（ｔ、ｔ、ｔ、・・・、ｔ）
よって、選択する特徴量数ｄ（０＜ｄ＜Ｄ）、及び選択するイベント数ｎ（０＜ｎ＜Ｎ）は、それぞれ以下のようになる。
【００２１】
【数４】
0003762835.tif 000002
【００２２】
なお、特徴量選択ベクトルｄ、イベント選択ベクトルｎによって指定される部分状況をＪ＝（ｄ、ｎ）と表すことにする。これによれば、全体状況はＪ＝（Ｄ、Ｎ）と表される。このように、部分状況を指定するには、特徴量選択ベクトルｄと、イベント選択ベクトルｎを指定すればよい。
【００２３】
図２は、特徴量選択ベクトルとイベント選択ベクトルによって全体状況の中で部分状況を特定する際の概念を示した図である。
同図の場合には、縦軸に選択されたイベントの数ｎをとり、横軸に選択された特徴量の数ｄをとって図示している。実際の全体状況を示す空間は、特徴量選択ベクトルｄの基底ベクトルと、イベント選択ベクトルｎの基底ベクトルとではられる空間となるが、この空間は一般に３次元以上の多次元空間となるので、直接図示することはできない。従って、同図によって部分状況の特定の概念を説明する。
【００２４】
特徴量選択ベクトルｄによって特徴量を選択すると、横軸のある特定された範囲の特徴量が指定される（同図では、単に図示の便宜のために横軸上の一定の範囲が指定されるように示されているが、厳密には必ずしも正しくない）。また、イベント選択ベクトルｎによってイベントを選択すると、縦軸のある特定された範囲のイベントが指定される（特徴量の場合と同様に、同図は図示の便宜のために縦軸の一定の範囲が指定されるように示されているが、厳密には必ずしも正しくない。）。このようにして、指定された特徴量と指定されたイベントで特定される部分（同図で、斜線が引かれている部分）が部分状況となる。同図では、部分状況が隣り合っておらず、飛び飛びの部分を合わせて１つの部分状況を構成している。同図が象徴的に図示するように、一般に、特徴量選択ベクトルｄとイベント選択ベクトルｎによって部分状況を指定しても、指定される部分状況は、全体状況が作る空間内の隣り合ったデータの固まりとはならず、飛び飛びに分布しているデータを集めた集合となる。
【００２５】
特徴量選択ベクトルｄではられる特徴量の全空間の広さは２D 通りとなる。一方、イベント選択ベクトルｎではられるイベント選択空間の全空間の広さは、２N 通りとなる。
【００２６】
次に、各特徴量をセグメントに分割する。これは、例えば、特徴量が「身長」等の場合、データが連続した数値となるので、適当な数値間隔で「身長」の数値の座標を分割する。例えば、このようにして生成されるグラフとしては、ヒストグラムがある。すなわち、特徴量の連続した数値をヒストグラムの横軸の様に幾つかの区間に分けて、その区間にイベントが幾つ入っているかという観点からデータの処理を行うのである。このような、離散化を全ての特徴量に関して行う。特徴量が「性別」のように始めから離散化されており、特徴量の取りうる値の数も２つしかない場合には、そのまま離散化された状態を離散化した状態として利用する。
【００２７】
このような離散化を全ての特徴量に関して行うと、特徴量空間が各特徴量の離散化された区間によって指定されるセグメントに分割される。特徴量が「特徴１」と「特徴２」の場合に、特徴量空間がセグメントに分割されている様子を模式的に描いたのが図３である。
【００２８】
図３のように、特徴量が「特徴１」の座標軸が複数の区間に分割されており、「特徴２」の座標軸も同じく複数の区間に分割されている場合には、「特徴１」と「特徴２」ではられる特徴量空間は、同図に示されるように複数のセグメントに分割されることになる。このようなことが、全ての特徴量に対して行われるので、各特徴量毎の区間の数をｓi とすると、特徴量選択ベクトルｄで指定される部分特徴量空間に含まれるセグメントの数Ｓd は、
【００２９】
【数５】
0003762835.tif 000003
【００３０】
となる。
次に、図３で示されるようなセグメントの中から所定数のセグメントを選択するセグメント選択ベクトルｒd を以下のように定義する。
【００３１】
ｒd ＝（ｒd 1 、ｒd 2 、・・・、ｒd S d ）
ここで、ｒd i （ｉ＝１、２、・・・、Ｓd ）＝ｔ（ｒｕｅ）／ｆ（ａｌｓｅ）である。このとき、部分特徴量空間に含まれるセグメントは適当に番号付けされているものとし、その番号に対応するｒd i を“ｔ”に設定すると、そのセグメントを選択したことになり、“ｆ”を設定すると、そのセグメントを選択していないことを示す。
【００３２】
このとき、セグメント選択ベクトルｒd によって選択されたセグメントの数は、
【００３３】
【数６】
0003762835.tif 000004
【００３４】
となる。
ここで、特徴量選択ベクトルとセグメント選択ベクトルで指定された部分状況をＪ＝（ｄ、ｒd ）と表すことにする。
【００３５】
一方、同じ特徴量選択ベクトルｄにより指定される部分特徴量空間において、イベント選択ベクトルｎを指定した場合のセグメント毎のイベント数を表すベクトル（イベント数ベクトル）をｋd （ｎ）とすると、次のように表せる。
【００３６】
ｋd （ｎ）＝（ｋd 1 （ｎ）、ｋd 2 （ｎ）、・・・、ｋd S d （ｎ））
ここで、ｋd i （ｎ）＝０、１、２、・・・（ｉ＝１、２、・・・、Ｓd ）
ｉは、予め番号付けられたセグメントを特定し、イベント選択ベクトルｎでイベントが選択された場合に、ｉで指定されるセグメントにそれぞれイベントが幾つ入っているかを示すのがｋd i （ｎ）である。よって、全てのセグメントに入っているイベントの数を足し合わせると、イベント選択ベクトルｎで選択されたイベントの総数となるので、以下の式が成り立つ。
【００３７】
【数７】
0003762835.tif 000005
【００３８】
このように、セグメント選択ベクトルｋd （ｎ）を指定することで、部分特徴量空間内の特定の領域（飛び飛びの領域もありうる）が指定されるが、その中に必ずしもイベントが含まれているとは限らない。１つ以上のイベントを含むセグメント数Ｒd （ｎ）は、次式で示される。
【００３９】
【数８】
0003762835.tif 000006
【００４０】
次に、上記した、各ベクトルで指定される部分状況に含まれるデータ間の相関関係の強さを評価する。この相関関係の強さのことをマッチャビリティ（Matchability）と呼ぶ。
【００４１】
任意のイベントと特徴量を選択した部分状況Ｊ＝（ｄ、ｎ）から、相関関係のある状況を選択する基準について考える。ここで、マッチャビリティの大きい部分状況の性質としては、選択イベント数ｎが大きいこと、選択特徴数ｄが大きいこと、記述のための情報量が小さいこと、の３つがある。
【００４２】
ここで、部分特徴量空間における全セグメント数Ｓd は、選択特徴数ｄと単調増加の関係にある。そこで、マッチャビリティの大きい部分状況を特徴づける変数として選択特徴数ｄの代りに全セグメント数Ｓd を用いる。すると、マッチャビリティの大きい部分状況では次のような状態が成り立つと考えられる。
１）選択イベント数ｎが大きい。
２）選択する部分特徴量空間における全セグメント数Ｓd が大きい。
３）選択する部分特徴量空間における選択セグメント数ｒd が小さい。
もちろんマッチャビリティの大きい部分状況を特徴づける変数として選択特徴数ｄをそのまま用いてもよい。
【００４３】
次に、マッチャビリティの大きい部分状況において成り立つと考えられる状況を数値として評価するマッチャビリティ基準を関数で表すために、上記の３変数の性質を反映し、且つ、意味が解釈できる新たな変数を以下に導入する。
１）ｎ／Ｎ：部分状況に含まれるイベント数の比率（これは大きくなると評価値が大きくなるような関数を考える；０＜ｎ／Ｎ＜１）。
２）ｎ／ｒd ：部分特徴量空間における、選択されたセグメント毎の選択イベント数の平均値（これは、相関関係が大きいデータの場合、選択されたセグメント毎に含まれるイベントの数が大きくなると考えられるもので、この変数が大きくなるとマッチャビリティの評価値が大きくなるような関数を考える；１＜ｎ／ｒd ）。
３）ｒd ／Ｓd ：部分特徴量空間における選択セグメント数の空間占有率（これは、ｒd を小さく、Ｓd を大きくすることを両方含む変数と考えられ、この変数を小さくするとマッチャビリティの評価値が大きくなるような関数を考える。；０＜ｒd ／Ｓd ＜１）。
【００４４】
上記のような変数を使って、様々なマッチャビリティ基準の評価関数を作ることが出来るが、本実施形態では以下のような関数を仮定する。
【００４５】
【数９】
0003762835.tif 000007
【００４６】
上記、各定数Ｃ1 、Ｃ2 、Ｃ3 は、適宜最適な評価値が得られるように設定されるべきであるが、本実施形態においては、Ｃ1 ＝１．０、Ｃ2 ＝０．３、Ｃ3 ＝０．７を採用している。これらの定数は、その絶対値よりはむしろ相対関係が重要と考えられるので、Ｃ1 ：Ｃ2 ：Ｃ3 ＝１．０：０．３：０．７という関係であれば、上記のように絶対値を設定した場合と同様の効果が得られると考えられる。
【００４７】
なお、上記のマッチャビリティの評価値を与える関数は、極大になる場合にデータ間の関連性が存在することを示すように設定されているが、全体の符号をマイナスにして、関数が極小になる場合にデータ間の関連性が存在することを示すように設定してもよい。
【００４８】
上記以外にも、マッチャビリティを考える上で他の有望な評価要素として、部分状況Ｊ＝（ｄ、ｎ）を記述するのに必要な情報量を用いることも可能である。例えば、単純に記述するためのイベント数と必要な特徴量数を考えてｒd ｄを一定以下に保とうとするなどである。また単純に特徴量数ｄではなくて−ｒd ｌｏｇ（Ｓd ）を用いる方法なども考えられる。
【００４９】
マッチャビリティは特定の部分状況が評価値を与える上記関数（１）を極大にするか否かで判断する。この場合、今のままでは、イベント選択空間及び特徴量選択空間の全体を調べて極大になるか否かを判断しなければならない。しかし、イベント選択空間と特徴量選択空間を合わせた空間の広さは２N+D であるので、コンピュータに計算させようとしても非常に時間がかかってしまう。一般に全特徴数Ｄに対して全イベント数Ｎが大きいと考えられるので、以下に２N の広さを持つイベント選択空間の探索すべき空間を絞り込むことを考える。
【００５０】
まず、特徴量選択空間とイベント選択空間からなる空間からマッチャビリティの評価値を極大値にする特徴量選択ベクトルｄとイベント選択ベクトルｎを探索する場合、特徴量選択ベクトルｄを固定し、セグメント選択ベクトルｒd ではられるセグメント空間内で探索を行う。セグメント選択ベクトルｒd は、図３の斜線で示されているように、その中にイベントが含まれているか否かに関わらずセグメントを指定することにより部分状況を指定するものであり、後述するように、選択されたセグメント内にどのくらいのイベントがどのように含まれているかによって、その部分状況がマッチャビリティの評価値が極大となるか否かが決定される。
【００５１】
セグメント空間内での探索は、更に、２Sd通りの組合せがあるセグメント選択ベクトルｒd の決定と、ｒd によって指定された部分状況ｊ＝（ｄ、ｒd ）内におけるイベント選択ベクトルｎの探索に分解される。
【００５２】
先ず、イベントを一つも含まない空セグメントを含むセグメント選択ベクトルｒ- d によって指定される部分状況Ｊ＝（ｄ、ｒ- d ）は明らかにマッチャビリティの評価値が極大値を持つ部分状況とはならない。なぜなら、あるイベントで指定した部分状況Ｊ＝（ｄ、ｎ）に対応する全てのセグメントに一つ以上のイベントを含むような、セグメント選択ベクトルで指定される部分状況Ｊ＝（ｄ、ｒ+ d ）に比べて、同数のイベントを含み、更に空セグメントをも含む選択ベクトルｒ- d により指定される部分状況においては、選択セグメント数ｒd が大きくなるが、その他のマッチャビリティを決定する変数が同じである為、明らかにマッチャビリティ評価値が減少するからである。
【００５３】
そこで、セグメント選択ベクトルｒd に対して、イベントを一つも含まないセグメントは選択しないという条件追加して、
ｒd i ＝ｔ（ｒｕｅ）    ｉｆ  ｋd i （ｎ）＞０
ｒd i ＝ｆ（ａｌｓｅ）    その他
とする。これにより、セグメント選択ベクトルのうちイベントを全く含まないセグメントが除去される。従って、全イベントに対する一つ以上のイベントを含むセグメント数はＲd （ｎ）であるから、一つ以上のイベントを含むセグメントのみを選択したセグメント選択ベクトルｒd だけを探索範囲とするので、その組合せは２x （ｘ＝Ｒd （Ｎ））となる。これは、全部のイベントを選択した場合に少なくとも１つのイベントを含むセグメントの組合せの数だけ探索を行うことを意味する。選択特徴量が大きくなるほど、部分特徴量空間内には常に空となるセグメントが多数存在する。そのためＲd （Ｎ）≪Ｓd となるので、この段階で大幅に探索空間を削減できている。
【００５４】
更に、あるセグメント選択ベクトルｒd を特定した場合に、選択されたｉ番目のセグメントに注目すると、含まれるイベント数がｋd i （Ｎ）より少ない部分状況を指定するイベント選択ベクトルを選択すると、選択セグメント数ｒd を変化させずに、選択イベント数ｎのみを減少させるので、明らかにマッチャビリティ評価値を減少させる。つまり、全ての選択されたセグメントにおいて、それぞれのセグメントに含まれるイベントの数が全イベント選択ベクトルＮを指定した場合に含まれるイベントの数ｋd i （Ｎ）になるようなイベント選択ベクトルを指定した場合のみがパレート最適となり、それ以外のイベント選択ベクトルの探索は不要である。
【００５５】
すなわち、
ｋd i （ｎ）＝ｋd i （Ｎ）  ｉｆ  ｒd i ＝ｔｒｕｅ
ｋd i （ｎ）＝０            ｉｆ  ｒd i ＝ｆａｌｓｅ
となるような一つのイベント選択ベクトルｎについてのみ探索を行えばよいことになる。
【００５６】
以上から、特徴量選択ベクトルｄを指定した後の探索空間全体の広さは、セグメント選択ベクトルを１つ決めるとイベント選択ベクトルが１つに定まるので、１×２x ＝２x （ｘ＝Ｒd （Ｎ））通りとなる。
【００５７】
図４は、選択されたセグメントとイベントがどのように特徴量選択空間に存在しているかを模式的に図示したものである。
同図では、太線で囲まれた四角が選択されたセグメントであり、各イベントは丸で示されている。ここでは、イベントを含まないセグメントは選択されておらず、各セグメントに含まれるイベントの数は全イベント選択ベクトルＮをで部分状況を指定したときに、当該セグメントに含まれるイベントの数と同じである。
【００５８】
次に、図５に示すように、最大イベント数ベクトル（全イベントを選択した場合に各セグメントに幾つイベントが含まれるかを示すイベント数ベクトル）の各成分（あるいは要素）ｋd i （Ｎ）を値の大きい順に順序付けるインデックス配列ｑ１、ｑ２、・・・、ｑR d ( N ) を定義する。すなわち、
ｋd q1（Ｎ）≧ｋd q2（Ｎ）≧・・・・≧ｋd qRd ( N ) （Ｎ）
ここで、選択セグメント数がｒ’であるセグメント選択ベクトルｒd （ｒ’）の集合について考える。この集合に含まれるベクトルはＲd （Ｎ）個の中からｒ’個を選ぶ組合せの数だけある。集合の中に含まれるセグメント選択ベクトルの内、選択セグメント数ｒ’が一定なので、明らかに選択イベント数ｎが最も大きくなるセグメント選択ベクトルγd （ｒ’）（最大セグメント選択ベクトル）において、マッチャビリティの評価値は最大となり、パレート最適である。
【００５９】
最大セグメント選択ベクトルγd （ｒ’）は、以下に示すように可能な限り多くのイベント数ｋd i （Ｎ）を含むセグメントを集めたセグメント選択ベクトルである。
【００６０】
γd （ｒ’）＝｛ｒd i ｝：ｒd qi＝ｔｒｕｅ（ｉｆ  ｉ≦ｒ’）、ｒd qi＝ｆａｌｓｅ（ｉｆ  ｉ＞ｒ’）
すると、この時のイベント数ｎ’（ｒ’）は、以下のようになる。
【００６１】
【数１０】
0003762835.tif 000008
【００６２】
以上の議論から、特徴量選択ベクトルｄを固定後の、部分特徴量空間内でのマッチャビリティ評価値の極大値の探索方法は、選択セグメント数ｒ’を１からＲd （Ｎ）の区間で変化させた時の評価量Ｍ（ｎ’（ｒ’）、ｒ’、Ｓd 、Ｎ）の極大値を探索する処理となる。この探索により得られた極大値におけるセグメント選択ベクトルをｒd ’’とすれば、部分状況Ｊ＝（ｄ、ｒd ’’）は相互に関連性を持つデータの集まりとしての候補となる。こうして、順序付けを利用したことにより、極大値を探索する組合せはＲd （Ｎ）通りまでに削減できる。
【００６３】
図５では、最大イベント数ベクトルの各要素を並べ替えた様子を示している。
同図に示されるように、最大イベント数ベクトルの各要素は値の大きい順に並べ替えられており、ｒ’を移動させながらマッチャビリティ評価値Ｍを計算する。すると、同図のように、ｋqi（Ｎ）の値が急激に減少する所で、評価値Ｍは極大値を持つ。評価値Ｍの極大値の求めかたは、公知の技術を用いればよい。
【００６４】
次に、選択された各候補部分状況Ｊ＝（ｄ、ｒd ’’）について、全特徴量数Ｄ通りの特徴量方向の変化に対しても極大となっているか検定を行う。ここで、特徴量選択ベクトルの各要素はｔｒｕｅ／ｆａｌｓｅであるから、特徴量選択ベクトルｄにおいて、選択されていないｉ番目の特徴量を追加した場合の特徴量選択ベクトルをｄ+iとし、特徴量選択ベクトルｄにおいて選択されているｉ番目の特徴量を削除した場合の特徴量選択ベクトルをｄ-iとする。そこで、それぞれの場合についてマッチャビリティ評価を計算する方法について説明する。
（１）特徴量を追加した場合のマッチャビリティ評価
部分状況Ｊ＝（ｄ+i、ｒd ’’）におけるマッチャビリティ評価を計算するために、その引数となっている４つの変数について考える。先ず、全セグメント数は選択した特徴量のセグメント数の分増加するので、増加後のセグメント数はＳd +i＝Ｓd ・ｓi となる。イベント選択は変更しないので、選択イベント数はｎ’（ｒd ’’）のままである。全イベント数Ｎも変化しない。
【００６５】
拡大した部分特徴量空間における選択セグメント数ｒd +i’’を得るには、ｒd ’’において選択されているｊ番目のセグメント内に保持されているｋd j （Ｎ）個のイベントを、ｉ番目の特徴量のセグメントに配置した時に必要とされる選択セグメント数ｒd +ij ’’を知る必要がある。これを求めるためには若干の計算が必要となるが、これについては後述する。ｒd +ij ’’が分かるとｒd +i’’は以下の式で求められる。
【００６６】
【数１１】
0003762835.tif 000009
【００６７】
以上から、特徴量ｉを追加した部分状況Ｊ＝（ｄ+i、ｒd ’’）におけるマッチャビリティ評価値Ｍ+iは次式で表される。
Ｍ+i（ｎ’（ｒd ’’）、ｒd ’’、Ｓd 、Ｎ）＝Ｍ（ｎ’（ｒd ’’）、ｒd +i’’、Ｓd +i、Ｎ）
（２）特徴量を削除した場合のマッチャビリティ評価
部分状況Ｊ＝（ｄ-i、ｒd ’’）におけるマッチャビリティ評価を計算するために、４つの変数について検討する。全セグメント数は削除した特徴量のセグメント数減少してＳd -i＝Ｓd ／ｓi となる。イベント選択は変更しないので選択イベント数はｎ’（ｒd ’’）のままである。全イベント数Ｎも変化しない。
【００６８】
縮小した部分特徴量空間における選択セグメント数ｒd -i’’を得るには、その空間での縮小したセグメント選択ベクトルを以下のように定義する。
【００６９】
【数１２】
0003762835.tif 000010
【００７０】
セグメント選択ベクトルｒd ’’の各要素は部分特徴量空間中の一つのセグメントを占有しており、これに対して（３）式で表した縮小セグメント選択ベクトルはさらにその部分空間となっているので、ベクトルｒd ’’からベクトルｒd -i’’へ投射することが出来る。縮小されたセグメント選択ベクトルの各要素においては、投射されたベクトル要素のうちに一つでもｔｒｕｅのものがあれば、ｔｒｕｅに設定する。
【００７１】
そして、この縮小されたセグメント選択ベクトルにおける選択セグメント数ｒd -i’’は以下の式で与えられる。
【００７２】
【数１３】
0003762835.tif 000011
【００７３】
以上から、特徴量ｉを削除した部分状況Ｊ＝（ｄ-i、ｒd ’’）におけるマッチャビリティ評価Ｍ-iは次式で表される。
Ｍ-i（ｎ’（ｒd ’’）、ｒd ’’、Ｓd 、Ｎ）＝Ｍ（ｎ’（ｒd ’’）、ｒd -i’’、Ｓd -i、Ｎ）
こうして得られた、選択特徴量を微小変化させた場合のマッチャビリティ評価Ｍ+i及びＭ-iのいずれかがＭよりも大きければ、部分状況Ｊ＝（ｄ、ｒd ’’）は極大値ではないので、抽出すべき部分状況ではないことになる。逆に、極大値であった場合には当該部分状況は抽出すべき部分状況となる。
【００７４】
図６は、特徴量ｉが追加あるいは削除された場合に、選択セグメントがどのように変化するかを示す概念図である。
同図では、変化しない特徴量として特徴量ｊを設定している。最初、特徴量ｉが選択されておらず、特徴量ｊ方向にのみセグメントが設定されていたとしたときの選択されたセグメントが斜線で示されている。丸で記載されているのは各イベントである。特徴量ｉが追加されると、特徴量ｊ方向のセグメントにそれぞれ収納されていたイベントは、特徴量ｉ方向に分散することになる。これは、特徴量ｊ方向のみを考えていた場合には、特徴量ｉの差異によるイベント毎の違いが出ないので、同じセグメントに配置されていたものが、特徴量ｉを追加したことによって、各イベントが特徴量ｉ方向に配分されるためである。従って、特徴量ｉを追加した場合には、このようなイベントの分散を考慮して、新しい選択セグメント数を数えなくてはならない。一方、特徴量ｉが削除される場合には、特徴量ｉ方向に分散されていた各イベントも、特徴量ｊ方向の同じセグメントに含まれる場合には、全てそのセグメント内に集められる。従って、縮小されたセグメント選択ベクトルを生成する場合には、特徴量ｉ方向に配置されているセグメントを削除し、他の特徴量方向のセグメントで同じセグメントを選択している複数のセグメント選択ベクトルがある場合には、これらをまとめて１つの縮小イベント選択ベクトルとする。この縮小セグメント選択ベクトルを使って、縮小後の選択セグメント数を計数すればよい。
【００７５】
以上で、特徴量選択ベクトルｄを固定した場合にデータ間に関連性のある部分状況を抽出する方法を示した。全体の探索は、更に、特徴量選択空間の２D の組合せに対して行うことにより、複数の部分状況が抽出される。
【００７６】
図７は、本実施形態の処理を行うプログラムを実行するための装置のハードウェア構成を示した図である。
本ハードウェア構成においては、プログラムの命令を実行するＣＰＵ７０がバス７８に接続されており、他の装置とデータを交換しながら処理を進めるものである。バス７１には、ＲＯＭ７１、ＲＡＭ７２、通信インタフェース７３、記憶装置７４、記録媒体読み取り装置７５、及び入出力装置７７が接続されている。
【００７７】
ＲＯＭ７１には、同図の装置をＣＰＵ７０の制御の下に動作可能とさせるための基本プログラムであるＯＳ等が記録されている。ＣＰＵ７０は、同図の装置に電源が入れられるとＲＯＭ７１からＯＳを読み取って入出力装置７７からの命令の入力や、入出力装置７７へのデータの出力を可能とするものである。
【００７８】
入出力装置７７は、キーボードやマウス等の入力デバイスや、ディスプレイモニタあるいはプリンタ等の出力デバイスを含むものであり、本発明の方法を利用して処理されるべきデータを入力したり、処理されたデータを出力したりするものである。
【００７９】
バス７８に接続されているＲＡＭ７２は、ＣＰＵ７０で実行されるべきプログラムを実行可能なように展開し、記憶しておくものである。ＣＰＵ７０は、ＲＡＭ７２に記憶されたプログラムを読み込んでは、データの処理を行い処理結果をＲＡＭに一旦記憶させるようにする。ＲＡＭ７２には、これから処理されるべきデータも同様に記憶される。ＲＡＭ７２に一旦記憶された処理済のデータは、入出力装置７７を介してユーザに提示される。
【００８０】
本発明の処理を行うプログラムは、ハードディスクなどの記憶装置７４あるいは可搬記録媒体７６に記録されており、記憶装置７４から、あるいは、可搬記録媒体７６を読み取る記録媒体読み取り装置７５からＲＡＭ７２に送られ、ＣＰＵ７０が実行可能な状態に設定される。可搬記録媒体７６は、例えば、ＣＤ−ＲＯＭやフロッピーディスク等であり、記録媒体読み取り装置７５は、ＣＤ−ＲＯＭドライブあるいは、フロッピーディスクドライブ等である。
【００８１】
なお、同図の装置を本発明の処理専用機として使用する場合には、当該プログラムをＲＯＭ７１に予め記憶させておいてもよいが、この場合には、プログラムに不都合があった場合や、処理の都合上プログラムを手直しする必要がある場合は、ＲＯＭ７１が書き換えられないために、対応することが出来ない。
【００８２】
また、バス７８には通信インタフェース７３が接続されており通信回線を介して、データやプログラムの授受を行えるようになっている。通信インタフェース７３を使って、情報提供者７９から本発明のプログラムをダウンロードし、記憶装置７４や可搬記録媒体７６に記録してから、ＲＡＭ７２に展開してプログラムを使用するという利用形態も可能である。また、情報提供者７９から処理すべきデータを受け取り、処理後、処理済みのデータを通信インタフェース７３を介して適当な通信相手に送信することも考えられる。また、情報提供者７９との間にＬＡＮ等を構築しておき、本発明の処理を行うプログラムをネットワーク上で実行させることも可能である。
【００８３】
図８は、本発明の処理を実行するためのプログラムを構成する各モジュール間の関係を示した図である。
同図で示されたプログラムの構成は、オブジェクト指向言語で記述されたプログラムのモジュール間の関係であって、モジュール間を接続する線は、その線で結ばれたモジュール間に上方のモジュールから下方のモジュールを利用するという関係が成り立っていることを示す。また、モジュールに引き出し線で記載されているのは、当該モジュールがどのような変数を持っているかを示している。
【００８４】
同図のｖｅｃｔｏｒモジュールは、データの形式としてベクトル形式のデータの雛形を形成するモジュールであり、データ構造の基本形態を定義するモジュールであり、要素の数の変数値を持つ。
【００８５】
ｅｖｅｎｔモジュールは、データ形式としてｖｅｃｔｏｒモジュールで定義されたベクトル形式のデータを継承しており、１つのイベントを表現するのに使用されるモジュールである。また、特徴量毎のセグメント値の配列や並べ替え等に用いる番号等を変数として持っている。
【００８６】
ｎｓｅｇｍｅｎｔｓＩｎＦｅａｔｕｒｅモジュールは、特徴量毎のセグメント数を表すためのクラスであり、特徴量の性質に応じてセグメント化を行うためにユーザは、このクラスまたは、このクラスを継承したクラスを利用して特徴量毎にセグメント数の設定を行う。変数としてはセグメント数を有している。
【００８７】
ｆｅａｔｕｒｅＯｆＤｏｕｂｌｅモジュールは、ｎｓｅｇｍｅｎｔｓＩｎＦｅａｔｕｒｅモジュールで定義されたクラスを継承し、ユーザに特徴量の最小値、最大値、刻み幅を入力させて、特徴量空間をセグメントに分割するためのパラメータを設定するモジュールである。
【００８８】
ｆｕｌｌＦｅａｔｕｒｅＳｐａｃｅモジュールは、特徴量空間全体に関する情報を持つクラスであり、全特徴量数を変数に持ち、特徴量に関する情報を配列として持っている。
【００８９】
ｆｕｌｌＦｅａｔｕｒｅＳｐａｃｅモジュールは、ｍａｔｃｈａｂｉｌｉｔｙモジュールが参照するクラスメンバであり、ｍａｔｃｈａｂｉｌｉｔｙモジュールは、ｆｕｌｌＦｅａｔｕｒｅＳｐａｃｅモジュールの保持する特徴量に関する情報を使って、マッチャビリティの計算を行うための処理を行う。
【００９０】
ｐａｒｔｉａｌＦｅａｔｕｒｅＳｐａｃｅモジュールは、ｆｕｌｌＦｅａｔｕｒｅＳｐａｃｅモジュールをクラスメンバとして参照し、部分特徴量空間の情報を持つクラスであり、特徴量選択ベクトルがその実体である。変数としては、実体である特徴量選択ベクトルの他に、選択された（有効な）特徴量の数、選択されていない（無効な）特徴量の数、及び有効な特徴量空間全体のセグメント数等を有している。
【００９１】
ｓｅｇｍｅｎｔＥｌｅｍｅｎｔモジュールは、セグメントの要素となるイベントのベクトルを保持するモジュールであり、選択された部分特徴量空間への参照や、自身の部分特徴量空間内のでの位置をイベントのクラスを利用して保持していると共に、選択セグメントを内部に含むイベントの数（サイズ）によって順序付けた順位や、特定のセグメント数ｒ’を設定した場合の累積イベント数、及びマッチャビリティによる評価量を変数として保持している。
【００９２】
ｓｅｇｍｅｎｔＶｏｌｕｍｅモジュールは、ｓｅｇｍｅｎｔＥｌｅｍｅｎｔモジュールの一次元配列として構成されるセグメント空間の実体を持ち、指定された特徴量選択ベクトルに対して、セグメント選択空間での処理を行う。このモジュールは、ｍａｔｃｈａｂｉｌｉｔｙモジュールから呼び出され、選択された部分空間を指定するｐａｒｔｉａｌＦｅａｔｕｒｅＳｐａｃｅへの参照や、当該処理に必要なために動的に生成されたセグメントインデクシングするハッシュテーブルや、セグメントに含まれるイベントの数（サイズ）順のインデックス、イベント数の総計、局所解（特徴量ベクトルを固定した場合の極大値を表すイベントベクトル）のインデックス等を変数として持つ。
【００９３】
ｓｉｔｕａｔｉｏｎモジュールは、ｖｅｃｔｏｒモジュールのクラスを継承し、その要素としてイベントを持つクラスである。その他に、選択されたセグメントの数、セグメントのサイズの合計、累積結果からのマッチャビリティの評価値を変数に持つ。
【００９４】
同図には図示されていないが、これらモジュールの呼び出し関係や、補足的な処理を行うためのメインルーチン設けられており、このメインルーチンによって上記各モジュールは呼び出される。上記した各モジュールを使って、メインルーチンが処理を実行する際の処理の流れを以下に説明する。
【００９５】
図９は、本実施形態のプログラムが実行する処理の流れを示す図である。
先ず、処理を開始すると、メインルーチンが起動され、ステップＳ１で、全体状況Ｊ＝（Ｄ、Ｎ）へ必要な値を入力する。このとき、データ形式は、図８のｓｉｔｕａｔｉｏｎモジュールが提供するデータ構造を利用し、特徴量選択ベクトルをＤ、イベント選択ベクトルをＮとして全体状況を表すデータを生成する。
【００９６】
次に、メインルーチンは、ステップＳ２で状況リストＡをクリアする。状況リストＡは、選択されたマッチャブル状況（相互に関連性のあると認められた特徴量とイベントの組合せ）のリストであり、データ形式は、やはり、図８のｓｉｔｕａｔｉｏｎモジュールの提供するデータ構造を用いてマッチャブル状況を列挙するリストである。
【００９７】
ステップＳ２までの処理が終わると、メインルーチンからｍａｔｃｈａｂｉｌｉｔｙモジュールが呼び出され、ステップＳ３で全ての特徴量選択ベクトルｄを生成したか否かが判断される。プログラムが起動された直後では、まだ特徴量選択ベクトルを決定してマッチャビリティの評価を行っていないので、ステップＳ４に進む。ステップＳ３では、特徴量選択ベクトルｄを生成し、ｓｅｇｍｅｎｔＶｏｌｕｍｅモジュールを呼び出し、ステップＳ５に進む。
【００９８】
ステップＳ５では、状況リストＢをクリアする。状況リストＢは、特定の部分特徴量空間で選択された状況のリストである。実装上は、図５で示した各状況毎のｒ’の値を要素とするベクトルとして保持しており、図８のｖｅｃｔｏｒモジュールが提供するデータ構造の雛形を継承して形成される。そして、ステップＳ６で部分特徴量空間のセグメントをイベント数ｋd i （Ｎ）により順序付ける。各特徴量空間のセグメント数は、ｎｓｅｇｍｅｎｔｓＩｎＦｅａｔｕｒｅモジュールを継承したクラスの配列として持つｆｕｌｌＦｅａｔｕｒｅＳｐａｃｅモジュールによって、保持されている。更に、ステップＳ４で生成された特徴量選択ベクトルがｐａｒｔｉａｌＦｅａｔｕｒｅＳｐａｃｅモジュールに入力されている。ｓｅｇｍｅｎｔＥｌｅｍｅｎｔモジュールは、ｐａｒｔｉａｌＦｅａｔｕｒｅＳｐａｃｅモジュールの情報を参照し、ｅｖｅｎｔモジュールの情報を持つ。ｓｅｇｍｅｎｔＶｏｌｕｍｅモジュールは、ｓｅｇｍｅｎｔＥｌｅｍｅｎｔの配列を持ち、各セグメント毎に含まれているイベントの数（セグメントのサイズ）を計数し、サイズの大きい順に順序付ける。
【００９９】
次に、ステップＳ７で、図５に示すｒ’を設定し、このｒ’に対応するイベント数ｎ’（ｒ’）とマッチャビリティ評価値Ｍを計算する。そして、ステップＳ８でセグメント選択数ｒ’の変化に応じて評価値Ｍの極大となる状況Ｘ（Ｘは状況Ｊ＝（ｄ、ｒd ’’）である）を選択しリストＢに追加する。すなわち、ｒ’をベクトルのデータ構造を持ったリストＢに登録する。
【０１００】
図５までの説明で述べたように、特徴量選択ベクトルを固定した場合に評価値を極大とするセグメントの選びかた及びイベントの選びかたは、全イベントをセグメント空間に配置し、各セグメントを内部に含まれるイベントの数の大きい順に並べて、図５のｒ’を変化させたときに評価値を極大とするｒ’を見つけることに帰結されている。これによれば、図５のγ’a より左側に並べられているセグメントが選択するセグメントである。セグメントは、サイズの大きい順に並んでいるので、イベントの分布の仕方によって、どのセグメントが選ばれるかが決まる。一方、イベントの分布の仕方が変わらなければ、どのセグメントが選択されるか、及び、どのイベントが選択されるかはｒ’を決定することにより一意に決定される。なお、ｒ’は１つとは限らない。
【０１０１】
次に、ステップＳ９に進んで、状況リストＢ内の全状況をテストしたかが判断される。ここでいうテストとは、特徴量選択ベクトルを変化させても状況リストＢに含まれている状況が評価値を極大にするかというテストのことである。テストが全ての状況に対して行われていない場合には、ステップＳ１０で、状況リストＢから新たな状況Ｘを選択する。この時の評価値はＭX である。ステップＳ１１で、特徴量選択ベクトルｄの全ての特徴量を変化させたかが判断される。これは、特徴量選択ベクトルの要素すべてのｔｒｕｅとｆａｌｓｅを入れ換えて評価値の増減をテストしたかいなかを判断するものである。判断がＮＯの場合には、ステップＳ１２に進む。
【０１０２】
ステップＳ１２では、一つの特徴量ｉを変化させた特徴量選択ベクトルを生成し、ステップＳ１３に進む。ステップＳ１３では、特徴量ｉの変化がｔｒｕｅをｆａｌｓｅに変える「削減」か否かを判断し、削減の場合には、ステップＳ１４に進み、削減でない場合にはステップＳ１５に進む。ステップＳ１４では、特徴量削除時の評価値ＭX -iを計算し、ステップＳ１５では、特徴量追加時の評価値ＭX +iを計算する。特徴量追加時に評価値の計算に必要となる選択セグメント数ｒd ’’の計算方法は後述する。
【０１０３】
ステップＳ１４あるいはステップＳ１５で、それぞれの場合の評価量を算出すると、ステップＳ１６で、ステップＳ１４、Ｓ１５で算出された評価量が、特徴量選択ベクトルを変化させる前の評価値より大きいか否かが判断される。大きいと判断された場合には、当該状況Ｘはマッチャブル状況の候補であり続けるので、ステップＳ１１に戻って、特徴量選択ベクトルｄの全ての特徴量を変化させおわるまで処理を繰り返す。全ての特徴量を変化させおわった場合には、現在調べていた状況Ｘはマッチャブル状況であると判断されるので、ステップＳ９に戻って状況リストＢ内の全状況をテストしたか判断し、テストし終わっていない場合には、ステップＳ１０以下の処理を行い、テストし終わった場合には、ステップＳ１８で状況リストＡに状況リストＢを追加してステップＳ３に戻る（ｍａｔｃｈａｂｉｌｉｔｙモジュールを呼び出す）。ここで、状況リストＡは、ｓｉｔｕａｔｉｏｎモジュールの配列であり、特徴量とイベントを列挙するが、状況リストＢは選択セグメント数ｒd ’’のみを記憶しているので、ここでいくらかの処理が必要になるが、この処理については後述する。
【０１０４】
ステップＳ１６で、ステップＳ１４またはステップＳ１５で算出された評価量が、特徴量選択ベクトルを変化させる前の評価量より大きいと判断された場合には、当該状況Ｘは、マッチャビリティ状況とはなり得ないので、ステップＳ１７で状況ＸをリストＢから削除し、ステップＳ９に進む。こうして、状況リストＢ内の全ての状況について特徴量選択ベクトルを変化させてマッチャビリティ状況であるか否かをテストした後、状況リストＢに残った状況のみを状況リストＡに追加して（ステップＳ１８）、ステップＳ３に戻る。
【０１０５】
ステップＳ３では、全ての特徴量ベクトルについて以上に説明した処理を行ったか否かが判断され、行われていない場合にはステップＳ４以降の前述した処理を行う。ステップＳ３で全ての特徴量選択ベクトルについて処理が終わったと判断された場合には、ステップＳ１９に進んで、状況リストＡを処理結果としてディスプレイに表示あるいはプリントアウトして処理を終了する。
【０１０６】
図１０は、図９のステップＳ１５において必要とされる処理を説明するフローチャートである。
特徴量選択ベクトルを変化させて評価値を得る場合には、新たに選択セグメント数を計算する必要がある。特徴量選択ベクトルの要素から特徴量を削除する（ｔｒｕｅとなっているのをｆａｌｓｅにする）場合は、セグメント選択ベクトルは前述したように容易に得られるので問題はないが、特徴量を追加する（ｆａｌｓｅとなっているのをｔｒｕｅにする）場合は、特徴量空間が広がるので、イベントの分布が広がり、どのセグメントを選択するかを決定しなければいけない。このための処理を示したのが、図１０である。
【０１０７】
先ず、ステップＳ２０で、特徴量追加後の選択セグメント数を設定するｒd +iを“０”に設定する。次に、ステップＳ２１で特徴量選択空間を拡張する前に選択されているｒd 個のセグメントから全てのセグメントを選択したか否かが判断される。全てのセグメントについて処理が終わっていない場合には、ステップＳ２２に進んで、１つのセグメントｊを選択する。ステップＳ２３で、拡張する特徴量方向に生成されるセグメントのためのセグメントバッファを確保する。ステップＳ２４で、ｊ内の全てのイベントを拡張された特徴量方向に展開したか否かが判断される。処理が全て済んでいない場合には、ステップＳ２５で、イベントを一つ選択し、選択したイベントを拡張セグメント上に展開（配置）する（ステップＳ２６）。ステップＳ２４に戻って、セグメントｊ内の全てのイベントについて、このような展開処理を行い、拡張されたセグメントにイベントを配置していく。
【０１０８】
セグメントｊ内の全てのイベントを展開し終わると、ステップＳ２７で、イベントが存在する拡張セグメント（特徴量空間を特徴量ｉ方向に拡張したときに追加されたセグメント）の数ｒd +ij ’’を数える。そして、ステップＳ２８で選択セグメント数ｒd +iにステップＳ２７で得られた値を加算する。そして、ステップＳ２１に戻って、選択されているｒd 個のセグメント全てについて処理を繰り返し、全てのセグメントについて処理しおわったら処理を終了する。ここで、ステップＳ２２で選択されているセグメントを選択し、ステップＳ２８で加算していく処理は、前出の式（２）を実行していることに相当する。
【０１０９】
図１１は、図９のステップＳ１８の詳細を説明する図である。
先ず、ステップＳ３０で、状況リストＢ内の全ての状況を処理したか否かが判断される。処理の始め、あるいは処理の途中では、ステップＳ３１に進む。ステップＳ３１では、状況リストＢから新たな状況Ｘを選択する。次に、ステップＳ３２で、状況Ｘを格納するためのバッファＲを生成する。このバッファは、ｓｉｔｕａｔｉｏｎモジュールのクラスのインスタンスである。ステップＳ３３で、状況Ｘの評価値Ｍや、選択セグメント数ｒd 等をバッファＲに保存する。
【０１１０】
ステップＳ３４で、状況Ｘ内のすべてのセグメントを処理したか否かが判断され、処理の最初、あるいは処理途中では、ステップＳ３５に進む。ステップＳ３５では、状況Ｘから１つのセグメントを選択し、ステップＳ３６で選択されたセグメント内のすべてのイベントをバッファＲに追加したか否かが判断される。処理の最初、あるいは処理途中では、ステップＳ３７に進み、イベントを選択して、バッファＲに追加する。ステップＳ３６に進み、選択されたセグメント内の全てのイベントをバッファＲに追加し終わると、ステップＳ３４に戻り、状況Ｘ内のすべてのセグメントを処理したか否かが判断される。処理し終えていない場合には、ステップＳ３５以下の処理を繰り返し行い、全てのセグメントについて処理が終わると、ステップＳ３０に戻って、状況リストＢ内のすべての状況について上記の処理が終わるまで処理を繰り返す。ステップＳ３０で、状況リストＢ内のすべての状況について処理が終わると、ステップＳ３８に進み、バッファＲを出力用の状況リストＡに追加して、図９のステップＳ１８の処理を終了する。
図１２、及び図１３は、本実施形態の技術をテストデータについて実行した結果を示す図である。
【０１１１】
入力したデータは、図１２の左側に示されているように、特徴量としてｘ、ｙ、ｚの３つをとり、この３次元空間上にイベントを配置した。イベントは、ｘ＋ｚ＝１の平面上に１１×１１個を０．１刻みの等間隔で、また、ｙ＋ｚ＝１の平面上に１１×１１個をやはり０．１刻みの等間隔で配置した。
【０１１２】
処理結果は図１３に示す通りで、データ間に関連性のある状況として、３つの状況が抽出された。Ｍ（マッチャブル）状況１は、図１２の（１）で示される状況を示しており、Ｍ状況２は、図１２の（２）で示される状況を示しており、Ｍ状況３は、図１２の（３）で示される状況を示している。
【０１１３】
このように、データ間に明確な関連性のあるテストデータについて本実施形態の処理を行ったが、始めにイベントを配置した２つの平面を抽出することに成功した上に、２つの平面の交線を抽出することにも成功している。
【０１１４】
このように、本実施形態の処理を使えば、相互に関連性のあるデータを抽出することが出来ることが示された。
【０１１５】
【発明の効果】
本発明によれば、盲目的に収集されたデータの中から、相互に関係のあるデータを、データの有する特徴量の種類と、関連性を示しているイベント（レコード）とを組み合わせた部分集合として抽出することが出来、自動的に問題の分割作業をすることが出来る。
【０１１６】
従って、多変量解析やデータマイニング、あるいはパターン認識など多量のデータから何らかの規則性あるいは特徴を抽出する処理の前処理としても非常に有効である。
【図面の簡単な説明】
【図１】本発明の処理対象となるデータの例を示す図である。
【図２】全体状況内の部分状況の概念を示す図である。
【図３】特徴量空間をセグメント化したセグメント空間とセグメント選択ベクトルの概念を示す図である。
【図４】セグメント空間内でのセグメントの選択と各セグメントに含まれるイベントの概念を示した図である。
【図５】マッチャビリティ評価値の極大値を探索する方法を説明する図である。
【図６】特徴量の追加・削除によって生じるセグメントの選択状態の変化の概念を示す図である。
【図７】本発明を実施するに当たり必要となる装置のハードウェア構成の一例を示す図である。
【図８】本発明を実施する場合のソフトウェアの構成の一実施形態を示す図である。
【図９】本実施形態のソフトウェアが実行する処理を説明するフローチャートである。
【図１０】特徴量を追加した場合の選択セグメント数を計数する処理を説明するフローチャートである。
【図１１】本実施形態のソフトウェアの処理によって得られた情報から出力用のデータリストを生成する処理を説明するフローチャートである。
【図１２】本実施形態の動作テスト結果を示す図（その１）である。
【図１３】本実施形態の動作テスト結果を示す図（その２）である。
【符号の説明】
７０      ＣＰＵ
７１      ＲＯＭ
７２      ＲＡＭ
７３      通信インタフェース
７４      記憶装置
７５      記録媒体読み取り装置
７６      可搬記録媒体
７７      入出力装置
７８      バス
７９      情報提供者
【図１】
0003762835.tif 000015
【図２】
0003762835.tif 000016
【図３】
0003762835.tif 000017
【図４】
0003762835.tif 000018
【図５】
0003762835.tif 000019
【図６】
0003762835.tif 000020
【図７】
0003762835.tif 000021
【図８】
0003762835.tif 000022
【図９】
0003762835.tif 000023
【図１０】
0003762835.tif 000024
【図１１】
0003762835.tif 000025
【図１２】
0003762835.tif 000026
【図１３】
0003762835.tif 000027