(57)【要約】  クラスタ毎の予測モデルの予測精度をより向上させることができる共クラスタリングシステムを提供する。共クラスタリング手段７１は、第１のマスタデータと、第２のマスタデータと、第１のマスタデータ内のレコードのＩＤである第１ＩＤと第２のマスタデータ内のレコードのＩＤである第２ＩＤとの関係を示すファクトデータとに基づいて、第１ＩＤおよび第２ＩＤを共クラスタリングする共クラスタリング処理を実行する。予測モデル生成手段７２は、少なくとも第１ＩＤのクラスタ毎に予測モデルを生成する予測モデル生成処理を実行する。判定手段７３は、所定の条件が満たされたか否かを判定する。所定の条件が満たされたと判定されるまで、予測モデル生成処理および共クラスタリング処理を繰り返す。
2017159402.tif 000002
【特許請求の範囲】
【請求項１】
第１のマスタデータと、第２のマスタデータと、前記第１のマスタデータ内のレコードのＩＤである第１ＩＤと前記第２のマスタデータ内のレコードのＩＤである第２ＩＤとの関係を示すファクトデータとに基づいて、前記第１ＩＤおよび前記第２ＩＤを共クラスタリングする共クラスタリング処理を実行する共クラスタリング手段と、
少なくとも前記第１ＩＤのクラスタ毎に予測モデルを生成する予測モデル生成処理を実行する予測モデル生成手段と、
所定の条件が満たされたか否かを判定する判定手段とを備え、
前記所定の条件が満たされたと判定されるまで、前記予測モデル生成処理および前記共クラスタリング処理を繰り返し、
前記共クラスタリング手段は、
１つの第１ＩＤが１つのクラスタに属する所属確率を決定する際、前記第１ＩＤに対応する目的変数の値を、前記クラスタに対応する予測モデルを用いて予測し、当該値と実際の値との差が小さいほど、前記所属確率を高い確率とする
ことを特徴とする共クラスタリングシステム。
【請求項２】
目的変数が未知である新たな第１ＩＤのレコードと、前記新たな第１ＩＤと第２のマスタデータ内の第２ＩＤとの関係を示すデータとを含むテストデータが与えられたときに、前記目的変数の値を予測する予測手段を備える
請求項１に記載の共クラスタリングシステム。
【請求項３】
予測手段は、
新たな第１ＩＤのレコードに含まれる属性の値、または、前記新たな第１ＩＤと第２のマスタデータ内の第２ＩＤとの関係を示すデータを用いることによって、前記新たな第１ＩＤが属するクラスタを特定し、
前記クラスタに対応する予測モデルに、新たな第１ＩＤのレコードを適用することによって目的変数の値を予測する
請求項２に記載の共クラスタリングシステム。
【請求項４】
予測手段は、
新たな第１ＩＤのレコードに含まれる属性の値、または、前記新たな第１ＩＤと第２のマスタデータ内の第２ＩＤとの関係を示すデータを用いることによって、前記新たな第１ＩＤが、第１ＩＤの各クラスタに所属する所属確率を求め、
第１ＩＤの各クラスタに対応する予測モデル毎に、新たな第１ＩＤのレコードを適用することによって目的変数の値を予測し、予測した各値に対して、前記新たな第１ＩＤが各クラスタに所属する所属確率で重み付け加算した結果を、前記目的変数の値として確定する
請求項２に記載の共クラスタリングシステム。
【請求項５】
第１のマスタデータと、第２のマスタデータと、前記第１のマスタデータ内のレコードのＩＤである第１ＩＤと前記第２のマスタデータ内のレコードのＩＤである第２ＩＤとの関係を示すファクトデータとに基づいて、前記第１ＩＤおよび前記第２ＩＤを共クラスタリングする共クラスタリング処理を実行し、
少なくとも前記第１ＩＤのクラスタ毎に予測モデルを生成する予測モデル生成処理を実行し、
所定の条件が満たされたか否かを判定し、
前記所定の条件が満たされたと判定されるまで、前記予測モデル生成処理および前記共クラスタリング処理を繰り返し、
前記共クラスタリング処理で、
１つの第１ＩＤが１つのクラスタに属する所属確率を決定する際、前記第１ＩＤに対応する目的変数の値を、前記クラスタに対応する予測モデルを用いて予測し、当該値と実際の値との差が小さいほど、前記所属確率を高い確率とする
ことを特徴とする共クラスタリング方法。
【請求項６】
コンピュータに、
第１のマスタデータと、第２のマスタデータと、前記第１のマスタデータ内のレコードのＩＤである第１ＩＤと前記第２のマスタデータ内のレコードのＩＤである第２ＩＤとの関係を示すファクトデータとに基づいて、前記第１ＩＤおよび前記第２ＩＤを共クラスタリングする共クラスタリング処理、
少なくとも前記第１ＩＤのクラスタ毎に予測モデルを生成する予測モデル生成処理、および、
所定の条件が満たされたか否かを判定する判定処理を実行させ、
前記所定の条件が満たされたと判定されるまで、前記予測モデル生成処理および前記共クラスタリング処理を繰り返させ、
前記共クラスタリング処理で、
１つの第１ＩＤが１つのクラスタに属する所属確率を決定する際、前記第１ＩＤに対応する目的変数の値を、前記クラスタに対応する予測モデルを用いて予測させ、当該値と実際の値との差が小さいほど、前記所属確率を高い確率とさせる
ための共クラスタリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２種類の事項それぞれをクラスタリングする共クラスタリングシステム、共クラスタリング方法および共クラスタリングプログラムに関する。
【背景技術】
【０００２】
回帰・判別に代表される教師あり学習は、例えば、小売店における商品の需要予測や、電力使用量の予測等、様々な分析処理に用いられる。教師あり学習は、入力と出力との組が与えられると、入力と出力との関係性を学習し、出力の不明な入力が与えられると、学習した関係性に基づいて、その出力を予測する。【０００３】
近年、教師あり学習の予測精度を向上させるために、１つのデータセットに対して複数の予測モデルを生成し、予測時には適切に予測モデルを選択したり、適切にそれらの予測モデルを混合させたりする技術が提案されている。この技術は、Mixture of Expertsと呼ばれる。Mixture of Expertsの１つとして、混合モデルを用いた技術が非特許文献１に記載されている。非特許文献１に記載の技術は、データ（例えば、商品ＩＤ）を、データの性質（例えば、商品の価格）に基づいてクラスタリングし、クラスタ毎に予測モデルを生成する。この結果、同じクラスタに所属する「性質の類似したデータ」に基づいて予測モデルを生成することになる。従って、データ全体で予測モデルを生成する場合と比べ、非特許文献１に記載の技術では、より細部を捉えた予測モデルを生成することができ、予測精度が向上する。【０００４】
以下にこの具体例を示す。
例えば、あるサービスの会員が年間にエステティックサロンを利用する利用回数を、年齢から予測する予測問題を考える。この予測問題は、年齢を入力とし、利用回数を出力する関数を求める問題である。また、ここでは、データ全体が６人分のデータであるとする。図２３は、その６人分の年齢と利用回数とをグラフに示した結果を例示した図である。図２３に示すグラフにおいて、ｘ軸は年齢を示し、ｙ軸は利用回数を示している。また、その６人分のデータ全体から、線形回帰により予測モデル（上記の関数）を生成し、その関数を図示すると、その関数は、図２３に示す直線のように示すことができる。この関数に年齢ｘを代入したときのｙの値が利用回数の予測値となる。図２３から分かるように、この予測値と、実際の利用回数との差は大きく、予測精度は低い。【０００５】
これに対し、非特許文献１に記載の技術を利用して、６人分のデータを、「美容派」と「酒好き」の２つのクラスタに分けたとする。この場合のクラスタ毎の年齢と利用回数、および予測モデルの例を図２４に示す。図２４（ａ）は、「美容派」に対応するグラフであり、図２４（ｂ）は、「酒好き」に対応するグラフである。図２４においても、ｘ軸は年齢を示し、ｙ軸は利用回数を示している。図２４から分かるように、傾向の同じデータを同じクラスタにまとめて、クラスタ毎に予測モデルを生成することによって、それぞれのクラスタで高い予測精度を実現することができる。【０００６】
また、非特許文献２には、ＩＲＭ（Infinite Relational Model ）を用いた学習が記載されている。非特許文献２に記載された学習では、データセット内に未知の値が存在することを許容しない。例えば、学習に用いられるデータセットが、顧客ＩＤと、その顧客の種々の属性の値との組の集合であるとする。非特許文献２に記載された学習では、それらの属性の中に、値が定まっていない属性が存在することを許容しない。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Jun Zhu, Ning Chen, Eric P. Xing, “Infinite SVM: a Dirichlet Process Mixture of Large-margin Kernel Machines”, In ICML, pages 617-624.
【非特許文献２】Charles Kemp, Joshua B. Tenenbaum, Thomas L. Griffiths, Takeshi Yamada, Naonori Ueda, “Learning Systems of Concepts with an Infinite Relational Model”, In AAAI, volume 21, pages 381-338.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献１に記載された技術では、データセット（例えば、顧客情報）をデータ自身が持つ属性の値（例えば、顧客の年齢）を用いてクラスタリングし、属性の似た顧客のクラスタ毎に、未知の属性（例えば、顧客の収入）の予測モデルを生成する。なお、未知の属性は、各データのうち、一部のデータに関して未知であり、この属性の値が分かっているデータも存在しているものとする。上記の例では、顧客の収入が既知となっているデータと、顧客の収入が未知であるデータとが混在しているものとする。そのように予測モデルを生成した結果、各クラスタの特徴をより捉えた予測モデルを生成することができ、予測精度の向上が可能となる。しかし、予測対象となる未知の属性の値と、他の属性の値との相関が小さい場合には、予測精度の向上は望めない。例えば、上記の例において、顧客の年齢と、顧客の年収との間に相関がほとんどない場合、年齢から年収を予測する予測モデルをクラスタ毎に生成したとしても、予測精度の向上は望めない。【０００９】
そこで、本発明は、クラスタ毎の予測モデルの予測精度をより向上させることができる共クラスタリングシステム、共クラスタリング方法および共クラスタリングプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明による共クラスタリングシステムは、第１のマスタデータと、第２のマスタデータと、第１のマスタデータ内のレコードのＩＤである第１ＩＤと第２のマスタデータ内のレコードのＩＤである第２ＩＤとの関係を示すファクトデータとに基づいて、第１ＩＤおよび第２ＩＤを共クラスタリングする共クラスタリング処理を実行する共クラスタリング手段と、少なくとも第１ＩＤのクラスタ毎に予測モデルを生成する予測モデル生成処理を実行する予測モデル生成手段と、所定の条件が満たされたか否かを判定する判定手段とを備え、所定の条件が満たされたと判定されるまで、予測モデル生成処理および共クラスタリング処理を繰り返し、共クラスタリング手段が、１つの第１ＩＤが１つのクラスタに属する所属確率を決定する際、第１ＩＤに対応する目的変数の値を、クラスタに対応する予測モデルを用いて予測し、当該値と実際の値との差が小さいほど、所属確率を高い確率とすることを特徴とする。【００１１】
また、本発明による共クラスタリング方法は、第１のマスタデータと、第２のマスタデータと、第１のマスタデータ内のレコードのＩＤである第１ＩＤと第２のマスタデータ内のレコードのＩＤである第２ＩＤとの関係を示すファクトデータとに基づいて、第１ＩＤおよび第２ＩＤを共クラスタリングする共クラスタリング処理を実行し、少なくとも第１ＩＤのクラスタ毎に予測モデルを生成する予測モデル生成処理を実行し、所定の条件が満たされたか否かを判定し、所定の条件が満たされたと判定されるまで、予測モデル生成処理および共クラスタリング処理を繰り返し、共クラスタリング処理で、１つの第１ＩＤが１つのクラスタに属する所属確率を決定する際、第１ＩＤに対応する目的変数の値を、クラスタに対応する予測モデルを用いて予測し、当該値と実際の値との差が小さいほど、所属確率を高い確率とすることを特徴とする。【００１２】
また、本発明による共クラスタリングプログラムは、コンピュータに、第１のマスタデータと、第２のマスタデータと、第１のマスタデータ内のレコードのＩＤである第１ＩＤと第２のマスタデータ内のレコードのＩＤである第２ＩＤとの関係を示すファクトデータとに基づいて、第１ＩＤおよび第２ＩＤを共クラスタリングする共クラスタリング処理、少なくとも第１ＩＤのクラスタ毎に予測モデルを生成する予測モデル生成処理、および、所定の条件が満たされたか否かを判定する判定処理を実行させ、所定の条件が満たされたと判定されるまで、予測モデル生成処理および共クラスタリング処理を繰り返させ、共クラスタリング処理で、１つの第１ＩＤが１つのクラスタに属する所属確率を決定する際、第１ＩＤに対応する目的変数の値を、クラスタに対応する予測モデルを用いて予測させ、当該値と実際の値との差が小さいほど、所属確率を高い確率とさせることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、クラスタ毎の予測モデルの予測精度をより向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】第１のマスタデータの例を示す説明図である。
【図２】第２のマスタデータの例を示す説明図である。
【図３】ファクトデータの例を示す説明図である。
【図４】ハードクラスタリングの結果の例を示す模式図である。
【図５】ソフトクラスタリングの結果の例を示す模式図である。
【図６】本発明の第１の実施形態の共クラスタリングシステムの例を示す機能ブロック図である。
【図７】予測モデル学習部が学習モデルを生成する際に用いる教師データの説明図である。
【図８】クラスタ関係の例を示す模式図である。
【図９】クラスタ関係の例を示す模式図である。
【図１０】ファクトデータの例を示す模式図である。
【図１１】第１の実施形態の処理経過の例を示すフローチャートである。
【図１２】図１、図２に示す第１のマスタデータ、第２のマスタデータ、および図３に示すファクトデータを統合した結果の例を示す説明図である。
【図１３】第１のマスタデータの例を示す説明図である。
【図１４】第２のマスタデータの例を示す説明図である。
【図１５】ファクトデータの例を示す説明図である。
【図１６】本発明の第２の実施形態の予測システムの例を示す機能ブロック図である。
【図１７】第２の実施形態の処理経過の例を示すフローチャートである。
【図１８】本発明の第３の実施形態の共クラスタリングシステムの例を示す機能ブロック図である。
【図１９】第１の実施形態の具体例における処理経過の例を示すフローチャートである。
【図２０】第１の実施形態の具体例における処理経過の例を示すフローチャートである。
【図２１】本発明の各実施形態に係るコンピュータの構成例を示す概略ブロック図である。
【図２２】本発明の共クラスタリングシステムの概要を示すブロック図である。
【図２３】６人分の年齢と利用回数とをグラフに示した結果を例示した図である。
【図２４】６人分のデータを２つのクラスタに分け、クラスタ毎に年齢と利用回数とをグラフに示した結果を例示した図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面を参照して説明する。
【００１６】
まず、本発明において、事前に与えられるデータについて説明する。本発明では、第１のマスタデータ、第２のマスタデータおよびファクトデータが与えられる。なお、マスタデータは、ディメンションデータと称される場合もある。従って、第１のマスタデータ、第２のマスタデータをそれぞれ、第１のディメンションデータ、第２のディメンションデータと称してもよい。また、ファクトデータは、トランザクションデータまたは実績データと称される場合もある。
【００１７】
第１のマスタデータおよび第２のマスタデータは、それぞれ複数のレコードを含む。第１のマスタデータのレコードのＩＤを第１ＩＤと記す。第２のマスタデータのレコードのＩＤを第２ＩＤと記す。
【００１８】
第１のマスタデータの各レコードでは、第１ＩＤと、その第１ＩＤに対応する属性の値とが対応付けられている。ただし、第１ＩＤに対応する属性のうち、特定の属性に関しては、一部のレコードで値が未知である。
【００１９】
第２のマスタデータの各レコードでは、第２ＩＤと、その第２ＩＤに対応する属性の値とが対応付けられている。なお、第２ＩＤに対応する属性のうち、特定の属性に関しては、一部のレコードで値が未知であってもよい。ただし、以下の説明では、第２のマスタデータでは、各属性の値は全て定められている場合を例にして説明する。
【００２０】
ここでは、第１ＩＤが顧客ＩＤであり、第２ＩＤが商品ＩＤである場合を例示して説明する。第１ＩＤおよび第２ＩＤは、顧客ＩＤや商品ＩＤに限定されるわけではない。
【００２１】
図１は、第１のマスタデータの例を示す説明図である。図１では、値が未知であることを“？”で表している。図１では、顧客ＩＤ（第１ＩＤ）に対応する属性として、「年齢」、「年収」、「年間のエステティックサロンの利用回数」を例示している。「顧客１」および「顧客２」のレコードでは、「年間のエステティックサロンの利用回数」の値が定められている。しかし、「顧客３」および「顧客４」のレコードでは、「年間のエステティックサロンの利用回数」の値が未知となっている。一部のレコードで値が未知になる状況は、例えば、一部の顧客からのみ、アンケートで「年間のエステティックサロンの利用回数」の回答を得た場合等に生じる。他の属性（「年齢」、「年収」）の値は、各レコードで定められている。なお、図１に例示したマスタデータは、顧客データであると言うことができる。
【００２２】
図２は、第２のマスタデータの例を示す説明図である。図２では、商品ＩＤ（第２ＩＤ）に対応する属性として、「商品名」および「価格」を例示している。図２に示す各属性の値は全て定められている。なお、図２に例示したマスタデータは、商品データであると言うことができる。
【００２３】
ファクトデータは、第１ＩＤと第２ＩＤとの関係を示すデータである。図３は、ファクトデータの例を示す説明図である。図３に示す例では、顧客ＩＤ（第１ＩＤ）によって特定される顧客が、商品ＩＤ（第２ＩＤ）によって特定される商品を購入した実績があるか否かという関係を示している。図３では、顧客が商品を購入した実績があることを“１”で示し、実績がないことを“０”で示している。例えば、図３に示す例では、「顧客１」は、「商品１」を購入したことはあるが、「商品２」を購入したことはない。なお、ファクトデータにおいて、第１ＩＤと第２ＩＤとの関係を示す値は２値（“０”および“１”）に限定されない。例えば、顧客ＩＤと商品ＩＤとの関係を示す値は、顧客が商品を購入した個数等であってもよい。図３に例示するファクトデータは、購買実績データであると言うことができる。
【００２４】
また、本発明の各実施形態の説明の前にクラスタリングについて説明する。クラスタリングとは、データをクラスタと呼ばれる複数のグループに分けるタスクである。クラスタリングでは、データに何等かの性質が定められ、性質が似たデータが同じクラスタに所属するように、データが分けられる。クラスタリングには、ハードクラスタリングと、ソフトクラスタリングとがある。
【００２５】
ハードクラスタリングでは、個々のデータはいずれか１つのクラスタのみに所属させられる。図４は、ハードクラスタリングの結果の例を示す模式図である。
【００２６】
ソフトクラスタリングでは、個々のデータは複数のクラスタに所属させられる。このとき、各データには、クラスタ毎に、「クラスタにどの程度所属しているか」を表す所属確率が割り当てられる。図５は、ソフトクラスタリングの結果の例を示す模式図である。
【００２７】
なお、ハードクラスタリングは、個々のデータの所属確率がそれぞれ１つのクラスタで“１．０”となり、残りの全てのクラスタで“０．０”となるクラスタンリングと捉えることができる。すなわち、ハードクラスタリングの結果も、２値の所属確率で表すことができる。また、ハードクラスタリングの結果を導出する過程で、０．０〜１．０の範囲の所属確率を用いてもよい。最終的に、そのような所属確率が最大となるクラスタで所属確率を“１．０”とし、他の各クラスタの所属確率を“０．０”にする処理を、各データに関してそれぞれ行えばよい。
【００２８】
各実施形態では、特に言及のない限り、ハードクラスタリングとソフトクラスタリングを区別せずに説明する。また、ハードクラスタリングでの所属クラスタの決定や、ソフトクラスタリング（ハードクラスタリングでもよい。）での所属確率の決定を、クラスタ割り当ての決定と記す。
【００２９】
実施形態１．
本発明の発明者は、非特許文献２に記載のＩＲＭを利用して、第１のマスタデータ、第２のマスタデータおよびファクトデータが与えられた場合に、第１ＩＤおよび第２ＩＤを共クラスタリングする処理を検討した。以下、この処理の流れを述べ、さらに、本発明の第１の実施形態において、第１のマスタデータ、第２のマスタデータおよびファクトデータが与えられた場合に、第１ＩＤおよび第２ＩＤを共クラスタリングする処理について述べる。
【００３０】
第１ＩＤおよび第２ＩＤの共クラスタリングでは、第１ＩＤの各クラスタと、第２ＩＤの各クラスタとの間に（クラスタの直積空間上に）、確率モデルを保持する。確率モデルは、典型的には、クラスタ間の関係の強さを表すベルヌーイ分布である。一方のＩＤ（例えば、第１ＩＤ）のあるクラスタへの所属確率を算出する際には、そのクラスタと、他方のＩＤ（本例では、第２ＩＤ）の各クラスタとの間にある確率モデルの値を参照する。例えば、確率モデルとしてクラスタ間の関係の強さを利用した場合、ある顧客ＩＤがある顧客ＩＤクラスタに所属する確率は、その顧客ＩＤクラスタと関係の強い商品ＩＤクラスタに所属する商品ＩＤが示す商品を、その顧客ＩＤが示す顧客がどれだけ購入しているかによって定まる。このように共クラスタリングを実行することによって、似た商品を買う顧客の顧客ＩＤが同じ顧客ＩＤクラスタに集まり、また、似た顧客によって買われる商品の商品ＩＤが同じ商品ＩＤクラスタに集まる。
【００３１】
［非特許文献２に記載のＩＲＭを利用した共クラスタリング処理］
非特許文献２に記載のＩＲＭを利用した共クラスタリング処理では、以下のステップを繰り返す。
【００３２】
１．第１ＩＤの各クラスタ（第１ＩＤを要素とする各クラスタ）への所属確率、および、第２ＩＤの各クラスタ（第２ＩＤを要素とする各クラスタ）への所属確率を更新する。所属確率は、ファクトデータ（例えば、図３に例示する購買実績データ）と、第１ＩＤや第２ＩＤに対応する属性（例えば、顧客の年齢や商品の価格）とから定まる。
【００３３】
２．
（２−１）第１ＩＤの各クラスタの重み（事前確率）、および、第２ＩＤの各クラスタの重み（事前確率）を更新する。例えば、第１のマスタデータ（図１参照）の中に若い人のレコードが多い場合、若年層のクラスタに第１ＩＤが所属する事前確率を高くする。
（２−２）第１ＩＤを要素とする各クラスタ、および第２ＩＤを要素とする各クラスタを対象にして、クラスタのモデル情報を、現時点でのクラスタ割り当てに基づいて更新する。クラスタのモデル情報は、そのクラスタに所属するＩＤに対応する属性の値の統計的な性質を表す情報である。クラスタのモデル情報は、そのクラスタの代表的な要素の持つ性質を表現していると言える。例えば、クラスタのモデル情報は、クラスタに所属しているＩＤに対応する属性の値の平均や分散で表すことができる。なお、第１ＩＤの各クラスタへの所属確率および第２ＩＤの各クラスタへの所属確率が判明しているので、クラスタのモデル情報（例えば、顧客の平均年齢や商品の平均価格）を計算することができる。
【００３４】
３．第１ＩＤの各クラスタと、第２ＩＤの各クラスタとの間に保持される確率モデルを、各ＩＤの所属確率に基づいて更新する。例えば、ある顧客ＩＤクラスタと、ある商品ＩＤクラスタとの関係は、それらのクラスタに属する顧客ＩＤと商品ＩＤとの間の関係（例えば、購買実績）が存在するほど、強くなる。
【００３５】
上記の“１．”〜“３．”の各ステップを繰り返し、その繰り返しが必要なくなったと判定した時点で、共クラスタリングの処理を終了する。
【００３６】
［本発明の第１の実施形態の共クラスタリング処理］
本発明の第１の実施形態の共クラスタリング処理では、一部のレコードで特定の属性の値が未知となっているマスタデータ（ここでは、第１のマスタデータ）における各レコードのＩＤ（すなわち、第１ＩＤ）のクラスタ毎に、予測モデルを保持する。本実施形態では、属性の値が類似している第１ＩＤを同じクラスタに所属させ、クラスタ毎に異なる予測モデルを生成することで、上記の特定の属性における未知の値の予測精度を向上させる。また、本実施形態では、クラスタ割り当ての決定において、第１ＩＤが各クラスタに所属する所属確率を、クラスタに対応する予測モデルの予測誤差が小さいほど高い確率とすることで、クラスタリングの精度を向上させる。
【００３７】
本発明の第１の実施形態の共クラスタリング処理では、以下のステップを繰り返す。
【００３８】
１．第１ＩＤの各クラスタで、クラスタに所属する第１ＩＤに対応する属性の値を用いて、予測モデルを更新する。例えば、サポートベクタマシンの重みを更新する。
【００３９】
２．第１ＩＤの各クラスタ（第１ＩＤを要素とする各クラスタ）への所属確率、および、第２ＩＤの各クラスタ（第２ＩＤを要素とする各クラスタ）への所属確率を更新する。所属確率は、ファクトデータ（例えば、図３に例示する購買実績データ）と、第１ＩＤや第２ＩＤに対応する属性（例えば、顧客の年齢や商品の価格）とから定まる。第ＩＤの各クラスタへの所属確率を定める場合には、クラスタ毎の予測モデルも考慮される。例えば、ある第１ＩＤに関して、予測モデルによる予測精度が高いクラスタほど、その第１ＩＤの所属確率を高くする。
【００４０】
３．
（３−１）第１ＩＤの各クラスタの重み（事前確率）、および、第２ＩＤの各クラスタの重み（事前確率）を更新する。例えば、第１のマスタデータ（図１参照）の中に若い人のレコードが多い場合、若年層のクラスタに第１ＩＤが所属する事前確率を高くする。
（３−２）第１ＩＤを要素とする各クラスタ、および第２ＩＤを要素とする各クラスタを対象にして、クラスタのモデル情報を、現時点でのクラスタ割り当てに基づいて更新する。なお、第１ＩＤの各クラスタへの所属確率および第２ＩＤの各クラスタへの所属確率が判明しているので、クラスタのモデル情報（例えば、顧客の平均年齢や商品の平均価格）を計算することができる。
【００４１】
４．第１ＩＤの各クラスタと、第２ＩＤの各クラスタとの間に保持される確率モデルを、各ＩＤの所属確率に基づいて更新する。例えば、ある顧客ＩＤクラスタと、ある商品ＩＤクラスタとの関係は、それらのクラスタに属する顧客ＩＤと商品ＩＤとの間の関係（例えば、購買実績）が存在するほど、強くなる。
【００４２】
上記の“１．”〜“４．”の各ステップを繰り返し、その繰り返しが必要なくなったと判定した時点で、共クラスタリングの処理を終了する。
【００４３】
以下、本発明の第１の実施形態について、より具体的に説明する。図６は、本発明の第１の実施形態の共クラスタリングシステムの例を示す機能ブロック図である。
【００４４】
本発明の第１の実施形態の共クラスタリングシステム１は、データ入力部２と、処理部３と、記憶部４と、結果出力部５とを備える。処理部３は、初期化部３１と、クラスタリング部３２とを備える。クラスタリング部３２は、予測モデル学習部３２１と、クラスタ割り当て部３２２と、クラスタ情報算出部３２３と、クラスタ関係算出部３２４と、終了判定部３２５とを備える。
【００４５】
データ入力部２は、共クラスタリングに用いられるデータ群と、クラスタリングの設定値とを取得する。データ入力部２は、例えば、外部の装置にアクセスして、データ群と、クラスタリングの設定値とを取得してもよい。あるいは、データ入力部２は、データ群と、クラスタリングの設定値とが入力される入力インタフェースであってもよい。
【００４６】
共クラスタリングに用いられるデータ群は、第１のマスタデータ（例えば、図１に例示する顧客データ）と、第２のマスタデータ（例えば、図２に例示する商品データ）と、ファクトデータ（例えば、図３に例示する購買実績データ）とを含む。第１のマスタデータの属性のうち、特定の属性に関しては、一部のレコードで値が未知である。なお、非特許文献２に記載された技術では、入力されるデータにおいて、値が定まっていない属性が存在することを許容しない。すなわち、非特許文献２に記載された技術では、属性の欠損値を許容しない。従って、一部のレコードで特定の属性の値が未知であるという点は、非特許文献２に記載された技術と異なる。
【００４７】
クラスタリングの設定値は、例えば、第１ＩＤのクラスタ数の最大値、第２ＩＤのクラスタ数の最大値、予測モデルを生成するマスタデータの指定、予測モデルで説明変数とする属性、予測モデルで目的変数とする属性、および予測モデルの種類を含む。
【００４８】
予測モデルは、値が定まっていない特定の属性の値を予測するために用いられる。従って、本例では、予測モデルを生成するマスタデータとして、第１のマスタデータが指定される。予測モデルで目的変数とする属性として、その特定の属性（例えば、図１に示す「年間のエステティックサロンの利用回数」）が指定される。
【００４９】
予測モデル種類には、例えば、サポートベクタマシン、サポートベクタ回帰、ロジスティック回帰等がある。予測モデルの種類として、各種予測モデルのうち、いずれかが指定される。
【００５０】
初期化部３１は、データ入力部２から、第１のマスタデータと、第２のマスタデータと、ファクトデータと、クラスタリングの設定値を受け取り、それらを記憶部４に記憶させる。また、初期化部３１は、クラスタリングに用いる各種パラメータを初期化する。
【００５１】
クラスタリング部３２は、繰り返し処理により、第１ＩＤおよび第２ＩＤの共クラスタリングを実現する。以下、クラスタリング部３２が備える各部について説明する。なお、予測モデルを生成するマスタデータとして、第１のマスタデータが指定されているものとする。
【００５２】
予測モデル学習部３２１は、予測モデルを生成するマスタデータ（第１のマスタデータ）に関するクラスタ毎に（すなわち、第１ＩＤのクラスタ毎に）、目的変数に該当する属性の予測モデルを学習する。
【００５３】
クラスタリングがハードクラスタリングである場合、予測モデル学習部３２１は、クラスタに対応する予測モデルを生成するときに、そのクラスタに所属する第１ＩＤに対応する属性の値を教師データとして利用する。
【００５４】
図７は、予測モデル学習部３２１が学習モデルを生成する際に用いる教師データの説明図である。例えば、ハードクラスタリングにより、図７に示す顧客１，２がクラスタ１のみに所属し、図７に示す顧客３がクラスタ２のみに所属することになったとする。この場合、予測モデル学習部３２１は、顧客１，２に対応する各属性の値を教師データとして、クラスタ１に対応する予測モデルを生成し、顧客３に対応する各属性の値を教師データとして、クラスタ２に対応する予測モデルを生成する。
【００５５】
また、クラスタリングがソフトクラスタリングである場合、予測モデル学習部３２１は、クラスタに対応する予測モデルを生成するときに、未知の値を含まない全てのレコードの属性の値を教師データとして利用する。このとき、予測モデル学習部３２１は、各レコードの属性の値を、各第１ＩＤのそのクラスタへの所属確率によって重み付けし、重み付けした結果を用いて、予測モデルを生成する。従って、そのクラスタへの所属確率が高い第１ＩＤに対応する教師データは、そのクラスタに対応する予測モデル内で強く影響し、そのクラスタへの所属確率が低い第１ＩＤに対応する教師データは、その予測モデル内であまり影響しない。
【００５６】
図７を用いて具体例を説明する。ソフトクラスタリングでは、図７に示す顧客１，２，３はそれぞれの所属確率でクラスタ１に所属する。また、図７に示す顧客１，２，３はそれぞれの所属確率でクラスタ２にも所属する。予測モデル学習部３２１は、クラスタ１に対応する予測モデルを生成する場合、顧客１，２，３の各属性の値を、顧客１，２，３それぞれのクラスタ１への所属確率で重み付けし、重み付けした結果を用いて予測モデルを生成する。クラスタ２に対応する予測モデルを生成する場合も同様である。
【００５７】
クラスタ割り当て部３２２は、それぞれの第１ＩＤおよびそれぞれの第２ＩＤに対して、クラスタ割り当てを行う。クラスタ割り当て部３２２は、第１ＩＤおよび第２ＩＤを共クラスタリングしていると言うこともできる。なお、既に説明したように、ハードクラスタリングの結果も、２値の所属確率で表すことができる。また、ハードクラスタリングの結果を導出する過程で、０．０〜１．０の範囲の所属確率を用いてもよい。ここでは、ハードクラスタリングとソフトクラスタリングを区別せずに、所属確率を用いて、クラスタ割り当て部３２２の動作を説明する。
【００５８】
クラスタ割り当て部３２２は、クラスタ割り当てを実行する際、２つの情報を参照する。
【００５９】
１つ目の情報は、ファクトデータである。説明を分かりやすくするために、第１ＩＤが顧客ＩＤであり、第２ＩＤが商品ＩＤである場合を例にして説明する。ある顧客ＩＤがある顧客ＩＤクラスタに所属する確率は、その顧客ＩＤクラスタと関係の強い商品ＩＤクラスタに所属する商品ＩＤによって特定される商品を、その顧客ＩＤによって特定される顧客がどれだけ購入しているかによって定まる。ある商品ＩＤがある商品ＩＤクラスタに所属する確率に関しても同様である。クラスタ割り当て部３２２は、第１ＩＤの各クラスタへの所属確率や、第２ＩＤの各クラスタへの所属確率を求めるときに、ファクトデータを参照する。この動作の詳細については、後述する。
【００６０】
また、２つ目の情報は、予測モデルの精度である。顧客ＩＤクラスタ（第１ＩＤのクラスタ）毎に予測モデルが生成されている。クラスタ割り当て部３２２は、顧客ＩＤクラスタに所属する顧客ＩＤに対応するレコードを、その顧客ＩＤクラスタに対応する予測モデルに適用して、目的変数となる属性の予測値を計算し、その予測値と正解値（レコードに示されている実際の値）との差を計算する。この差が、予測モデルの精度である。クラスタ割り当て部３２２は、この差が小さいほど、着目している顧客ＩＤクラスタに所属している顧客ＩＤの所属確率を高め、この差が大きいほど、着目している顧客ＩＤクラスタに所属している顧客ＩＤの所属確率を低くするように、顧客ＩＤの所属確率を補正する。クラスタ割り当て部３２２は、この補正を、各顧客ＩＤクラスタに対して行う。この動作によって、予測モデルの精度がよくなるように、クラスタリング結果が調節される。
【００６１】
クラスタ情報算出部３２３は、各第１ＩＤおよび各第２ＩＤのクラスタ割り当て（所属確率）を参照し、第１ＩＤの各クラスタおよび第２ＩＤの各クラスタのモデル情報を算出し、記憶部４に記憶されている各クラスタのモデル情報を更新する。既に説明したように、クラスタのモデル情報は、そのクラスタに所属するＩＤに対応する属性の値の統計的な性質を表す情報である。例えば、各顧客ＩＤクラスタにおいて、各顧客の年収が正規分布に従うとした場合、各顧客ＩＤクラスタのモデル情報は、正規分布における平均値および分散値となる。
【００６２】
クラスタのモデル情報は、クラスタ割り当ての決定と、後述するクラスタ関係の計算に利用される。
【００６３】
クラスタ関係算出部３２４は、第１ＩＤの各クラスタと、第２ＩＤの各クラスタとの間のクラスタ関係を算出し、記憶部４に記憶されているクラスタ関係を更新する。クラスタ関係とは、クラスタの組み合わせの性質を表す値である。以下、クラスタ関係が０〜１の範囲の値である場合を例にして説明する。クラスタ関係算出部３２４は、ファクトデータを基に、第１ＩＤのクラスタと第２ＩＤのクラスタの組み合わせ毎に、クラスタ関係を算出する。従って、第１のクラスタの数と第２ＩＤのクラスタの数との積だけ、クラスタ関係が算出される。図８は、クラスタ関係の例を示す模式図である。図８に示す例では、顧客ＩＤクラスタの数が２であり、商品ＩＤクラスタの数が２であるので、クラスタ関係の数は、２＊２＝４となっている。なお、図８に示す「美容好き」、「美容商品」等は、クラスタの内容に基づいて、システム管理者が便宜的に付加したラベルであるものとする。
【００６４】
第１ＩＤのクラスタに所属している第１ＩＤと、第２ＩＤのクラスタに所属している第２ＩＤとの関係性が強い程、その２つのクラスタの組み合わせにおけるクラスタ関係は大きな値となる。例えば、顧客ＩＤクラスタに所属している顧客ＩＤによって特定される顧客と、商品ＩＤクラスタに所属している商品ＩＤによって特定される商品との関係性が強い程、クラスタ関係は“１”に近づき、その関係性が弱いほど、クラスタ関係は“０”に近づく。図８に示す例において、顧客ＩＤクラスタ１には、美容好きの顧客の顧客ＩＤが多く所属している。また、顧客ＩＤクラスタ２には、酒好きの顧客の顧客ＩＤが多く所属している。また、商品ＩＤクラスタ１には、美容商品の商品ＩＤが多く所属している。例えば、顧客ＩＤクラスタ１と商品ＩＤクラスタ１との間のクラスタ関係は０．９であり、１に近い値である。このことは、顧客ＩＤクラスタ１に所属している顧客ＩＤによって特定される顧客が、商品ＩＤクラスタ１に所属している商品ＩＤによって特定される商品を購入することが多いということ（関係性が強いこと）を表している。また、顧客ＩＤクラスタ２と商品ＩＤクラスタ１との間のクラスタ関係は０．１であり、０に近い値である。このことは、顧客ＩＤクラスタ２に所属している顧客ＩＤによって特定される顧客が、商品ＩＤクラスタ１に所属している商品ＩＤによって特定される商品を購入することが少ないということ（関係性が弱いこと）を表している。
【００６５】
クラスタ関係算出部３２４は、以下に示す式（Ａ）を計算することによって、クラスタ関係を算出すればよい。
【００６６】
【数１】
2017159402.tif 000003
【００６７】
式（Ａ）において、ｋ１は、第１ＩＤのクラスタのＩＤを表し、ｋ２は、第２ＩＤのクラスタのＩＤを表す。また、ａ［１］ｋ１ｋ２、ｂ［１］ｋ１ｋ２は、クラスタ関係の計算に用いるパラメータである。ａ［１］ｋ１ｋ２が大きいほど、ｋ１とｋ２の関係は強く、ｂ［１］ｋ１ｋ２が大きいほどｋ１とｋ２の関係は弱い。なお、本明細書の文章内では、数式内で示したハット記号を省略する。
【００６８】
クラスタ関係算出部３２４は、ａ［１］ｋ１ｋ２を、以下に示す式（Ｂ）によって計算すればよい。また、クラスタ関係算出部３２４は、ｂ［１］ｋ１ｋ２を、以下に示す式（Ｃ）によって計算すればよい。
【００６９】
【数２】
2017159402.tif 000004
【００７０】
【数３】
2017159402.tif 000005
【００７１】
式（Ｂ）および式（Ｃ）では、ｄ１が、第１ＩＤの順番を表し、Ｄ（１）が、第１ＩＤの総数を表しているものとする。同様に、ｄ２が、第２ＩＤの順番を表し、Ｄ（２）が、第２ＩＤの総数を表しているものとする。式（Ｂ）および式（Ｃ）において、φｄ１，ｋ２（１）は、ｄ１番目の第１ＩＤがクラスタｋ１に所属している確率である。φｄ２，ｋ２（２）は、ｄ２番目の第２ＩＤがクラスタｋ２に所属している確率である。ｘｄ１ｄ２は、ｄ１とｄ２との組み合わせに応じたファクトデータ内の値である。
【００７２】
ここで、前述のクラスタ割り当て部３２２がファクトデータを参照して、ＩＤのクラスタへの所属確率を求める処理について、詳細に説明する。ここでは、顧客ＩＤ（第１ＩＤ）を変数ｉで表す。また、商品ＩＤ（第２ＩＤ）を変数ｊで表す。また、顧客ＩＤクラスタのＩＤを変数ｋ１で表す。商品ＩＤクラスタのＩＤを変数ｋ２で表す。
【００７３】
また、図９に例示するクラスタ関係が得られているとする。ｋ１＝１であるクラスタは、甘党の顧客の顧客ＩＤを多く含んでいるものとする。ｋ１＝２であるクラスタは、辛党の顧客の顧客ＩＤを多く含んでいるものとする。ｋ２＝１であるクラスタは、甘い商品の商品ＩＤを多く含んでいるものとする。ｋ２＝２であるクラスタは、辛い商品の商品ＩＤを多く含んでいるものとする。ｋ２＝３であるクラスタは、苦い商品の商品ＩＤを多く含んでいるものとする。また、図９に示す「甘党」、「甘い」等は、クラスタの内容に基づいて、システム管理者が便宜的に付加したラベルであるものとする。
【００７４】
また、図１０に例示するファクトデータが与えられているとする。
【００７５】
ここでは、ｉ＝１である顧客が、ｋ１＝２であるクラスタに所属する確率をクラスタ割り当て部３２２が算出する場合を例にして説明する。また、ｉがクラスタｋ１に所属する確率をｑ（ｚｉ（１）＝ｋ１）と記す。よって、ｉ＝１である顧客が、ｋ１＝２であるクラスタに所属する確率は、ｑ（ｚ１（１）＝２）と表される。また、ｊがクラスタｋ２に所属する確率をｑ（ｚｊ（２）＝ｋ２）と記す。
【００７６】
クラスタ割り当て部３２２は、以下に示す式（Ｄ）の計算により、ｑ（ｚ１（１）＝２）を求める。
【００７７】
【数４】
2017159402.tif 000006
【００７８】
式（Ｄ）において、ｘは、添え字のｉ，ｊの組み合わせに対応するファクトデータ（図１０参照）内の値である。従って、図１０に示す例では、ｘは、１または０である。また、θは、添え字のｋ１，ｋ２の組み合わせに対応するクラスタ関係である。
【００７９】
Ｅｑは、確率の期待値を求める演算であり、Ｅｑ［ｌｏｇｐ（ｘｉ＝１，ｊ）｜θｋ１＝２，ｋ２］は、ｊがクラスタｋ２に所属しているものとした場合に、顧客ｉ＝１がその商品ｊを買う確率の期待値である。
【００８０】
クラスタ割り当て部３２２は、同様の計算により、着目している顧客ＩＤが、他の顧客ＩＤクラスタに所属している確率も求める。ハードクラスタリングの場合、クラスタ割り当て部３２２は、その結果得られた所属確率が最高となっている顧客ＩＤクラスタのみに、着目している顧客ＩＤが所属していると決定すればよい。クラスタ割り当て部３２２は、他の顧客ＩＤに関しても、各顧客ＩＤクラスタに所属している確率を計算する。
【００８１】
また、クラスタ割り当て部３２２は、それぞれの商品ＩＤがそれぞれの商品ＩＤクラスタに所属している確率も、同様の計算によって求める。
【００８２】
また、上記の所属確率の算出の後に、クラスタ割り当て部３２２は、予測モデルを用いた所属確率の補正を実行すればよい。
【００８３】
クラスタリング部３２は、予測モデル学習部３２１による処理、クラスタ割り当て部３２２による処理、クラスタ情報算出部３２３による処理、および、クラスタ関係算出部３２４による処理を繰り返す。
【００８４】
終了判定部３２５は、上記の一連の処理の繰り返しを終了するか否かを判定する。終了判定部３２５は、終了条件が満たされた場合に、上記の一連の処理の繰り返しを終了すると判定し、終了条件が満たされていなければ、繰り返しを続けると判定する。以下、終了条件の例を説明する。
【００８５】
例えば、上記の一連の処理の繰り返し回数が、クラスタリングの設定値の中で定められていてもよい。終了判定部３２５は、上記の一連の処理の繰り返し回数が定められた回数に達したときに、繰り返しを終了すると判定してもよい。
【００８６】
また、例えば、クラスタ割り当て部３２２が、クラスタ割り当ての決定を実行するときに、クラスタリングの精度を導出し、そのクラスタリングの精度を記憶部４に記憶させてもよい。終了判定部３２５は、前回に導出されたクラスタリングの精度から、直近に導出されたクラスタリングの精度への変化量を計算し、その変化量が小さければ（具体的には、変化量の絶対値が所定の閾値以下であれば）、繰り返しを終了すると判定してもよい。
【００８７】
なお、ソフトクラスタリングの場合、クラスタ割り当て部３２２は、クラスタリングの精度として、例えば、クラスタリングのモデルの尤度を計算してもよい。また、ハードクラスタリングの場合、クラスタ割り当て部３２２は、クラスタリングの精度として、例えば、Pseudo Fを計算してもよい。
【００８８】
記憶部４は、データ入力部２が取得した種々のデータや、処理部３の処理で得られた種々のデータを記憶する記憶装置である。記憶部４は、計算機の主記憶装置であっても、二次記憶装置であってもよい。記憶部４が二次記憶装置である場合には、クラスタリング部３２は、処理を途中で中断し、その後、再開することができる。また、記憶部４が、主記憶装置と二次記憶装置とに分かれた構成であって、処理部３は、データの一部を主記憶装置に記憶させ、他のデータを二次記憶装置に記憶させてもよい。
【００８９】
結果出力部５は、記憶部４に記憶された、クラスタリング部３２による処理の結果を出力する。具体的には、結果出力部５は、処理の結果として、予測モデル、クラスタ割り当て、クラスタ関係、クラスタのモデル情報の全部または一部を出力する。クラスタ割り当ては、個々の第１ＩＤの各クラスタへの所属確率および個々の第２ＩＤの各クラスタへの所属確率である。また、ハードクラスタリングの場合、クラスタ割り当ては、個々の第１ＩＤがどのクラスタに所属しているかを直接示す情報、および個々の第２ＩＤがどのクラスタに所属しているかを直接示す情報であってもよい。
【００９０】
また、結果出力部５が結果を出力する態様は、特に限定されない。例えば、結果出力部５は、結果を他の装置に出力してもよい。また、例えば、結果出力部５は、結果をディスプレイ装置に表示させてもよい。
【００９１】
予測モデル学習部３２１、クラスタ割り当て部３２２、クラスタ情報算出部３２３、クラスタ関係算出部３２４および終了判定部３２５を含むクラスタリング部３２、並びに、データ入力部２、初期化部３１、結果出力部５は、例えば、プログラム（共クラスタリングプログラム）に従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵは、例えば、コンピュータのプログラム記憶装置（図６において図示略）等のプログラム記録媒体からプログラムを読み込み、そのプログラムに従って、データ入力部２、初期化部３１、クラスタリング部３２、および結果出力部５として、動作すればよい。
【００９２】
また、図６に示した共クラスタリングシステム１内の各要素が、それぞれ専用のハードウェアで実現されていてもよい。
【００９３】
また、本発明のシステム１は、２つ以上の物理的に分離した装置が有線または無線で接続されている構成であってもよい。この点は、後述の各実施形態においても同様である。
【００９４】
次に、第１の実施形態の処理経過を説明する。図１１は、第１の実施形態の処理経過の例を示すフローチャートである。
【００９５】
データ入力部２は、共クラスタリングに用いられるデータ群（第１のマスタデータ、第２のマスタデータおよびファクトデータ）と、クラスタリングの設定値とを取得する（ステップＳ１）。
【００９６】
初期化部３１は、第１のマスタデータ、第２のマスタデータおよびファクトデータと、クラスタリングの設定値を記憶部４に記憶させる。また、初期化部３１は、「クラスタのモデル情報」、「クラスタ割り当て」および「クラスタ関係」に対して初期値を設定し、その初期値を記憶部４に記憶させる（ステップＳ２）。
【００９７】
ステップＳ２における初期値は任意であってもよい。あるいは、初期化部３１は、各初期値を、例えば、以下に示すように導出してもよい。
【００９８】
初期化部３１は、第１のマスタデータにおける属性の値の平均値を算出し、その平均値を、第１ＩＤの全てのクラスタにおけるクラスタのモデル情報として定めてもよい。同様に、初期化部３１は、第２のマスタデータにおける属性の値の平均値を算出し、その平均値を、第２ＩＤの全てのクラスタにおけるクラスタのモデル情報として定めてもよい。
【００９９】
初期化部３１は、クラスタ割り当ての初期値を以下のように定めてもよい。ハードクラスタリングの場合、初期化部３１は、各第１ＩＤをいずれかのクラスタにランダムに割り当て、同様に、各第２ＩＤもいずれかのクラスタにランダムに割り当てる。また、ソフトクラスタリングの場合、初期化部３１は、個々の第１ＩＤに対して、各クラスタへの所属確率を均一に定める。例えば、第１ＩＤのクラスタの数が２つである場合、各第１ＩＤの１番目のクラスタへの所属確率および２番目の所属確率をそれぞれ０．５に定める。同様に、初期化部３１は、個々の第２ＩＤに対して、各クラスタへの所属確率を均一に定める。
【０１００】
初期化部３１は、第１ＩＤのクラスタと第２ＩＤのクラスタの組み合わせ毎に、クラスタ関係を同じ値（例えば、０．５等）に定めてもよい。
【０１０１】
ステップＳ２の後、クラスタリング部３２は、終了条件が満たされるまで、ステップＳ３〜Ｓ７の処理を繰り返す。以下、ステップＳ３〜Ｓ７の処理を説明する。
【０１０２】
予測モデル学習部３２１は、記憶部４に記憶されている情報を参照し、第１ＩＤのクラスタ毎に、第１のマスタデータ内の一部のレコードで値が未知となっている属性を目的変数とする予測モデルを学習する。そして、予測モデル学習部３２１は、学習によって得た各予測モデルを記憶部４に記憶させる（ステップＳ３）。
【０１０３】
クラスタ割り当て部３２２は、記憶部４に記憶されている各第１ＩＤのクラスタ割り当ておよび第２ＩＤのクラスタ割り当てを更新する（ステップＳ４）。ステップＳ４において、クラスタ割り当て部３２２は、記憶部４に記憶されているクラスタ割り当て、ファクトデータ、およびクラスタ関係を読み込み、それらに基づいて、各第１ＩＤのクラスタ割り当ておよび第２ＩＤのクラスタ割り当てを新たに定める。
【０１０４】
また、予測モデルが生成されている各クラスタに関しては、クラスタ割り当て部３２２は、クラスタに対応する予測モデルを用いて目的変数となる属性の予測値を計算し、その予測値と正解値との差（予測モデルの精度）を計算する。クラスタ割り当て部３２２は、この差が小さいほど、着目しているクラスタに所属している第１ＩＤの所属確率を高め、この差が大きいほど、着目しているクラスタに所属している第１ＩＤの所属確率を低くするように、第１ＩＤの所属確率を補正する。クラスタ割り当て部３２２は、予測モデルが生成されていない各クラスタ（すなわち、第２ＩＤの各クラスタ）に対しては、この処理を行わなくてよい。
【０１０５】
クラスタ割り当て部３２２は、更新後の各第１ＩＤのクラスタ割り当ておよび各第２ＩＤのクラスタ割り当てを記憶部４に記憶させる。
【０１０６】
次に、クラスタ情報算出部３２３は、第１のマスタデータ、および各第１ＩＤのクラスタの割り当てを参照し、第１ＩＤのクラスタ毎に、クラスタに属する第１ＩＤに対応する属性の値を用いて、クラスタのモデル情報を計算し直す。同様に、クラスタ情報算出部３２３は、第２のマスタデータ、および各第２ＩＤのクラスタ割り当てを参照し、第２ＩＤのクラスタ毎に、クラスタに属する第２ＩＤに対応する属性の値を用いて、クラスタのモデル情報を計算し直す。クラスタ情報算出部３２３は、記憶部４に記憶されているクラスタのモデル情報を、新たに計算したクラスタのモデル情報で更新する（ステップＳ５）。
【０１０７】
次に、クラスタ関係算出部３２４は、各第１ＩＤのクラスタ割り当ておよび各第２ＩＤのクラスタ割り当て、並びにファクトデータを参照し、第１ＩＤのクラスタと第２ＩＤのクラスタの組み合わせ毎に、クラスタ関係を計算し直す。クラスタ関係算出部３２４は、記憶部４に記憶されているクラスタ関係を、新たに計算したクラスタ関係で更新する（ステップＳ６）。
【０１０８】
次に、終了判定部３２５は、終了条件が満たされたか否かを判定する（ステップＳ７）。終了条件が満たされていない場合（ステップＳ７のＮｏ）、終了判定部３２５は、ステップＳ３〜Ｓ７を繰り返すと判定する。そして、クラスタリング部３２は、ステップＳ３〜Ｓ７を再度、実行する。
【０１０９】
また、終了条件が満たされた場合（ステップＳ７のＹｅｓ）、終了判定部３２５は、ステップＳ３〜Ｓ７の繰り返しを終了すると判定する。この場合、結果出力部５は、その時点におけるクラスタリング部３２による処理の結果を出力し、共クラスタリングシステム１の処理が終了する。
【０１１０】
本実施形態によれば、クラスタ割り当て部３２２は、ファクトデータを参照して、第１ＩＤおよび第２ＩＤのクラスタ割り当てを行う。換言すれば、クラスタ割り当て部３２２は、ファクトデータを参照して、第１ＩＤおよび第２ＩＤの共クラスタリングを実行する。そして、予測モデル学習部３２１は、クラスタ毎に予測モデルを生成する。この結果、クラスタ毎に異なる予測モデルが得られる。また、ファクトデータは、第１ＩＤと第２ＩＤとの関係を表している。例えば、ファクトデータは、「顧客１」は「商品１」を購入したことがあるが、「商品２」は購入したとことがない等の関係を表している。従って、本実施形態における第１ＩＤのクラスタリング結果は、単に第１のマスタデータ内の属性の値に基づいて第１ＩＤをクラスタリングした場合のクラスタリング結果と比較して、より適切なクラスタが得られる。第２ＩＤのクラスタリング結果に関しても同様である。そのような、より適切なクラスタ毎に個別に予測モデルが得られるので、クラスタ毎の予測モデルの予測精度をより向上させることができる。
【０１１１】
また、本実施形態では、予測モデル学習部３２１は、クラスタの予測精度に応じて、クラスタに所属するＩＤの所属確率を調節する。このことからも、より適切なクラスタが得られる。よって、クラスタ毎の予測モデルの予測精度をより向上させることができる。
【０１１２】
また、上記の説明では、図１に例示する顧客データにおいて、一部のレコードで特定の属性の値が未知である場合を例にして説明した。顧客データ内では、各属性の値が全て定まっていて、図２に例示する商品データにおいて、一部のレコードで特定の属性の値が未知となっていてもよい。この場合、商品データを第１のマスタデータとし、顧客データを第２のマスタデータとして、共クラスタリングシステム１は、第１の実施形態と同様の処理を行えばよい。
【０１１３】
また、第１のマスタデータと第２のマスタデータそれぞれにおいて、一部のレコードで特定の属性の値が未知となっていてもよい。この場合、予測モデル学習部３２１は、第１ＩＤのクラスタ毎に予測モデルを学習し、第２ＩＤのクラスタ毎に予測モデルを学習すればよい。また、クラスタ割り当て部３２２は、第２ＩＤに関しても、各クラスタへの所属確率を定める際に、第２ＩＤのクラスタに対応する予測モデルの精度を用いればよい。
【０１１４】
また、第１のマスタデータ、第２のマスタデータおよびファクトデータに基づいて予測モデルを生成する方法として、上述の第１の実施形態による方法とは別に、以下の方法が考えられる。具体的には、第１のマスタデータの各レコードに、第２のマスタデータおよびファクトデータが示す情報を追加することで、第１のマスタデータ、第２のマスタデータおよびファクトデータを統合し、クラスタリングは行わずに、統合後のデータに基づいて予測モデルを学習する方法が考えられる。しかし、この方法で得られる予測モデルの予測精度は、上述の第１の実施形態で得られる予測モデルの予測精度よりも低い。この点について、具体的に説明する。
【０１１５】
図１２は、図１、図２に示す第１のマスタデータ、第２のマスタデータ、および図３に示すファクトデータを統合した結果の例を示す説明図である。「炭酸水」、「焼酎」等の商品名に該当する列には、ファクトデータ（図３参照）に基づいて“１”または“０”が格納される。“１”は顧客が商品を購入したことがあることを意味し、“０”は顧客が商品を購入したことがないことを意味する。また、図１２では、「炭酸水」、「焼酎」等の商品名の隣の列には、その商品の価格が格納される場合を例示している。
【０１１６】
図１２に示す統合結果は、顧客ＩＤ以外の各列は顧客ＩＤの属性となる形式で表されている。このことは、統合前のマスタデータが示していた一部の情報が失われることを意味する。例えば、図１２に示す例では、炭酸水の価格は、本来、顧客ＩＤの属性ではないが、形式的に、顧客ＩＤの属性として表される。そして、炭酸水の価格が顧客ＩＤの属性として扱われるため、「炭酸水」の価格が「１５０」であるという、統合前の第２のマスタデータ（図２参照）で示されていた情報が、失われることになる。
【０１１７】
従って、図１２に示す統合結果に基づいて予測モデルを生成したとしても、その予測モデルの予測精度は、上述の第１の実施形態で得られる予測モデルの予測精度よりも低い。
【０１１８】
実施形態２．
本発明の第２の実施形態では、共クラスタリングを実行し、第１ＩＤのクラスタ毎に予測モデルを生成し、さらに、予測モデルによる予測を実行する予測システムについて説明する。
【０１１９】
本発明の第２の実施形態の予測システムにも、第１のマスタデータ、第２のマスタデータおよびファクトデータが入力される。第２の実施形態における第１のマスタデータ、第２のマスタデータおよびファクトデータはそれぞれ、第１の実施形態における第１のマスタデータ、第２のマスタデータおよびファクトデータと同様である。
【０１２０】
第１のマスタデータにおいて、第１ＩＤに対応する属性のうち、特定の属性に関しては、一部のレコードで値が未知である。
【０１２１】
また、第２の実施形態では、第２のマスタデータでは、各属性の値は全て定められているものとする。
【０１２２】
また、第２の実施形態では、第１ＩＤ（第１のマスタデータのレコードのＩＤ）が顧客ＩＤであり、第１のマスタデータは、顧客と、その顧客の属性との対応関係を表しているものとする。また、第２ＩＤ（第２のマスタデータのレコードのＩＤ）が商品ＩＤであり、第２のマスタデータは、商品と、その商品の属性との対応関係を表しているものとする。
【０１２３】
なお、顧客ＩＤは、顧客を表しているので、顧客ＩＤを単に顧客と称してもよい。同様に、商品ＩＤは、商品を表しているので、商品ＩＤを単に商品と称してもよい。
【０１２４】
以下、第２の実施形態では、図１３に例示する第１のマスタデータ、および図１４に例示する第２のマスタデータを参照して説明する。第１のマスタデータでは、図１３に示す属性以外の属性が示されていてもよい。第２のマスタデータでは、図１４に示す属性以外の属性が示されていてもよい。
【０１２５】
ファクトデータは、第１ＩＤ（顧客ＩＤ）と第２ＩＤ（商品ＩＤ）との関係を示すデータである。第２の実施形態では、ファクトデータは、顧客が商品を購入した実績があるか否かという関係を示しているものとする。図３に示す場合と同様に、顧客が商品を購入した実績があることを“１”で示し、実績がないことを“０”で示すものとする。
【０１２６】
以下、第２の実施形態では、図１５に例示するファクトデータを参照して説明する。
【０１２７】
図１６は、本発明の第２の実施形態の予測システムの例を示す機能ブロック図である。本発明の第２の実施形態の予測システム５００は、共クラスタリング部５０１と、予測モデル生成部５０２と、予測部５０３とを備える。
【０１２８】
予測システム５００には、第１のマスタデータ、第２のマスタデータおよびファクトデータが入力される。
【０１２９】
共クラスタリング部５０１は、第１のマスタデータ、第２のマスタデータおよびファクトデータに基づいて、第１ＩＤ（顧客ＩＤ）および第２ＩＤ（商品ＩＤ）を共クラスタリングする。共クラスタリング部５０１は、第１のマスタデータ、第２のマスタデータおよびファクトデータに基づいて、顧客および商品を共クラスタリングすると言うこともできる。
【０１３０】
共クラスタリング部５０１が第１のマスタデータ、第２のマスタデータおよびファクトデータに基づいて顧客ＩＤおよび商品ＩＤを共クラスタリングする方法は、公知の共クラスタリング方法でよい。また、共クラスタリング部５０１は、共クラスタリングとして、ソフトクラスタリングを実行しても、ハードクラスタリングを実行してもよい。
【０１３１】
第１の実施形態では、所定の条件が満たされたと判定されるまで、予測モデルの生成と、共クラスタリング処理を繰り返す（より具体的には、ステップＳ３〜Ｓ７の処理を繰り返す）処理を示したが、第２の実施形態では、そのような繰り返しを行わない場合を例にして説明する。従って、第２の実施形態では、後述の予測モデル生成部５０２は、共クラスタリング部５０１による顧客ＩＤおよび商品ＩＤの共クラスタリングの完了後に、予測モデルの生成を行う。
【０１３２】
予測モデル生成部５０２は、共クラスタリング部５０１による共クラスタリグが完了すると、顧客ＩＤのクラスタ毎に、予測モデルを生成する。
【０１３３】
このとき、予測モデル生成部５０２は、一部のレコードで値が未知となっている第１のマスタデータ内の属性を目的変数とする予測モデルを生成する。例えば、予測モデル生成部５０２は、図１３に示す「年間のエステティックサロンの利用回数」を目的変数とする予測モデルを生成する。
【０１３４】
また、予測モデル生成部５０２は、未知の値がない第１のマスタデータ内の属性の一部または全部を説明変数とする予測モデルを生成する。例えば、予測モデル生成部５０２は、図１３に示す「年齢」や「年収」等を説明変数とする予測モデルを生成する。予測モデル生成部５０２は、例えば、「年齢」のみ（あるいは、「年収」のみ）を説明変数とする予測モデルを生成してもよい。
【０１３５】
さらに、予測モデル生成部５０２は、第１のマスタデータ内の属性だけでなく、第２のマスタデータ内の属性の値から算出される集約値を説明変数として用いてもよい。ただし、予測モデル生成部５０２は、第２のマスタデータ内の属性の値から算出される集約値を説明変数として用いる場合、ファクトデータによって顧客ＩＤとの関連があると判定される第２のマスタデータ内の各レコードにおける属性の値の統計量を説明変数とする。
【０１３６】
「ファクトデータによって顧客ＩＤとの関連があると判定される第２のマスタデータ内の各レコードにおける属性の値の統計量」の例として、例えば、「顧客が購入した商品の価格のうちの最大値」、「顧客が購入した商品の価格の平均値」等が挙げられるが、これらに限定されない。上記の例において、「顧客が購入した商品」は、ファクトデータによって顧客ＩＤとの関連があると判定される第２のマスタデータ内のレコードに該当する。予測モデル生成部５０２は、そのようなレコードにおける価格の統計量（例えば、最大値、平均値等）を説明変数として用いてもよい。以下、「顧客が購入した商品の価格のうちの最大値」を説明変数として用いる場合を例にして説明する。
【０１３７】
予測モデル生成部５０２は、説明変数の値および目的変数の値を特定可能な顧客ＩＤに着目して、説明変数の値および目的変数の値を特定し、それらの値を教師データとして用いて機械学習を実行することによって、予測モデルを生成すればよい。予測モデル生成部５０２は、この処理をクラスタ毎に行えばよい。
【０１３８】
例えば、図１３に示す「顧客３」に対応する目的変数（年間のエステティックサロンの利用回数）の値は未知であるので、「顧客３」のレコードは教師データとして用いられない。
【０１３９】
一方、図１３に示す「顧客１」や「顧客２」に関しては、説明変数および目的変数を特定可能である。例えば、「顧客１」や「顧客２」の「年齢」、「年収」等の値、および「年間のエステティックサロンの利用回数」は、第１のマスタデータから特定可能である。さらに、ファクトデータ（図１５参照）によって、予測モデル生成部５０２は、「顧客１」が購入した商品が「炭酸飲料Ｐ」のみであると判定し、第２のマスタテーブルの「炭酸飲料Ｐ」のレコードにおける属性の統計量として、“１３０”を特定することできる。すなわち、予測モデル生成部５０２は、ファクトデータを参照することによって、顧客１が購入した商品の価格のうちの最大値を特定することができる。同様に、ファクトデータ（図１５参照）によって、予測モデル生成部５０２は、「顧客２」が購入した商品が「菓子１」および「炭酸飲料Ｐ」であると判定し、第２のマスタテーブルの「菓子１」のレコードおよび「炭酸飲料Ｐ」のレコードにおける属性の統計量として、“１３０”を特定することできる。すなわち、予測モデル生成部５０２は、ファクトデータを参照することによって、顧客２が購入した商品の価格のうちの最大値を特定することができる。従って、「顧客１」や「顧客２」に関するデータは、教師データとして用いることができる。
【０１４０】
なお、共クラスタリング部５０１がソフトクラスタリングを実行した場合、教師データの値を、顧客ＩＤが各クラスタに所属する所属確率に応じて重み付けすればよい。
【０１４１】
予測部５０３は、顧客ＩＤと、目的変数（実施形態では「年間のエステティックサロンの利用回数」という属性）の指定を、例えば、予測システム５００のユーザから受け付ける。すると、予測部５０３は、指定された顧客ＩＤに対応する目的変数の値を、予測モデル生成手段５０２が生成した予測モデル用いて予測する。
【０１４２】
共クラスタリング部５０１がハードクラスタリングを実行した場合、予測部５０３は、指定された顧客ＩＤが属するクラスタを特定し、そのクラスタに対応する予測モデルを用いて、その顧客ＩＤに対応する目的変数の値を予測する。
【０１４３】
このとき、予測部５０３は、指定された顧客ＩＤに対する説明変数の値を特定し、その説明変数の値を、指定された顧客ＩＤが属するクラスタに対応する予測モデルに適用することによって、予測値を算出すればよい。例えば、説明変数が「年齢」および「顧客が購入した商品の価格のうちの最大値」であるとする。また、図１３に示す「顧客４」が指定されたとする。予測部５０３は、第１のマスタデータから「顧客４」の年齢“５０”を特定する。また、予測部５０３は、ファクトデータ（図１５参照）によって、「顧客４」が購入した商品が「菓子１」、「炭酸飲料Ｐ」および「炭酸飲料Ｑ」であると判定し、「菓子１」、「炭酸飲料Ｐ」および「炭酸飲料Ｑ」の価格の最大値“１３０”を第２のマスタデータ（図１４参照）から求める。そして、予測部５０３は、各説明変数の値“５０”， “１３０”を、「顧客４」が所属するクラスタに対応する予測モデルに適用すればよい。
【０１４４】
また、共クラスタリング部５０１がソフトクラスタリングを実行した場合、予測部５０３は、顧客ＩＤの個々のクラスタに対応する予測モデル毎に、指定された顧客ＩＤに対応する目的変数の値を予測する。１つの予測モデルに着目して目的変数の値を予測する動作は上記の動作と同様であり、説明を省略する。
【０１４５】
予測部５０３は、個々のクラスタに対応する予測モデル毎に予測値を得た後に、その各予測値を、指定された顧客ＩＤが各クラスタに属する所属確率で重み付け加算し、その結果を目的変数の値として確定する。
【０１４６】
共クラスタリング部５０１、予測モデル生成部５０２および予測部５０３は、例えば、プログラム（予測プログラム）に従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵは、例えば、コンピュータのプログラム記憶装置（図１６において図示略）等の等のプログラム記録媒体からプログラムを読み込み、そのプログラムに従って、共クラスタリング部５０１、予測モデル生成部５０２および予測部５０３として動作すればよい。また、共クラスタリング部５０１、予測モデル生成部５０２および予測部５０３がそれぞれ専用のハードウェアで実現されていてもよい。
【０１４７】
次に、第２の実施形態の処理経過を説明する。図１７は、第２の実施形態の処理経過の例を示すフローチャートである。
【０１４８】
予測システム５００に第１のマスタデータ、第２のマスタデータおよびファクトデータが入力されると、共クラスタリング部５０１は、第１のマスタデータ、第２のマスタデータおよびファクトデータに基づいて、顧客ＩＤおよび商品ＩＤを共クラスタリングする（ステップＳ１０１）。ステップＳ１０１における共クラスタリングの方法は、公知の共クラスタリング方法でよい。共クラスタリング部５０１は、共クラスタリングの結果得た各クラスタを予測モデル生成部５０２に出力する。
【０１４９】
顧客ＩＤおよび商品ＩＤの共クラスタリングが完了すると、予測モデル生成部５０２は、共クラスタリング部５０１が出力した顧客ＩＤのクラスタ毎に、予測モデルを生成する（ステップＳ１０２）。予測モデル生成部５０２の動作の詳細については、既に説明したので、ここでは説明を省略する。
【０１５０】
ステップＳ１０２の後、予測部５０３は、顧客ＩＤと、目的変数の指定を受け付けると、指定された顧客ＩＤに対応する目的変数の値を、ステップＳ１０２で生成された予測モデルを用いて予測する（ステップＳ１０３）。予測部５０３の動作の詳細については、既に説明したので、ここでは説明を省略する。
【０１５１】
第２の実施形態によれば、共クラスタリング部５０１は、第１のマスタデータ、第２のマスタデータおよびファクトデータに基づいて、顧客ＩＤ（第１ＩＤ）および商品ＩＤ（第２ＩＤ）を共クラスタリングする。従って、顧客ＩＤ、商品ＩＤそれぞれのクラスタリング精度は、第１のマスタデータだけに基づいて顧客ＩＤをクラスタリングする場合や、第２のマスタデータだけに基づいて商品ＩＤをクラスタリングする場合に比べ向上する。
【０１５２】
そのような良好な精度でクラスタリングされた顧客ＩＤのクラスタ毎に、予測モデル生成部５０２は、予測モデルを生成する。従って、予測モデルの精度も良好となり、予測モデルに基づいて得られた目的変数の予測値の精度も高くなる。すなわち、第２の実施形態の予測システムによれば、高い精度で予測を行うことができる。
【０１５３】
また、予測モデル生成部５０２は、第１のマスタデータの属性だけでなく、ファクトデータによって顧客ＩＤとの関連があると判定される第２のマスタデータ内の各レコードにおける属性の値の統計量も、予測モデルの説明変数として用いることが好ましい。そのような統計量も説明変数として用いることで、予測モデルの精度をさらに向上させることができ、その結果、予測モデルに基づいて得られた予測値の精度もさらに向上する。
【０１５４】
実施形態３．
第２の実施形態では、第１の実施形態とは異なり、予測モデルの生成と、共クラスタリング処理との繰り返しをせずに、共クラスタリングが完了した後に予測モデルを生成するシステムを説明した。
【０１５５】
本発明の第３の実施形態の共クラスタリングシステムは、第１の実施形態と同様に、ステップＳ３〜Ｓ７の処理を繰り返すことにより、第１ＩＤおよび第２ＩＤを共クラスタリングするとともに、クラスタに対応する予測モデルを生成する。さらに、本発明の第３の実施形態の共クラスタリングシステムは、テストデータが入力されると、目的変数の値を予測する。
【０１５６】
図１８は、本発明の第３の実施形態の共クラスタリングシステムの例を示す機能ブロック図である。第１の実施形態と同様の要素については、図６と同一の符号を付し、説明を省略する。第３の実施形態の共クラスタリングシステム１は、データ入力部２、処理部３、記憶部４および結果出力部５に加え、さらに、テストデータ入力部６と、予測部７と、予測結果出力部８とを備える。
【０１５７】
以下の説明では、処理部３が、第１の実施形態で説明した処理を完了し、第１ＩＤおよび第２ＩＤがそれぞれクラスタに分類され、第１ＩＤのクラスタ毎に予測モデルが生成されているものとして説明する。
【０１５８】
テストデータ入力部６は、テストデータを取得する。テストデータ入力部６は、例えば、外部の装置にアクセスして、テストデータを取得してもよい。あるいは、テストデータ入力部６は、テストデータが入力される入力インタフェースであってもよい。
【０１５９】
テストデータは、目的変数（例えば、図１に示す第１のマスタデータにおける「年間のエステティックサロンの利用回数」）が未知である新たな第１ＩＤのレコードと、その新たな第１ＩＤと第２のマスタデータ内の第２ＩＤとの関係を示すデータとを含む。
【０１６０】
新たな第１ＩＤのレコードは、例えば、あるサービスに会員登録して間もない会員のレコードである。このレコードにおいて、目的変数に該当する属性以外の属性（例えば、「年齢」、「年収」等）の値は定められているものとする。
【０１６１】
また、その新たな第１ＩＤと第２のマスタデータ内の第２ＩＤとの関係を示すデータの例として、その新たな第１ＩＤによって特定される顧客の商品購買履歴データが挙げられる。新たな第１ＩＤと第２のマスタデータ内の第２ＩＤとの関係を示すデータは、新たな第１ＩＤに関するファクトデータであると言うこともできる。
【０１６２】
予測部７は、テストデータに含まれる新たな第１ＩＤが所属するクラスタを特定する。このとき、予測部７は、新たな第１ＩＤのレコードに含まれる属性の値に基づいて、クラスタを特定してもよい。例えば、予測部７は、新たな第１ＩＤのレコードに含まれる属性の値（例えば、「年齢」、「年収」の値）と、各クラスタに所属する各第１ＩＤのレコードにおけるその属性の値とを比較して、所属している各第１ＩＤの属性の値が、新たな第１ＩＤのレコードに含まれる属性の値に最も近いクラスタを特定してもよい。予測部７は、そのクラスタを、新たな第１ＩＤが所属するクラスタとみなしてよい。
【０１６３】
また、予測部７は、新たな第１ＩＤと第２のマスタデータ内の第２ＩＤとの関係を示すデータ（例えば、商品購買履歴データ）に基づいて、その新たな第１ＩＤによって特定される顧客の商品購買傾向を特定し、同様の商品購買傾向を有する第１ＩＤのクラスタを特定してもよい。予測部７は、そのクラスタを、新たな第１ＩＤが所属するクラスタとみなしてもよい。
【０１６４】
予測部７は、第１ＩＤが所属するクラスタを特定した後、そのクラスタに対応する予測モデルに、新たな第１ＩＤのレコードに含まれる属性の値を適用することによって、新たな第１ＩＤに対応する目的変数の値を予測する。
【０１６５】
上記の説明では、予測部７が、新たな第１ＩＤが所属するクラスタを特定する場合を例にして説明した。予測部７は、第１ＩＤのクラスタ毎に、新たな第１ＩＤがクラスタに所属する所属確率を求めてもよい。例えば、予測部７は、新たな第１ＩＤのレコードに含まれる属性の値（例えば、「年齢」、「年収」の値）と、各クラスタに所属する各第１ＩＤのレコードにおけるその属性の値とを比較して、クラスタ毎に、クラスタに所属している各第１ＩＤの属性の値と、新たな第１ＩＤのレコードに含まれる属性の値との近さの程度に応じて、新たな第１ＩＤの各クラスタへの所属確率を求めてもよい。
【０１６６】
また、予測部７は、新たな第１ＩＤと第２のマスタデータ内の第２ＩＤとの関係を示すデータ（例えば、商品購買履歴データ）に基づいて、その新たな第１ＩＤによって特定される顧客の商品購買傾向を特定し、その商品購買傾向と、第１ＩＤのクラスタ毎の商品購買傾向との近さの程度に応じて、新たな第１ＩＤの各クラスタへの所属確率を求めてもよい。
【０１６７】
新たな第１ＩＤの各クラスタへの所属確率を求めた場合には、予測部７は、第１ＩＤの各クラスタに対応する予測モデル毎に、新たな第１ＩＤのレコードに含まれる属性の値を適用し、目的変数の値を予測する。さらに、予測部７は、個々のクラスタに対応する予測モデル毎に予測値を得た後に、その各予測値を、新たな第１ＩＤの各クラスタへの所属確率で重み付け加算し、その結果を目的変数の値として確定してもよい。
【０１６８】
予測結果出力部８は、予測部７が予測した目的変数の値を出力する。予測結果出力部８が目的変数の予測値を出力する態様は、特に限定されない。例えば、予測結果出力部８は、目的変数の予測値を他の装置に出力してもよい。また、例えば、予測結果出力部８は、目的変数の予測値をディスプレイ装置に表示させてもよい。
【０１６９】
テストデータ入力部６、予測部７および予測結果出力部８も、例えば、プログラム（共クラスタリングプログラム）に従って動作するコンピュータのＣＰＵによって実現される。
【０１７０】
本実施形態によれば、与えられたテストデータにおける未知の値を予測することができる。
【０１７１】
［具体例］
以下に、第１の実施形態の具体例を示す。以下に示す具体例では、マスタデータをデータセットと記す場合がある。また、第１のマスタデータを“データセット１”と記し、第２のマスタデータを“データセット２”と記す場合がある。また、ファクトデータを関係データと記す場合がある。
【０１７２】
以下に示す具体例で示す数式で用いる記号等の意味を、以下に示す表にまとめる。
【０１７３】
【表１】
2017159402.tif 000007
【０１７４】
【表２】
2017159402.tif 000008
【０１７５】
以下に示す具体例では、無限混合ベイズモデルを用いた場合の変分ベイズ法による推論アルゴリズムを記載する。また、第１の実施形態等で例示した場合と同様に、第１のマスタデータ（データセット１）が、顧客に関するマスタデータであり、第２のマスタデータ（データセット２）が、商品に関するマスタデータであるものとする。また、第１のマスタデータに、一部のレコードで値が未知となっている属性が存在しているものとする。
【０１７６】
ｄ１番目の顧客（顧客ＩＤ）がクラスタｋ１に所属する確率は、以下に示す式（１）で表される。
【０１７７】
【数５】
2017159402.tif 000009
【０１７８】
ｄ２番目の商品（商品ＩＤ）がクラスタｋ２に所属する確率は、以下に示す式（２）で表される。
【０１７９】
【数６】
2017159402.tif 000010
【０１８０】
なお、Ψは、ディガンマ関数である。ρは、システム管理者が設定可能なパラメータであり、ρには、０〜１の範囲内の値が設定される。ρの値が０に近づくほど、共クラスタリングにおける学習の効果が強くなる。すなわち、予測モデルの精度が向上するようにＩＤのクラスタへの所属確率が決定されやすくなる。
【０１８１】
式（１）内の以下の部分は、ｄ１番目の顧客の属性の値を、クラスタｋ１の予測モデルで予測した際のスコアを表す。予測誤差が小さいほど、このスコアは大きくなる。すなわち、予測誤差が小さいほど、ｄ１番目の顧客がクラスタｋ１に所属する確率は高くなる。
【０１８２】
【数７】
2017159402.tif 000011
【０１８３】
また、データセット１の隠れ変数の生成モデルは、以下に示す式（３）で表される。
【０１８４】
【数８】
2017159402.tif 000012
【０１８５】
また、そのパラメータの変分事後分布は、以下に示す式（４）で表される。
【０１８６】
【数９】
2017159402.tif 000013
【０１８７】
また、そのパラメータの更新式は、以下に示す式（５）、式（６）で表される。
【０１８８】
【数１０】
2017159402.tif 000014
【０１８９】
【数１１】
2017159402.tif 000015
【０１９０】
また、データセット２に関するパラメータの更新式は、以下に示す式（７）、式（８）で表される。
【０１９１】
【数１２】
2017159402.tif 000016
【０１９２】
【数１３】
2017159402.tif 000017
【０１９３】
また、ファクトデータの生成モデルは、以下に示す式（９）で表される。
【０１９４】
【数１４】
2017159402.tif 000018
【０１９５】
また、そのパラメータの変分事後分布は、以下に示す式（１０）で表される。
【０１９６】
【数１５】
2017159402.tif 000019
【０１９７】
また、そのパラメータの更新式は、以下に示す式（１１）、式（１２）で表される。
【０１９８】
【数１６】
2017159402.tif 000020
【０１９９】
【数１７】
2017159402.tif 000021
【０２００】
また、ＳＶＭ（Support Vector Machine）の重みパラメータの変分事後分布は、以下に示す式（１３）で表される。
【０２０１】
【数１８】
2017159402.tif 000022
【０２０２】
また、そのパラメータの更新式は、以下に示す式（１４）で表される。
【０２０３】
【数１９】
2017159402.tif 000023
【０２０４】
また、ＳＶＭの学習問題は、以下に示す式（１５）で表される。
【０２０５】
【数２０】
2017159402.tif 000024
【０２０６】
なお、式（１５）において、μｋ１（１）は、以下に示す式（１６）で表される。
【０２０７】
【数２１】
2017159402.tif 000025
【０２０８】
以下、第１の実施形態の具体例として、上記の式を用いた処理経過の例を示す。図１９、図２０は、第１の実施形態の具体例における処理経過の例を示すフローチャートである。
【０２０９】
まず、データ入力部２がデータを取得する（ステップＳ３００）。
【０２１０】
次に、初期化部３１が、クラスタを初期化する（ステップＳ３０２）。
【０２１１】
次に、予測モデル学習部３２１は、データセット１の各クラスタで式（１５）を解き、パラメータωを取得する（ステップＳ３０４）。
【０２１２】
次に、予測モデル学習部３２１は、データセット１の各クラスタで、式（１４）によりＳＶＭモデルｑ（ηｋ１（１））を更新する（ステップＳ３０６）。
【０２１３】
次に、クラスタ割り当て部３２２は、データセット１の各データのクラスタ割り当てｑ（ｚｄ１（１）＝ｋ１）を式（１）に従って更新する（ステップＳ３０８）。
【０２１４】
次に、クラスタ割り当て部３２２は、データセット２の各データのクラスタ割り当てｑ（ｚｄ２（２）＝ｋ２）を式（２）に従って更新する（ステップＳ３１０）。
【０２１５】
次に、クラスタ情報算出部３２３は、データセット１の各クラスタのモデルｑ（ｖｋ１（１））を式（６）に従って更新する（ステップＳ３１６）。
【０２１６】
次に、クラスタ情報算出部３２３は、データセット２の各クラスタのモデルｑ（ｖｋ２（２））を式（８）に従って更新する（ステップＳ３１８）。
【０２１７】
次に、クラスタ関係算出部３２４は、データセット１，２のクラスタの組み合わせについて、クラスタの関連度ｑ（θｋ１ｋ２［１］）を式（１２）に従って更新する（ステップＳ３２０）。
【０２１８】
次に、終了判定部３２５は、終了条件が満たされたか否かを判定する（ステップＳ３２２）。終了条件が満たされていないと判定された場合（ステップＳ３２２のＮｏ）、ラスタリング部３２は、ステップＳ３０４以降の処理を繰り返す。
【０２１９】
終了条件が満たされたと判定した場合（ステップＳ３２２のＹｅｓ）、結果出力部５は、その時点におけるクラスタリング部３２による処理の結果を出力し、処理を終了する。
【０２２０】
図２１は、本発明の各実施形態に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ１０００は、ＣＰＵ１００１と、主記憶装置１００２と、補助記憶装置１００３と、インタフェース１００４とを備える。
【０２２１】
各実施形態のシステム（第１、第３の実施形態における共クラスタリングシステム、第２の実施形態における予測システム）は、コンピュータ１０００に実装される。各実施形態のシステムの動作は、プログラムの形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、そのプログラムに従って上記の処理を実行する。
【０２２２】
補助記憶装置１００３は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例として、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００がそのプログラムを主記憶装置１００２に展開し、上記の処理を実行してもよい。
【０２２３】
また、プログラムは、前述の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置１００３に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
【０２２４】
また、各装置の各構成要素の一部または全部は、汎用または専用の回路（circuitry ）、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【０２２５】
各装置の各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０２２６】
次に、本発明の概要について説明する。図２２は、本発明の共クラスタリングシステムの概要を示すブロック図である。本発明の共クラスタリングシステムは、共クラスタリング手段７１と、予測モデル生成手段７２と、判定手段７３とを備える。
【０２２７】
共クラスタリング手段７１（例えば、クラスタ割り当て部３２２）は、第１のマスタデータと、第２のマスタデータと、第１のマスタデータ内のレコードのＩＤである第１ＩＤと第２のマスタデータ内のレコードのＩＤである第２ＩＤとの関係を示すファクトデータとに基づいて、第１ＩＤおよび第２ＩＤを共クラスタリングする共クラスタリング処理を実行する。
【０２２８】
予測モデル生成手段７２（例えば、予測モデル学習部３２１）は、少なくとも第１ＩＤのクラスタ毎に予測モデルを生成する予測モデル生成処理を実行する。
【０２２９】
判定手段７３（例えば、終了判定部３２５）は、所定の条件が満たされたか否かを判定する。
【０２３０】
共クラスタリングシステムは、所定の条件が満たされたと判定されるまで、予測モデル生成処理および共クラスタリング処理を繰り返す。
【０２３１】
共クラスタリング手段７１は、１つの第１ＩＤが１つのクラスタに属する所属確率を決定する際、第１ＩＤに対応する目的変数の値を、クラスタに対応する予測モデルを用いて予測し、当該値と実際の値との差が小さいほど、所属確率を高い確率とする。
【０２３２】
そのような構成により、クラスタ毎の予測モデルの予測精度をより向上させることができる。
【０２３３】
また、目的変数が未知である新たな第１ＩＤのレコードと、新たな第１ＩＤと第２のマスタデータ内の第２ＩＤとの関係を示すデータとを含むテストデータが与えられたときに、その目的変数の値を予測する予測手段（例えば、図１８に示す予測部７）を備える構成であってもよい。
【０２３４】
予測手段が、
新たな第１ＩＤのレコードに含まれる属性の値、または、新たな第１ＩＤと第２のマスタデータ内の第２ＩＤとの関係を示すデータを用いることによって、新たな第１ＩＤが属するクラスタを特定し、
そのクラスタに対応する予測モデルに、新たな第１ＩＤのレコードを適用することによって目的変数の値を予測する構成であってもよい。
【０２３５】
また、予測手段が、
新たな第１ＩＤのレコードに含まれる属性の値、または、新たな第１ＩＤと第２のマスタデータ内の第２ＩＤとの関係を示すデータを用いることによって、新たな第１ＩＤが、第１ＩＤの各クラスタに所属する所属確率を求め、
第１ＩＤの各クラスタに対応する予測モデル毎に、新たな第１ＩＤのレコードを適用することによって目的変数の値を予測し、予測した各値に対して、新たな第１ＩＤが各クラスタに所属する所属確率で重み付け加算した結果を、目的変数の値として確定する構成であってもよい。
【０２３６】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０２３７】
この出願は、２０１６年３月１６日に出願された日本特許出願２０１６−０５２７３７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用の可能性】
【０２３８】
本発明は、２種類の事項それぞれをクラスタリングする共クラスタリングシステムに好適に適用される。
【符号の説明】
【０２３９】
１  共クラスタリングシステム
２  データ入力部
３  処理部
４  記憶部
５  結果出力部
６  テストデータ入力部
７  予測部
８  予測結果出力部
３１  初期化部
３２  クラスタリング部
３２１  予測モデル学習部
３２２  クラスタ割り当て部
３２３  クラスタ情報算出部
３２４  クラスタ関係算出部
３２５  終了判定部
【図１】
2017159402.tif 000026
【図２】
2017159402.tif 000027
【図３】
2017159402.tif 000028
【図４】
2017159402.tif 000029
【図５】
2017159402.tif 000030
【図６】
2017159402.tif 000031
【図７】
2017159402.tif 000032
【図８】
2017159402.tif 000033
【図９】
2017159402.tif 000034
【図１０】
2017159402.tif 000035
【図１１】
2017159402.tif 000036
【図１２】
2017159402.tif 000037
【図１３】
2017159402.tif 000038
【図１４】
2017159402.tif 000039
【図１５】
2017159402.tif 000040
【図１６】
2017159402.tif 000041
【図１７】
2017159402.tif 000042
【図１８】
2017159402.tif 000043
【図１９】
2017159402.tif 000044
【図２０】
2017159402.tif 000045
【図２１】
2017159402.tif 000046
【図２２】
2017159402.tif 000047
【図２３】
2017159402.tif 000048
【図２４】
2017159402.tif 000049
【国際調査報告】
2017159402.tif 000050
2017159402.tif 000051
2017159402.tif 000052
2017159402.tif 000053