(57)【要約】【課題】複数の事例、及び、複数の事例のそれぞれが複数の属性の値を持つデータから、事例間類似度及び属性間類似度を統一的な基準で、かつ効率的に計算することができる類似度計算装置を提供する。【解決手段】実施形態の類似度計算装置は、分類器生成部を有する。分類器生成部は、複数の事例と、複数の事例のそれぞれに対応付けられた複数の属性及び正例と負例とを含むクラスとの組から構成される入力データから、クラスに含まれる正例の割合と、所定の属性に含まれる所定のカテゴリデータの正例の割合とに基づいて、カテゴリデータから分類スコアを出力する分類器を属性毎に生成する。【選択図】図３
2019008640.tif 000002
【特許請求の範囲】
【請求項１】
複数の事例と、前記複数の事例のそれぞれに対応付けられた複数の属性及び正例と負例とを含むクラスとの組から構成される入力データから、前記クラスに含まれる前記正例の割合と、所定の属性に含まれる所定のカテゴリデータの前記正例の割合とに基づいて、前記カテゴリデータから分類スコアを出力する分類器を前記属性毎に生成する分類器生成部を有することを特徴とする類似度計算装置。
【請求項２】
前記分類器によって前記入力データに基づいて前記分類スコアを出力し、分類スコア行列を生成する評価部を有することを特徴とする請求項１に記載の類似度計算装置。
【請求項３】
前記分類スコア行列から各事例に対応付けられた各属性の前記分類スコアに基づいて、事例間類似度を算出する事例間類似度算出部を有することを特徴とする請求項２に記載の類似度計算装置。
【請求項４】
前記分類スコア行列から各属性に対応付けられた各事例の前記分類スコアに基づいて、属性間類似度を算出する属性間類似度算出部を有することを特徴とする請求項２又は３に記載の類似度計算装置。
【請求項５】
分類器生成部が生成する分類器は、前記クラスに含まれる前記正例の割合が、前記所定の属性に含まれる前記所定のカテゴリデータの前記正例の割合より小さい場合、正の数値を出力し、前記クラスに含まれる前記正例の割合が、前記所定の属性に含まれる前記所定のカテゴリデータの前記正例の割合より大きい場合、負の数値を出力し、前記クラスに含まれる前記正例の割合が、前記所定の属性に含まれる前記所定のカテゴリデータの前記正例の割合と等しい場合、０を出力することを特徴とする請求項１に記載の類似度計算装置。
【請求項６】
前記分類器生成部が生成する前記分類器は、以下の式を満たすことを特徴とする請求項５に記載の類似度計算装置。
ｌｏｇ１０Ｐ（ｉ，ｊ）−ｌｏｇ１０Ｐｔ
式中のＰｔは全事例中の正例の割合であり、Ｐ（ｉ，ｊ）は所定の属性ｉに含まれる所定のカテゴリデータｊの正例の割合である。
【請求項７】
前記事例間類似度算出部は、前記分類スコア行列から各事例に対応する行ベクトルを生成し、各事例に対応する行ベクトルの類似度が高い程、値が小さくなる距離を求めることで、前記事例間類似度を算出することを特徴とする請求項３に記載の類似度計算装置。
【請求項８】
前記属性間類似度算出部は、前記分類スコア行列から各属性に対応する列ベクトルを生成し、各属性に対応する列ベクトルの類似度が高い程、値が小さくなる距離を求めることで、前記属性間類似度を算出することを特徴とする請求項４に記載の類似度計算装置。
【請求項９】
複数の事例と、前記複数の事例のそれぞれに対応付けられた複数の属性及びクラスとの組から構成される入力データから、全事例中の前記クラスの正例の割合と、任意の属性に含まれる任意のカテゴリデータの正例の割合とに基づいて、前記カテゴリデータから分類スコアを出力する分類器を前記属性毎に生成するステップを有することを特徴とする類似度計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実施の形態は、類似度計算装置及び類似度計算方法に関する。
【背景技術】
【０００２】
従来、複数の事例、及び、複数の事例のそれぞれが複数の属性の値を持つデータから、事例間類似度、及び、属性間類似度を計算する類似度計算装置が提案されている。類似度計算装置では、全ての属性が数値データであり、かつ、各属性の分布の極端な偏りがない場合、古典的統計学による処理が可能であり、それぞれ行ベクトル間の相関係数、及び、列ベクトル間の相関係数を求めることで、事例間の類似度、及び、属性間の類似度を算出することができる。
【０００３】
数値データと離散的なカテゴリデータとが混在したより一般的なデータに対する類似度計算方法としては、機械学習を応用した方法も検討されている。特許文献１の技術では、互いに相関がある属性の組をもつデータに対して、条件部と結論部が同時に生起する頻度を相関ルール分析によって求め、その結果に基づいて類似度を補正することにより、ユーザの直感に沿うような類似事例を出力する。
【０００４】
しかしながら、事例間類似度の計算においては、属性の重み、及び、属性値間類似度を、予めユーザが設定しておく必要がある。
【０００５】
また、特許文献２の技術では、事例の部分集合をランダム抽出し、決定木等で繰り返し分類し、事例間の分類結果のクラスが同じか否かをカウントすることによって、事例間類似度を計算する。しかしながら、多数の反復処理を必要とするため計算効率が悪く、また、ランダム抽出の結果によって、事例間類似度の算出結果が大きく変化する可能性がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１４９６９７号公報
【特許文献２】特許第５３９１６３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
実施形態の課題は、複数の事例、及び、複数の事例のそれぞれが複数の属性の値を持つデータから、事例間類似度及び属性間類似度を統一的な基準で、かつ効率的に計算することができる類似度計算装置及び類似度計算方法を提供することを目的とすることである。
【課題を解決するための手段】
【０００８】
実施形態の類似度計算装置は、分類器生成部を有する。分類器生成部は、複数の事例と、複数の事例のそれぞれに対応付けられた複数の属性及び正例と負例とを含むクラスとの組から構成される入力データから、クラスに含まれる正例の割合と、所定の属性に含まれる所定のカテゴリデータの正例の割合とに基づいて、カテゴリデータから分類スコアを出力する分類器を属性毎に生成する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る類似度計算システムの構成の一例を示す図である。
【図２】類似度計算装置の構成の一例を示す図である。
【図３】類似度計算装置に構成される類似度計算処理部の一例を示す図である。
【図４】入力データ４１の一例を示す図である。
【図５】分類器生成部３２の処理の一例を示すフローチャートである。
【図６】分類器生成部３２の処理により生成される分類器４２の一例を示す図である。
【図７】評価部３３の処理の一例を示すフローチャートである。
【図８】評価部３３の処理により生成される分類スコア行列４３の一例を示す図である。
【図９】事例間類似度算出部３４の処理の一例を示すフローチャートである。
【図１０】事例間類似度算出部３４の処理により生成される事例間類似度行列４４の一例を示す図である。
【図１１】属性間類似度算出部３５の処理の一例を示すフローチャートである。
【図１２】属性間類似度算出部３５の処理により生成される属性間類似度行列４５の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施形態について詳細に説明する。  
【００１１】
図１は、実施形態に係る類似度計算システムの構成の一例を示す図であり、図２は、類似度計算装置の構成の一例を示す図であり、図３は、類似度計算装置に構成される類似度計算処理部の一例を示す図である。
【００１２】
図１に示すように、類似度計算システム１は、ユーザにより操作されるパーソナルコンピュータ等である類似度計算装置１１と、ネットワークＮＷを介して類似度計算装置１１に接続されるデータベースサーバ１２とを有して構成されている。
【００１３】
図２に示すように、類似度計算装置１１は、制御部２１と、ＲＯＭ２２と、ＲＡＭ２３と、入力デバイス２４と、出力デバイス２５と、通信インターフェース（以下、通信ＩＦという）２６と、記憶媒体着脱部２７と、バス２８とを有して構成されている。制御部２１、ＲＯＭ２２、ＲＡＭ２３、入力デバイス２４、出力デバイス２５、通信ＩＦ２６、及び、記憶媒体着脱部２７は、互いにバス２８を介して接続されている。
【００１４】
ＲＯＭ２２には、データの類似度を計算するための類似度計算プログラムが記憶されている。制御部２１は、ＲＯＭ２２に記憶された類似度計算プログラムを読み出し、ＲＡＭ２３上に展開して実行する。これにより、後述する図３に示す類似度計算処理部３１が構成されることになる。
【００１５】
入力デバイス２４は、ユーザの操作に応じた情報及び指示等を入力することができるように構成されている。具体的には、入力デバイス２４は、例えば、キーボード、マウス及びタッチパネルのうちの少なくとも１つを具備して構成されている。
【００１６】
出力デバイス２５は、制御部２１の処理等に応じて生成された情報を外部へ出力することができるように構成されている。具体的には、出力デバイス２５は、例えば、ディスプレイまたはプリンタを具備して構成されている。
【００１７】
通信ＩＦ２６は、ネットワークＮＷを介してデータベースサーバ１２との間でデータ等の送受信を行うことが可能なデバイスにより構成されている。類似度計算装置１１の通信ＩＦ２６には、データベースサーバ１２からネットワークＮＷを介して入力データ４１（図３参照）が入力されるように構成されている。
【００１８】
記憶媒体着脱部２７は、メモリカードまたはＵＳＢメモリ等の記憶媒体が着脱可能に構成されている。なお、入力データ４１（図３参照）は、記憶媒体着脱部２７に装着された記憶媒体から入力されるものであってもよい。
【００１９】
図３に示すように、類似度計算処理部３１は、分類器生成部３２と、評価部３３と、事例間類似度算出部３４と、属性間類似度算出部３５とを有して構成されている。
【００２０】
分類器生成部３２は、入力データ４１から属性毎に尤度に基づく数値を返す分類器４２を生成する。分類器生成部３２は、生成した分類器４２を評価部３３に出力する。より具体的には、分類器生成部３２は、複数の事例Ｘ１〜Ｘ１０と、複数の事例のそれぞれに対応付けられた複数の属性Ｙ１〜Ｙ３及び正例と負例とを含むクラスとの組から構成される入力データ４１から、クラスに含まれる正例の割合と、所定の属性に含まれる所定のカテゴリデータの正例の割合とに基づいて、カテゴリデータから分類スコアを出力する分類器Ｚ１〜Ｚ３を属性Ｙ１〜Ｙ３毎に生成する。
【００２１】
評価部３３は、分類器４２によって入力データ４１に基づいて分類スコアを出力し、分類スコア行列４３を生成する。すなわち、評価部３３は、入力データ４１を分類器４２により処理して分類スコア行列４３を生成する。評価部３３は、生成した分類スコア行列４３を事例間類似度算出部３４及び属性間類似度算出部３５に出力する。
【００２２】
事例間類似度算出部３４は、分類スコア行列４３から各事例Ｘ１〜Ｘ１０に対応付けられた各属性Ｙ１〜Ｙ３の分類スコアに基づいて、事例間類似度行列４４を生成する。
【００２３】
属性間類似度算出部３５は、分類スコア行列４３から各属性Ｙ１〜Ｙ３に対応付けられた各事例Ｘ１〜Ｘ１０の分類スコアに基づいて、属性間類似度行列４５を生成する。
【００２４】
次に、実施形態に係る処理の具体例について、図４から図１２を用いて説明する。
【００２５】
図４は、入力データ４１の一例を示す図であり、図５は、分類器生成部３２の処理の一例を示すフローチャートであり、図６は、分類器生成部３２の処理により生成される分類器４２の一例を示す図である。
【００２６】
図４に示すように、入力データ４１の１行目（先頭行）は、ラベルを表し、複数の属性Ｙ１〜Ｙ３と、１つのクラスとにより形成されている。本実施形態では、入力データ４１は、属性Ｙ１、属性Ｙ２、及び、属性Ｙ３の３個の属性Ｙを有している。
【００２７】
入力データ４１の２行目以降は、複数の事例Ｘ１〜Ｘ１０を表し、各事例Ｘ１〜Ｘ１０は、それぞれの特徴を示す属性Ｙ１〜Ｙ３及びデータの種別を示すクラスの値の組から構成されている。本実施形態では、入力データ４１は、事例Ｘ１〜Ｘ１０の１０個の事例Ｘを有している。また、属性における「−」はデータの欠損を表している。
【００２８】
本実施形態では、属性Ｙは全て数値データではない離散的なデータであるカテゴリデータとなっている。例えば、事例Ｘ１の属性Ｙ１は、「Ａ」であり、事例Ｘ１の属性Ｙ２は、「Ｃ」であり、事例Ｘ１の属性Ｙ３は、「Ｆ」である。属性Ｙに数値データが含まれている場合、分類器生成部３２が離散化により数値データをカテゴリデータに変換する。なお、離散化については、例えば、等間隔分割又は等頻度分割等の既知の手法を用いればよい。
【００２９】
また、入力データ４１のクラスは、正例（ＴＲＵＥ）と、負例（ＦＡＬＳＥ）の二値とする。クラスが多値の場合、分類器生成部３２が例えば１つの値を正例、残りの値を負例と見なす等、二値のデータに変換する。クラスの正例及び負例は、属性Ｙ１〜Ｙ３のカテゴリデータに応じてユーザが予め設定する。
【００３０】
図４に示す入力データ４１は、分類器生成部３２及び評価部３３に入力される。上述したように、入力データ４１は、データベースサーバ１２からネットワークＮＷを介して、あるいは、記憶媒体着脱部２７に装着された記憶媒体から分類器生成部３２及び評価部３３に入力される。分類器生成部３２は、入力データ４１を教師データとして分類器Ｚ１〜Ｚ３を生成する。
【００３１】
分類器生成部３２は、ステップＳ１において、変数ｉに１を代入し、総属性数Ｎ、及び、全事例Ｘ中の正例の割合Ｐｔを求める。本実施形態では、入力データ４１は属性Ｙ１、Ｙ２及びＹ３を有しているため、総属性数Ｎは、「３」となる。また、入力データ４１は事例Ｘ１〜Ｘ１０の１０個の事例Ｘを有し、事例Ｘ１〜Ｘ４の４個の事例Ｘが正例となっているため、全事例Ｘ中の正例の割合Ｐｔは、「４／１０」となる。
【００３２】
次に、分類器生成部３２は、ステップＳ２において、変数ｊに１を代入し、属性Ｙｉの総カテゴリ数Ｍを求める。属性Ｙ１のカテゴリデータは、「Ａ」及び「Ｂ」の２つになるため、総カテゴリ数Ｍは、「２」となる。
【００３３】
次に、分類器生成部３２は、ステップＳ３において、属性Ｙｉ（ｉ＝１）、カテゴリｊ（ｊ＝１）の正例の割合Ｐ（ｉ，ｊ）を求める。ここで、カテゴリｊ（ｊ＝１）をカテゴリデータ「Ａ」とすると、属性Ｙ１のカテゴリデータ「Ａ」の個数は７であり、そのうち、正例の個数は２である。そのため、属性Ｙｉ、カテゴリｊの正例の（ｉ，ｊ）は、「２／７」となる。
【００３４】
次に、分類器生成部３２は、ステップＳ４において、以下の性質を備えた分類器Ｚｉを生成する。
・Ｐｔ＜Ｐ（ｉ，ｊ）の場合、正の数値を返す
・Ｐｔ＞Ｐ（ｉ，ｊ）の場合、負の数値を返す
・Ｐｔ＝Ｐ（ｉ，ｊ）、又は、欠損の場合、０を返す
すなわち、あるカテゴリｊの正例の割合Ｐ（ｉ，ｊ）が全事例Ｘ中の正例の割合Ｐｔより大きい場合には、「属性Ｙｉがカテゴリｊの値を持つ場合、正例である尤度（もっともらしさ）が高くなる」と解釈し、正の数値を返す。
【００３５】
一方、あるカテゴリｊの正例の割合Ｐ（ｉ，ｊ）が全事例Ｘ中の正例の割合Ｐｔより小さい場合には、「属性Ｙｉがカテゴリｊの値を持つ場合、正例である尤度（もっともらしさ）が低くなる」と解釈し、負の数値を返す。
【００３６】
さらに、あるカテゴリｊの正例の割合Ｐ（ｉ，ｊ）が全事例Ｘ中の正例の割合Ｐｔと等しい場合、又は、属性Ｙｉが欠損の場合には、「正例である尤度（もっともらしさ）は変化しない」と解釈し、０を返す。
【００３７】
このような性質を備えた分類器としては、例えば、下記の（式１）の分類器を用いる。
ｌｏｇ１０Ｐ（ｉ，ｊ）−ｌｏｇ１０Ｐｔ・・・（式１）
ここでは、属性Ｙｉ、カテゴリｊの正例の割合Ｐ（ｉ，ｊ）は、「２／７」であり、全事例Ｘ中の正例の割合Ｐｔは、「４／１０」であるため、あるカテゴリｊの正例の割合Ｐ（ｉ，ｊ）が全事例Ｘ中の正例の割合Ｐｔより小さくなる。そのため、分類器Ｚｉ（ｉ＝１）は負の数値を返す。なお、以下の説明では、分類器Ｚｉが返す数値、すなわち、返値のことを「分類スコア」と呼ぶ。属性Ｙｉ、カテゴリｊの正例の割合Ｐ（ｉ，ｊ）、及び、全事例Ｘ中の正例の割合Ｐｔを（式１）に代入することで、分類スコアが「−０．１４６」となる。
【００３８】
次に、分類器生成部３２は、ステップＳ５において、変数ｊを１インクリメントし、ステップＳ６において、変数ｊが属性Ｙｉの総カテゴリ数Ｍより大きいか否かを判定する。
【００３９】
ここでは、変数ｊが２、属性Ｙｉ（ｉ＝１）の総カテゴリ数Ｍが２であるため、分類器生成部３２は、変数ｊが属性Ｙｉの総カテゴリ数Ｍより大きくないと判定し、ステップＳ３に戻り、同様の処理を繰り返す。
【００４０】
分類器生成部３２は、ステップＳ３において、属性Ｙｉ（ｉ＝１）、カテゴリｊ（ｊ＝２）の正例の割合Ｐ（ｉ，ｊ）を求める。ここで、カテゴリｊ（ｊ＝２）をカテゴリデータ「Ｂ」とすると、属性Ｙ１のカテゴリデータ「Ｂ」の個数は３であり、そのうち、正例の個数は２である。そのため、属性Ｙｉ、カテゴリｊの正例の割合Ｐ（ｉ，ｊ）は、「２／３」となる。
【００４１】
属性Ｙｉ、カテゴリｊの正例の割合Ｐ（ｉ，ｊ）は、「２／３」であり、全事例Ｘ中の正例の割合Ｐｔは、「４／１０」であるため、あるカテゴリｊの正例の割合Ｐ（ｉ，ｊ）が全事例Ｘ中の正例の割合Ｐｔより大きくなる。
【００４２】
分類器生成部３２は、ステップＳ４において、正の数値を返す分類器Ｚｉを生成する。属性Ｙｉ、カテゴリｊの正例の割合Ｐ（ｉ，ｊ）、及び、全事例Ｘ中の正例の割合Ｐｔを（式１）に代入することで、分類スコアが「０．２２２」となる。
【００４３】
このような処理により、図６に示すように、属性Ｙ１に対応する分類器Ｚ１が生成されることになる。この分類器Ｚ１は、属性Ｙ１のカテゴリデータに応じた数値（分類スコア）を戻すように構成されている。
【００４４】
次に、分類器生成部３２は、ステップＳ５において、変数ｊを１インクリメントし、ステップＳ６において、変数ｊが属性Ｙｉの総カテゴリ数Ｍより大きいか否かを判定する。
【００４５】
ここでは、変数ｊが３、属性Ｙｉ（ｉ＝１）の総カテゴリ数Ｍが２であるため、分類器生成部３２は、変数ｊが属性Ｙｉの総カテゴリ数Ｍより大きいと判定し、ステップＳ７に移行する。
【００４６】
分類器生成部３２は、ステップＳ７において、変数ｉを１インクリメントし、ステップＳ８において、変数ｉが総属性数Ｎより大きいか否かを判定する。
【００４７】
ここでは、変数ｉが２、総属性数Ｎが３であるため、分類器生成部３２は、変数ｉが総属性数Ｎより大きくないと判定し、ステップＳ２に戻り、同様の処理を繰り返す。
【００４８】
属性Ｙｉ（ｉ＝２）のカテゴリデータは、「Ｃ」、「Ｄ」、「Ｅ」、及び、「欠損」の４つになるため、総カテゴリ数Ｍは、「４」となる。分類器生成部３２は、属性Ｙ２について、上述した処理と同様の処理を繰り返すことで、図６に示す分類器Ｚ２を生成する。この分類器Ｚ２は、属性Ｙ２のカテゴリデータに応じた数値（分類スコア）を戻すように構成されている。
【００４９】
そして、分類器生成部３２は、ステップＳ７において、変数ｉを１インクリメントし、ステップＳ８において、変数ｉが総属性数Ｎより大きいか否かを判定する。
【００５０】
ここでは、変数ｉが３、総属性数Ｎが３であるため、分類器生成部３２は、変数ｉが総属性数Ｎより大きくないと判定し、ステップＳ２に戻り、同様の処理を繰り返す。
【００５１】
属性Ｙｉ（ｉ＝３）のカテゴリデータは、「Ｆ」、「Ｇ」、及び、「欠損」の３つになるため、総カテゴリ数Ｍは、「３」となる。分類器生成部３２は、属性Ｙ３について、上述した処理と同様の処理を繰り返すことで、図６に示す分類器Ｚ３を生成する。この分類器Ｚ３は、属性Ｙ３のカテゴリデータに応じた数値（分類スコア）を戻すように構成されている。
【００５２】
次に、分類器生成部３２は、ステップＳ７において、変数ｉを１インクリメントすると、変数ｉが４となる。この結果、変数ｉが４、総属性数Ｎが３であるため、分類器生成部３２は、変数ｉが総属性数Ｎより大きいと判定し、処理を終了する。
【００５３】
このように、図５の処理により、入力データ４１の総属性数がＮの場合、Ｎ個の分類器が生成されることになる。本実施形態では、入力データ４１が３つの属性Ｙ１〜Ｙ３を有しているため、３つの分類器Ｚ１〜Ｚ３を有した分類器４２が分類器生成部３２によって生成される。
【００５４】
次に、評価部３３の処理について説明する。図７は、評価部３３の処理の一例を示すフローチャートであり、図８は、評価部３３の処理により生成される分類スコア行列４３の一例を示す図である。
【００５５】
評価部３３は、図４に示す入力データ４１及び図６に示す分類器４２を用いて、図８に示す分類スコア行列４３を生成する。なお、評価部３３に入力データには、図４に示すクラスは無くてもよい。また、評価部３３に入力される入力データは、図４に示す入力データ４１であってもよいし、他の入力データであってもよい。
【００５６】
評価部３３は、ステップＳ１１において、変数ｉに１を代入し、総属性数Ｎ及び総事例数Ｄを求める。本実施形態では、総属性数Ｎは３であり、総事例数Ｄは１０となる。
【００５７】
評価部３３は、ステップＳ１２において、変数ｋに１を代入し、ステップＳ１３において、事例Ｘｋ、属性Ｙｉの値ａ（ｋ，ｉ）を求める。ここでは、変数ｋ＝１、変数ｉ＝１であるため、評価部３３は、入力データ４１の事例Ｘ１、属性Ｙ１の値（カテゴリデータ）として「Ａ」を求める。
【００５８】
評価部３３は、ステップＳ１４において、属性Ｙｉに対応する分類器Ｚｉを用いて、値ａ（ｋ，ｉ）から分類スコアｓ（ｋ，ｉ）を求める。ここでは、属性Ｙ１に対応する分類器Ｚ１を用いて、事例Ｘ１、属性Ｙ１の値である「Ａ」から分類スコアｓ（ｋ，ｉ）として「−０．１４６」を求める。
【００５９】
評価部３３は、ステップＳ１５において、分類スコア行列４３の（ｋ，ｉ）成分に、分類スコアｓ（ｋ，ｉ）を代入する。これにより、図８に示す分類スコア行列４３の事例Ｘ１、属性Ｙ１の成分にステップＳ１４において求められた分類スコアである「−０．１４６」が代入されることになる。
【００６０】
評価部３３は、ステップＳ１６において、変数ｋを１インクリメントし、ステップＳ１７において、変数ｋが総事例数Ｄより大きいか否かを判定する。
【００６１】
ここでは、変数ｋが２、総事例数Ｄが１０であるため、評価部３３は、変数ｋが総事例数Ｄより大きくないと判定し、ステップＳ１３に戻り、同様の処理を繰り返す。この結果、事例Ｘ２、属性Ｙ１の分類スコアｓ（ｋ，ｉ）、事例Ｘ３、属性Ｙ１の分類スコアｓ（ｋ，ｉ）、・・・、事例Ｘ１０、属性Ｙ１の分類スコアｓ（ｋ，ｉ）が求められ、分類スコア行列４３に代入されることになる。
【００６２】
一方、評価部３３は、ステップＳ１７において、変数ｋが総事例数Ｄより大きいと判定した場合、ステップＳ１８に移行する。評価部３３は、ステップＳ１８において、変数ｉを１インクリメントし、ステップＳ１９において、変数ｉが総属性数Ｎより大きいか否かを判定する。ここでは、変数ｉが２、総属性数Ｎが３であるため、評価部３３は、変数ｉが総属性数Ｎより大きくないと判定し、ステップＳ１２に戻り、同様の処理を繰り返す。この結果、事例Ｘ１、属性Ｙ２の分類スコアｓ（ｋ，ｉ）、事例Ｘ２、属性Ｙ２の分類スコアｓ（ｋ，ｉ）、・・・、事例Ｘ１０、属性Ｙ２の分類スコアｓ（ｋ，ｉ）が求められ、分類スコア行列４３に代入されることになる。
【００６３】
同様の処理により、変数ｉが１インクリメントされて３になると、事例Ｘ１、属性Ｙ３の分類スコアｓ（ｋ，ｉ）、事例Ｘ２、属性Ｙ３の分類スコアｓ（ｋ，ｉ）、・・・、事例Ｘ１０、属性Ｙ３の分類スコアｓ（ｋ，ｉ）が求められ、分類スコア行列４３に代入されることになる。一方、変数ｉが１インクリメントされて４になると、評価部３３は、変数ｉが総属性数Ｎより大きいと判定し、処理を終了する。
【００６４】
以上の処理により、図８に示す分類スコア行列４３が評価部３３によって生成される。すなわち、属性Ｙ１〜Ｙ３毎に対応する分類器Ｚ１〜Ｚ３を用いて入力データ４１を処理することで、カテゴリデータに応じた数値（分類スコア）が代入された分類スコア行列４３が生成されることになる。
【００６５】
次に、事例間類似度算出部３４の処理について説明する。図９は、事例間類似度算出部３４の処理の一例を示すフローチャートであり、図１０は、事例間類似度算出部３４の処理により生成される事例間類似度行列４４の一例を示す図である。
【００６６】
事例間類似度算出部３４は、図８に示す分類スコア行列４３を用いて、図１０に示す事例間類似度行列４４を生成する。
【００６７】
事例間類似度算出部３４は、ステップＳ２１において、変数ｉに１を代入し、総属性数Ｎ、総事例数Ｄを求める。ここでは、総属性数Ｎが３、総事例数Ｄが１０となる。
【００６８】
事例間類似度算出部３４は、ステップＳ２２において、Ｄ次正方行列の事例間類似度行列４４を生成し、全成分を０で初期化する。ここでは、総事例数Ｄが１０であるため、図１０に示すように、１０行、１０列の事例間類似度行列４４が生成される。
【００６９】
事例間類似度算出部３４は、ステップＳ２３において、事例Ｘｉ、属性Ｙｋの値をａ（ｉ，ｋ）として、事例Ｘｉに対応する行ベクトルＶｃ（ｉ）を生成する。なお、変数ｋは、１、２、・・・、Ｎ（総属性数）である。ここでは、事例Ｘ１に対応する行ベクトルＶｃ（ｉ）が生成される。具体的には、事例間類似度算出部３４は、分類スコア行列４３に基づいて、事例Ｘ１に対応する行ベクトルＶｃ（ｉ）＝（−０．１４６， ０．１７６， ０．０５１）を生成する。
【００７０】
事例間類似度算出部３４は、ステップＳ２４において、変数ｊにｉ＋１を代入する。ここでは、変数ｉが１であるため、変数ｊは２になる。
【００７１】
事例間類似度算出部３４は、ステップＳ２５において、事例Ｘｊ、属性Ｙｋの値をａ（ｊ，ｋ）として、事例Ｘｊに対応する行ベクトルＶｃ（ｊ）を生成する。ここでは、事例Ｘ２に対応する行ベクトルＶｃ（ｊ）が生成される。具体的には、事例間類似度算出部３４は、分類スコア行列４３に基づいて、事例Ｘ２に対応する行ベクトルＶｃ（ｊ）＝（−０．１４６， −０．２５０， −０．０４６）を生成する。
【００７２】
事例間類似度算出部３４は、ステップＳ２６において、行ベクトルＶｃ（ｉ）と行ベクトルＶｃ（ｊ）の類似度が高い程、値が小さくなるような距離Ｄｃ（ｉ，ｊ）を求め、事例間類似度行列４４の（ｉ，ｊ）成分、及び、（ｊ，ｉ）成分にＤｃ（ｉ，ｊ）を代入する。ここでは、事例Ｘ１と事例Ｘ２との距離Ｄｃ（１，２）が、事例間類似度行列４４の（１，２）成分、及び、（２，１）成分に代入されることになる。
【００７３】
このような距離Ｄｃ（ｉ，ｊ）としては、例えば、コサイン類似度に基づく下記の（式２）を用いる。
【００７４】
Ｄｃ（ｉ，ｊ）＝１−（Ｖｃ（ｉ）・Ｖｃ（ｊ））／（｜Ｖｃ（ｉ）｜｜Ｖｃ（ｊ）｜）・・・（式２）
事例間類似度算出部３４は、ステップＳ２７において、変数ｊを１インクリメントし、ステップＳ２８において、変数ｊが総事例数Ｄより大きいか否かを判定する。ここでは、変数ｊが３、総事例数Ｄが１０であるため、事例間類似度算出部３４は、変数ｊが総事例数Ｄより大きくないと判定し、ステップＳ２５に戻り、同様の処理を繰り返す。
【００７５】
すなわち、事例間類似度算出部３４は、事例Ｘ１と事例Ｘ３との距離Ｄｃ（１，３）を求め、事例間類似度行列４４の（１，３）成分、及び、（３，１）成分に代入する。事例間類似度算出部３４は、同様の処理を繰り返すことで、事例Ｘ１と事例Ｘ１０との距離Ｄｃ（１，１０）を求め、事例間類似度行列４４の（１，１０）成分、及び、（１０，１）成分に代入する。
【００７６】
一方、事例間類似度算出部３４は、変数ｊが総事例数Ｄより大きいと判定すると、ステップＳ２９において、変数ｉを１インクリメントし、ステップＳ３０において、変数ｉが総事例数Ｄよりも大きいか否かを判定する。ここでは、変数ｉが２であり、総事例数Ｄが１０であるため、事例間類似度算出部３４は、変数ｉが総事例数Ｄよりも大きくないと判定し、ステップＳ２３に戻り、同様の処理を繰り返す。
【００７７】
すなわち、事例間類似度算出部３４は、事例Ｘ２から事例Ｘ１０についても、同様の処理を行うことで、事例間類似度行列４４を生成する。そして、事例間類似度算出部３４は、変数ｉが総事例数Ｄよりも大きいと判定すると、処理を終了する。
【００７８】
以上の処理により、図１０に示す事例間類似度行列４４が事例間類似度算出部３４によって生成される。事例間類似度行列４４は、各事例間の数値が小さい程、各事例間の距離が近い（各事例間が類似している）ことを示している。
【００７９】
次に、属性間類似度算出部３５の処理について説明する。図１１は、属性間類似度算出部３５の処理の一例を示すフローチャートであり、図１２は、属性間類似度算出部３５の処理により生成される属性間類似度行列４５の一例を示す図である。
【００８０】
属性間類似度算出部３５は、図８に示す分類スコア行列４３を用いて、図１２に示す属性間類似度行列４５を生成する。図９の処理では、分類スコア行列４３の行ベクトルを用いて各事例間の距離を求めていたが、図１１の処理では、分類スコア行列４３の列ベクトルを用いて各属性間の距離を求めている。
【００８１】
属性間類似度算出部３５は、ステップＳ４１において、変数ｉに１を代入し、総属性数Ｎ、総事例数Ｄを求める。ここでは、総属性数Ｎが３、総事例数Ｄが１０となる。
【００８２】
属性間類似度算出部３５は、ステップＳ４２において、Ｎ次正方行列の属性間類似度行列４５を生成し、全成分を０で初期化する。ここでは、総属性数Ｎが３であるため、図１２に示すように、３行、３列の属性間類似度行列４５が生成される。
【００８３】
属性間類似度算出部３５は、ステップＳ４３において、事例Ｘｋ、属性Ｙｉの値をａ（ｋ，ｉ）として、属性Ｙｉに対応する列ベクトルＶａ（ｉ）を生成する。なお、変数ｋは、１、２、・・・、Ｄ（総事例数）である。ここでは、属性Ｙ１に対応する列ベクトルＶａ（ｉ）が生成される。具体的には、属性間類似度算出部３５は、分類スコア行列４３に基づいて、属性Ｙ１に対応する列ベクトルＶａ（ｉ）＝（−０．１４６， −０．１４６， ０．２２２， ０．２２２， −０．１４６， −０．１４６， −０．１４６， −０．１４６， −０．１４６， ０．２２２）を生成する。
【００８４】
属性間類似度算出部３５は、ステップＳ４４において、変数ｊにｉ＋１を代入する。ここでは、変数ｉが１であるため、変数ｊは２になる。
【００８５】
属性間類似度算出部３５は、ステップＳ４５において、事例Ｘｋ、属性Ｙｊの値をａ（ｋ，ｊ）として、属性Ｙｊに対応する列ベクトルＶａ（ｊ）を生成する。ここでは、属性Ｙ２に対応する列ベクトルＶａ（ｊ）が生成される。具体的には、属性間類似度算出部３５は、分類スコア行列４３に基づいて、属性Ｙ２に対応する列ベクトルＶａ（ｊ）＝（０．１７６， −０．２５０， ０．０５１， ０．１７６， −０．２５０， ０．０５１， ０．０００， ０．１７６， −０．２５０， −０．２５０）を生成する。
【００８６】
属性間類似度算出部３５は、ステップＳ４６において、列ベクトルＶａ（ｉ）と列ベクトルＶａ（ｊ）の類似度が高い程、値が小さくなるような距離Ｄａ（ｉ，ｊ）を求め、属性間類似度行列４５の（ｉ，ｊ）成分、及び、（ｊ，ｉ）成分にＤａ（ｉ，ｊ）を代入する。ここでは、属性Ｙ１と属性Ｙ２との距離Ｄａ（１，２）が、属性間類似度行列４５の（１，２）成分、及び、（２，１）成分に代入されることになる。
【００８７】
このような距離Ｄａ（ｉ，ｊ）としては、例えば、コサイン類似度に基づく下記の（式２）を用いる。
【００８８】
Ｄａ（ｉ，ｊ）＝１−（Ｖａ（ｉ）・Ｖａ（ｊ））／（｜Ｖａ（ｉ）｜｜Ｖｃ（ｊ）｜）・・・（式３）
属性間類似度算出部３５は、ステップＳ４７において、変数ｊを１インクリメントし、ステップＳ４８において、変数ｊが総属性数Ｎより大きいか否かを判定する。ここでは、変数ｊが３、総属性数Ｎが３であるため、属性間類似度算出部３５は、変数ｊが総属性数Ｎより大きくないと判定し、ステップＳ４５に戻り、同様の処理を繰り返す。
【００８９】
すなわち、属性間類似度算出部３５は、属性Ｙ１と属性Ｙ３との距離Ｄａ（１，３）を求め、属性間類似度行列４５の（１，３）成分、及び、（３，１）成分に代入する。
【００９０】
一方、属性間類似度算出部３５は、変数ｊが総属性数Ｎより大きいと判定すると、ステップＳ４９において、変数ｉを１インクリメントし、ステップＳ５０において、変数ｉが総属性数Ｎよりも大きいか否かを判定する。ここでは、変数ｉが２であり、総属性数Ｎが３であるため、属性間類似度算出部３５は、変数ｉが総属性数Ｎよりも大きくないと判定し、ステップＳ４３に戻り、同様の処理を繰り返す。
【００９１】
すなわち、属性間類似度算出部３５は、属性Ｙ２及び属性Ｙ３についても、同様の処理を行うことで、属性間類似度行列４５を生成する。そして、属性間類似度算出部３５は、変数ｉが総属性数Ｎよりも大きいと判定すると、処理を終了する。
【００９２】
以上の処理により、図１２に示す属性間類似度行列４５が属性間類似度算出部３５によって生成される。属性間類似度行列４５は、各属性間の数値が小さい程、各属性間の距離が近い（各属性間が類似している）ことを示している。
【００９３】
以上のように、類似度計算装置１１は、複数の事例、及び、複数の事例のそれぞれが複数の属性の値を持つ入力データ４１から属性毎に尤度に基づく数値を返す分類器Ｚ１〜Ｚ３を生成しと、入力データ４１に生成した分類器Ｚ１〜Ｚ３を適用し、分類器Ｚ１〜Ｚ３から返された数値を代入した分類スコア行列４３を生成するようにした。そして、類似度計算装置１１は、分類スコア行列４３から事例間類似度行列４４及び属性間類似度行列４５を算出する。この結果、類似度計算装置１１は、複数の事例、及び、複数の事例のそれぞれが複数の属性の値を持つデータから、事例間類似度及び属性間類似度を統一的な基準で、かつ効率的に計算することができる。
【００９４】
なお、以上説明した動作を実行するプログラムは、コンピュータプログラム製品として、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬媒体や、ハードディスク等の記憶媒体に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムコードがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明を実現することができる。
【００９５】
また、明細書におけるフローチャート中の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【００９６】
発明のいくつかの実施の形態を説明したが、これらの実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９７】
１…類似度計算システム、１１…類似度計算装置、１２…データベースサーバ、２１…制御部、２２…ＲＯＭ、２３…ＲＡＭ、２４…入力デバイス、２５…出力デバイス、２６…通信ＩＦ、２７…記憶媒体着脱部、２８…バス、３１…類似度計算処理部、３２…分類器生成部、３３…評価部、３４…事例間類似度算出部、３５…属性間類似度算出部、４１…入力データ、４２…分類器、４３…分類スコア行列、４４…事例間類似度行列、４５…属性間類似度行列。
【図１】
2019008640.tif 000003
【図２】
2019008640.tif 000004
【図３】
2019008640.tif 000005
【図４】
2019008640.tif 000006
【図５】
2019008640.tif 000007
【図６】
2019008640.tif 000008
【図７】
2019008640.tif 000009
【図８】
2019008640.tif 000010
【図９】
2019008640.tif 000011
【図１０】
2019008640.tif 000012
【図１１】
2019008640.tif 000013
【図１２】
2019008640.tif 000014