(57)【要約】【課題】クラスタリングの最適化を図ること。【解決手段】情報処理装置１００は、第２クラスタｄｓ２に属する複数のデータのいずれかのデータｃ４を選択する。情報処理装置１００は、選択したいずれかのデータｃ４を、新たな第４クラスタｄｓ４の代表点のデータとして設定する。情報処理装置１００は、第２クラスタｄｓ２に分類された複数のデータを、第２クラスタｄｓ２と第４クラスタｄｓ４とに分類し直した場合の目的関数の値が、分類前よりも評価が高いことを示すか否かを判定する。情報処理装置１００は、分類前よりも評価が高いことを示す場合、第２クラスタｄｓ２に分類された複数のデータを、第２クラスタｄｓ２と第４クラスタｄｓ４とに分類し直す。【選択図】図１
2018195089.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
クラスタに属する複数のデータのいずれかのデータを選択し、
選択した前記いずれかのデータを新たなクラスタの代表点のデータに設定し、前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合の、クラスタ数の増加を抑制するペナルティ項を有する目的関数の値が、分類前よりも評価が高いことを示すか否かを判定し、
分類前よりも評価が高いことを示す場合、前記複数のデータを前記クラスタと前記新たなクラスタとに分類する、
処理を実行することを特徴とするクラスタリング方法。
【請求項２】
前記コンピュータが、
分割対象になる前記クラスタに属する前記複数のデータのいずれかのデータを選択し、
選択した前記いずれかのデータを前記新たなクラスタの代表点のデータに設定し、前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合の、前記目的関数の値が、分類前よりも評価が高いことを示すか否かを判定し、
分類前よりも評価が高いことを示す場合、前記複数のデータを前記クラスタと前記新たなクラスタとに分類し、
前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合、前記分割対象として分類後の前記クラスタと分類後の前記新たなクラスタとの少なくともいずれかを設定する、
処理を実行することを特徴とする請求項１に記載のクラスタリング方法。
【請求項３】
前記選択する処理は、
前記複数のデータのそれぞれのデータの、前記クラスタの代表点のデータからの距離に比例する確率で、前記複数のデータのいずれかのデータを選択する、ことを特徴とする請求項１または２に記載のクラスタリング方法。
【請求項４】
前記コンピュータが、
前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合、ｋ−ｍｅａｎｓ法を用いて、前記クラスタの代表点のデータと、前記新たなクラスタの代表点のデータとを更新する、処理を実行することを特徴とする請求項１〜３のいずれか一つに記載のクラスタリング方法。
【請求項５】
前記コンピュータが、
分類前よりも評価が高いことを示さない場合、前記ペナルティ項をクラスタ数の増加を抑制する度合いが小さくなるように変更する、処理を実行し、
前記選択する処理は、
前記クラスタに属する前記複数のデータのいずれかのデータを選択し直す、ことを特徴とする請求項１〜４のいずれか一つに記載のクラスタリング方法。
【請求項６】
コンピュータに、
クラスタに属する複数のデータのいずれかのデータを選択し、
選択した前記いずれかのデータを新たなクラスタの代表点のデータに設定し、前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合の、クラスタ数の増加を抑制するペナルティ項を有する目的関数の値が、分類前よりも評価が高いことを示すか否かを判定し、
分類前よりも評価が高いことを示す場合、前記複数のデータを前記クラスタと前記新たなクラスタとに分類する、
処理を実行させることを特徴とするクラスタリングプログラム。
【請求項７】
クラスタに属する複数のデータのいずれかのデータを選択し、
選択した前記いずれかのデータを新たなクラスタの代表点のデータに設定し、前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合の、クラスタ数の増加を抑制するペナルティ項を有する目的関数の値が、分類前よりも評価が高いことを示すか否かを判定し、
分類前よりも評価が高いことを示す場合、前記複数のデータを前記クラスタと前記新たなクラスタとに分類する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタリング方法、クラスタリングプログラム、および情報処理装置に関する。
【背景技術】
【０００２】
従来、入力された複数の多次元データを、クラスタに分類された多次元データのまとまりのよさを評価する目的関数を用いて、１以上のクラスタに分類するクラスタリングの技術がある。クラスタリングの技術としては、例えば、ＤＰ−ｍｅａｎｓ法やＧｒｉｄ  ｋ−ｍｅａｎｓ法がある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｂ．  Ｋｕｌｉｓ  ａｎｄ  Ｍ．  Ｊｏｒｄａｎ，  “Ｒｅｖｉｓｉｔｉｎｇ  ｋ−ｍｅａｎｓ：  Ｎｅｗ  Ａｌｇｏｒｉｔｈｍｓ  ｖｉａ  Ｂａｙｅｓｉａｎ  Ｎｏｎｐａｒａｍｅｔｒｉｃｓ”，  ＩＣＭＬ２０１２．
【非特許文献２】Ｏ．  Ｂａｃｈｅｍ  ｅｔ  ａｌ．，  “Ｃｏｒｅｓｅｔｓ  ｆｏｒ  Ｎｏｎｐａｒａｍｅｔｒｉｃ  Ｅｓｔｉｍａｔｉｏｎ  −  ｔｈｅ  Ｃａｓｅ  ｏｆ  ＤＰ−Ｍｅａｎｓ”，  Ｉｎ  ＩＣＭＬ２０１５．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、複数のデータに対し適切なクラスタリングを実行することが難しいことがある。例えば、クラスタ同士の距離が一定以上になるように、複数のデータをクラスタに分類する場合、比較的狭い範囲に複数のデータが存在すると、複数のデータを複数のクラスタに分類した方が好ましくても、１つのクラスタにまとめて分類してしまうことがある。
【０００５】
１つの側面では、本発明は、クラスタリングの最適化を図ることができるクラスタリング方法、クラスタリングプログラム、および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの実施態様によれば、クラスタに属する複数のデータのいずれかのデータを選択し、選択した前記いずれかのデータを新たなクラスタの代表点のデータに設定し、前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合の、クラスタ数の増加を抑制するペナルティ項を有する目的関数の値が、分類前よりも評価が高いことを示すか否かを判定し、分類前よりも評価が高いことを示す場合、前記複数のデータを前記クラスタと前記新たなクラスタとに分類するクラスタリング方法、クラスタリングプログラム、および情報処理装置が提案される。
【発明の効果】
【０００７】
一態様によれば、クラスタリングの最適化を図ることが可能になる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかるクラスタリング方法の一実施例を示す説明図である。
【図２】図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、データ点集合Ｘの記憶内容の一例を示す説明図である。
【図４】図４は、クラスタ集合Ｃの記憶内容の一例を示す説明図である。
【図５】図５は、情報処理装置１００の機能的構成例を示すブロック図である。
【図６】図６は、実施例１における情報処理装置１００の１回目の割り当ての流れを示す説明図である。
【図７】図７は、実施例１における情報処理装置１００の２回目の割り当ての流れを示す説明図（その１）である。
【図８】図８は、実施例１における情報処理装置１００の２回目の割り当ての流れを示す説明図（その２）である。
【図９】図９は、実施例１における情報処理装置１００の２回目の割り当ての流れを示す説明図（その３）である。
【図１０】図１０は、実施例１における情報処理装置１００の割り当て結果の一例を示す説明図である。
【図１１】図１１は、実施例１における情報処理装置１００がクラスタの代表点のデータ点を更新する流れを示す説明図である。
【図１２】図１２は、実施例１における情報処理装置１００の出力例を示す説明図である。
【図１３】図１３は、実施例１における初期化処理手順の一例を示すフローチャートである。
【図１４】図１４は、実施例１における改善処理手順の一例を示すフローチャートである。
【図１５】図１５は、実施例２における情報処理装置１００の１回目の割り当ての流れを示す説明図である。
【図１６】図１６は、実施例２における情報処理装置１００のクラスタ粒度パラメータを設定した際の割り当ての流れを示す説明図である。
【図１７】図１７は、実施例２における情報処理装置１００のクラスタ粒度パラメータを変更した際の割り当ての流れを示す説明図である。
【図１８】図１８は、実施例２における初期化処理手順の一例を示すフローチャートである。
【図１９】図１９は、実施例２における改善処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、図面を参照して、本発明にかかるクラスタリング方法、クラスタリングプログラム、および情報処理装置の実施の形態を詳細に説明する。
【００１０】
（実施の形態にかかるクラスタリング方法の一実施例）
図１は、実施の形態にかかるクラスタリング方法の一実施例を示す説明図である。情報処理装置１００は、クラスタリングを実行するコンピュータである。情報処理装置１００は、例えば、サーバ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ノートＰＣ、タブレット端末、スマートフォン、ウェアラブル端末などである。
【００１１】
クラスタリングの技術は、画像処理、音声認識、自然言語処理、センサデータ処理、ＤＮＡのシーケンスマイニング、人の位置データ解析などのように、人工知能的な情報処理に用いられており、クラスタリングの最適化が求められる傾向がある。クラスタリングの技術は、例えば、Ｂａｇｓ  ｏｆ  Ｆｅａｔｕｒｅ法による画像特徴量の生成や、生活傾向把握、生活音からの異変検出などに用いられている。また、クラスタリングの技術は、例えば、地震解析、建物内の人口分布解析などにも用いられている。
【００１２】
ここで、クラスタリングの技術としては、例えば、確率モデルであるノンパラメトリックベイズ法に基づいて、データの複雑さに応じてクラスタ数を自動的に決定するＤＰ−ｍｅａｎｓ法を用いるものが考えられる。ノンパラメトリックベイズ法は、例えば、下記参考文献１を参照することができる。ＤＰ−ｍｅａｎｓ法は、例えば、上記非特許文献１を参照することができる。
【００１３】
参考文献１：上田，  “ノンパラメトリックベイズ入門”，  情報処理学会研究報告  ２００９−ＣＶＩＭ−１６６，  ２００９年．
【００１４】
しかしながら、ＤＰ−ｍｅａｎｓ法を用いても、適切なクラスタリングを実行することが難しいことがある。
【００１５】
例えば、ＤＰ−ｍｅａｎｓ法では、クラスタに分類されたデータのまとまりのよさを評価する目的関数が最小化されるように、漸近的にクラスタ数を更新しつつクラスタの代表点のデータを更新し、データをクラスタに分類する。目的関数は、例えば、値が小さいほど、クラスタリングが適切であることを示している。目的関数は、例えば、クラスタ粒度パラメータを有する。クラスタ粒度パラメータは、クラスタとして許容する粒度を意味し、クラスタが含むデータの範囲を意味する。
【００１６】
ＤＰ−ｍｅａｎｓ法では、目的関数を最小化する際、クラスタ粒度パラメータに基づいて、クラスタ間の距離が一定以上離れるように複数のクラスタを作成するようにする性質がある。この性質により、比較的狭い範囲に複数のデータが存在する場合に、データを複数のクラスタに分類した方が好ましくても、１つのクラスタにまとめて分類してしまうことがあり、目的関数が最小値ではなくなってしまうことがある。
【００１７】
このため、クラスタリングにより分類した結果が、好ましくない解に収束してしまうことがある。好ましくない解は、例えば、目的関数が最小値ではなく、好ましい粒度のクラスタが作成されていない場合に対応する解である。好ましくない解は、例えば、局所解と呼ばれる。具体的には、人の位置データから人の位置分布を解析するために、新宿、原宿、六本木、多摩地方などの大きさのクラスタに位置データを分類したい場合であっても、東京、神奈川などの大きさのクラスタに分類してしまうことがある。
【００１８】
これに対し、クラスタ粒度パラメータを小さくして、粒度の比較的小さいクラスタにデータを分類するようにすることが考えられる。しかしながら、依然として、適切なクラスタリングを実行することが難しいことがある。例えば、外れ値のデータについて１つのクラスタを作成してしまうことがある。具体的には、東京都のほか、八丈島、父島、母島などのような大きさのクラスタに分類してしまうことがある。
【００１９】
これに対し、ｋ−ｍｅａｎｓ法を用いて、１から順にクラスタ数を変動させながら目的関数の値を算出し、目的関数の値が増加する前のクラスタ数で、データをクラスタに分類する、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法が考えられる。Ｇｒｉｄ  ｋ−ｍｅａｎｓ法は、例えば、上記非特許文献２を参照することができる。
【００２０】
しかしながら、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法を用いても、適切なクラスタリングを実行することが難しいことがある。例えば、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法を用いた場合には、下記の２つの問題点がある。
【００２１】
１点目の問題点は、クラスタリングにかかる計算量が増大化してしまうという問題点である。Ｇｒｉｄ  ｋ−ｍｅａｎｓ法では、クラスタ数をインクリメントしながらｋ−ｍｅａｎｓ法によりクラスタリングを実行することになる。このため、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法では、クラスタ数の２乗オーダの計算量になり、分類するデータの数が多いほど、クラスタリングにかかる計算量や計算時間の増大化を招いてしまう。
【００２２】
具体的には、１回のｋ−ｍｅａｎｓ法でＯ（ｎ・ｋ・ｌ）の計算量になるため、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法で、クラスタ数をインクリメントしながらｋ−ｍｅａｎｓ法を繰り返すと、Ｏ（ｎ・ｋ２・ｌ）の計算量になってしまう。ｎは、データ数である。ｋは、クラスタ数である。ｌは、繰り返し回数である。
【００２３】
２点目の問題点は、クラスタリングにより分類した結果が、好ましくない解に収束してしまうという問題点である。好ましくない解は、例えば、目的関数が最小値ではなく、一時的に極小値になった場合に対応する解である。好ましくない解は、例えば、局所解と呼ばれる。例えば、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法では、クラスタ数を変動させる際、ランダムにクラスタを作成するため、クラスタの増加に伴って目的関数の値が単調減少するとは限らず、振動してしまう傾向がある。このため、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法では、目的関数の値が最小値になる解に収束することが難しい。
【００２４】
このように、利用者が、粒度が小さいクラスタが作成され、かつ、外れ値についてクラスタが作成されないようにすることを求める場合であっても、クラスタリングにおいて局所解に収束してしまうことがある。このため、クラスタリングにおいて局所解に収束しにくい性質を実現することが求められる。
【００２５】
そこで、本実施の形態では、いずれかのクラスタを２つのクラスタに分割した方が好ましい場合に、他のクラスタを固定したまま、いずれかのクラスタを２つのクラスタに分割してデータを分類し直すことができるクラスタリング方法について説明する。これによれば、本実施の形態は、局所解になりにくいクラスタリングを実行することができる。
【００２６】
図１において、情報処理装置１００は、複数のデータを含む１つのクラスタを、２つのクラスタに分割した方が好ましい場合に、１つのクラスタを２つのクラスタに分割し、複数のデータを分類し直すことを繰り返すことにより、クラスタリングの最適化を図る。
【００２７】
図１の例では、情報処理装置１００は、例えば、座標空間１１０上の複数のデータが、第１クラスタｄｓ１と第２クラスタｄｓ２と第３クラスタｄｓ３とに分類されている場合に、いずれかのクラスタをさらに分割するか否かを判定する。第１クラスタｄｓ１は、代表点のデータとしてデータｃ１が設定されたクラスタである。第２クラスタｄｓ２は、代表点のデータとしてデータｃ２が設定されたクラスタである。第３クラスタｄｓ３は、代表点のデータとしてデータｃ３が設定されたクラスタである。
【００２８】
情報処理装置１００は、いずれかのクラスタに属する複数のデータのいずれかのデータを選択する。情報処理装置１００は、例えば、第２クラスタｄｓ２に属する複数のデータのいずれかのデータを選択する。これにより、情報処理装置１００は、第１クラスタｄｓ１や第３クラスタｄｓ３を固定したまま、第２クラスタｄｓ２を２つのクラスタに分割する場合に、新たに作成されるクラスタの代表点のデータになりうるデータを選択することができる。
【００２９】
情報処理装置１００は、選択したいずれかのデータを新たなクラスタの代表点のデータに設定し、複数のデータをクラスタと新たなクラスタとに分類した場合の目的関数の値が、分類前よりも評価が高いことを示すか否かを判定する。目的関数は、クラスタに分類されたデータのまとまりのよさを評価する。また、目的関数は、クラスタ数の増加を抑制するペナルティ項を有する。ペナルティ項は、例えば、利用者の操作入力に基づいて固定される。
【００３０】
情報処理装置１００は、例えば、選択したいずれかのデータｃ４を、新たな第４クラスタｄｓ４の代表点のデータとして設定する。そして、情報処理装置１００は、第２クラスタｄｓ２に分類された複数のデータを、第２クラスタｄｓ２と第４クラスタｄｓ４とに分類し直した場合の目的関数の値が、分類前よりも評価が高いことを示すか否かを判定する。これにより、情報処理装置１００は、第２クラスタｄｓ２を２つのクラスタに分割した方が好ましいかを判定することができる。
【００３１】
情報処理装置１００は、分類前よりも評価が高いことを示す場合、複数のデータをクラスタと新たなクラスタとに分類する。情報処理装置１００は、例えば、分類前よりも評価が高いことを示す場合、第２クラスタｄｓ２に分類された複数のデータを、第２クラスタｄｓ２と第４クラスタｄｓ４とに分類し直す。これにより、情報処理装置１００は、クラスタリングの最適化を図ることができる。結果として、情報処理装置１００は、クラスタリングを利用する、画像処理、音声認識、自然言語処理、センサデータ処理、ＤＮＡのシーケンスマイニング、人の位置データ解析などの精度向上を図ることができる。
【００３２】
上述したように、ＤＰ−ｍｅａｎｓ法では、目的関数を最小化する際、クラスタ粒度パラメータに基づいて、クラスタ間の距離が一定以上離れるように複数のクラスタを作成するようにする性質がある。この性質により、比較的狭い範囲に複数のデータが存在する場合に、データを複数のクラスタに分類した方が好ましくても、１つのクラスタにまとめて分類してしまうことがある。一方で、情報処理装置１００は、いずれかのクラスタを２つのクラスタに分割する方が好ましいか否かを、２つのクラスタにおけるクラスタ間の距離に関わらず判定することができる。このため、情報処理装置１００は、比較的狭い範囲に複数のデータが存在する場合にも、クラスタリングの最適化を図ることができる。
【００３３】
また、上述したように、クラスタ粒度パラメータを小さくして、粒度の比較的小さいクラスタにデータを分類するようにした場合、外れ値のデータについて１つのクラスタを作成してしまうことがある。一方で、情報処理装置１００は、クラスタを分割する際、クラスタに属する外れ値のデータを選択してしまっても、外れ値のデータを新たなクラスタの代表点のデータに設定することが好ましいか否かを判定することができる。このため、情報処理装置１００は、外れ値のデータについてクラスタが作成されにくくし、クラスタリングの最適化を図ることができる。
【００３４】
また、上述したように、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法では、クラスタリングにかかる計算量が増大化してしまう。一方で、情報処理装置１００は、クラスタ粒度パラメータを変動させなくてもよいため、クラスタリングにかかる計算量の増大化を抑制することができる。
【００３５】
また、上述したように、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法では、ランダムにクラスタを作成するため、クラスタリングにより分類した結果が、局所解に収束してしまう。一方で、情報処理装置１００は、既にあるクラスタを分割して２つのクラスタに増やすため、ランダムにクラスタを作成する場合に比べて、クラスタの増加に伴って目的関数の値が単調減少しやすく、局所解に収束しにくくすることができる。
【００３６】
以上により、情報処理装置１００は、バッチクラスタリングを実現することができる。バッチクラスタリングは、複数のデータ点を読み出してクラスタリングを実行すること、または、複数のデータ点を読み出してクラスタリングを実行することを複数回繰り返すことを意味する。
【００３７】
バッチクラスタリングは、例えば、一定数のデータごとに読み出し、一定数のデータごとにクラスタリングを実行することを繰り返すようなミニバッチクラスタリングを含んでもよい。バッチクラスタリングは、例えば、コアセットを抽出する際にクラスタリングを実行すること、または、コアセット集合に対してクラスタリングを実行することを含んでもよい。コアセットは、データセットのうちから抽出した一部の代表点である。
【００３８】
ここでは、情報処理装置１００が、ペナルティ項を固定し、クラスタを分割しながら、データをクラスタに分類していく場合について説明したが、これに限らない。例えば、情報処理装置１００が、ペナルティ項を変更しつつ、異なるペナルティ項においてクラスタを分割しながら、データをクラスタに分類する場合があってもよい。
【００３９】
（情報処理装置１００のハードウェア構成例）
次に、図２を用いて、情報処理装置１００のハードウェア構成例について説明する。
【００４０】
図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。図２において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、記録媒体Ｉ／Ｆ２０４と、記録媒体２０５とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００４１】
ここで、ＣＰＵ２０１は、情報処理装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。
【００４２】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４３】
記録媒体Ｉ／Ｆ２０４は、ＣＰＵ２０１の制御に従って記録媒体２０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ２０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体２０５は、記録媒体Ｉ／Ｆ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体２０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体２０５は、情報処理装置１００から着脱可能であってもよい。
【００４４】
情報処理装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を有していなくてもよい。
【００４５】
（データ点集合Ｘの記憶内容）
次に、図３を用いてデータ点集合Ｘの記憶内容について説明する。データ点集合Ｘは、例えば、図２に示した情報処理装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００４６】
図３は、データ点集合Ｘの記憶内容の一例を示す説明図である。図３に示すように、データ点集合Ｘは、データＩＤのフィールドに対応付けて、特徴量のフィールドを有する。データ点集合Ｘは、データ点ごとに各フィールドに情報を設定することにより、データ点がレコードとして記憶される。
【００４７】
データＩＤのフィールドには、データ点を特定するデータＩＤが設定される。特徴量のフィールドには、データ点の座標を示す多次元の特徴量が設定される。データ点集合Ｘは、データＩＤを用いず、データ数ｎ分の行と次元数ｄ分の列とを有する行列として、データ点の座標を示す多次元の特徴量を記憶するようにしてもよい。ここで、行列のそれぞれの要素の位置が、データＩＤに対応する。
【００４８】
データ点集合Ｘは、さらに、データＩＤのフィールドに対応付けて、クラスタＩＤのフィールドを有してもよい。クラスタＩＤのフィールドには、データＩＤが特定するデータ点が属するクラスタを特定するクラスタＩＤが設定される。データＩＤと、クラスタＩＤとの対応関係は、例えば、データＩＤに対応する要素を有する配列を用いて実現されてもよい。具体的には、配列の要素の通し番号が、データＩＤに対応する。
【００４９】
（クラスタ集合Ｃの記憶内容）
次に、図４を用いてクラスタ集合Ｃの記憶内容について説明する。クラスタ集合Ｃは、例えば、図２に示した情報処理装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００５０】
図４は、クラスタ集合Ｃの記憶内容の一例を示す説明図である。図４に示すように、クラスタ集合Ｃは、クラスタＩＤのフィールドに対応付けて、クラスタ代表座標のフィールドを有する。クラスタ集合Ｃは、クラスタごとに各フィールドに情報を設定することにより、クラスタ情報がレコードとして記憶される。
【００５１】
クラスタＩＤのフィールドには、クラスタを特定するクラスタＩＤが設定される。クラスタ代表座標のフィールドには、クラスタの代表点の座標を示す多次元の特徴量が設定される。クラスタの代表点の座標の次元は、データ点の次元と同一である。また、クラスタ集合Ｃは、クラスタＩＤを用いず、クラスタ数ｋ分の行と次元数ｄ分の列とを有する行列として、クラスタの代表点の座標を示す多次元の特徴量を記憶するようにしてもよい。ここで、行列のそれぞれの要素の位置が、クラスタＩＤに対応する。
【００５２】
（情報処理装置１００の機能的構成例）
次に、図５を用いて、情報処理装置１００の機能的構成例について説明する。
【００５３】
図５は、情報処理装置１００の機能的構成例を示すブロック図である。情報処理装置１００は、記憶部５００と、取得部５０１と、設定部５０２と、選択部５０３と、判定部５０４と、分類部５０５と、出力部５０６とを含む。
【００５４】
記憶部５００は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域によって実現される。取得部５０１〜出力部５０６は、制御部となる機能である。取得部５０１〜出力部５０６は、具体的には、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶される。
【００５５】
記憶部５００は、目的関数を記憶する。目的関数は、クラスタに分類されたデータのまとまりのよさを評価する。目的関数は、例えば、値が小さいほど、クラスタリングが適切であることを示すペナルティ項は、例えば、クラスタ粒度パラメータによって規定される。クラスタ粒度パラメータは、クラスタとして許容する粒度を意味し、クラスタが含むデータの範囲を意味する。クラスタ粒度パラメータは、例えば、利用者の操作入力に基づいて固定される。クラスタ粒度パラメータは、可変であってもよい。
【００５６】
記憶部５００は、ペナルティ項を規定するために用いることができる、複数のクラスタ粒度パラメータを記憶してもよい。記憶部５００は、クラスタと、クラスタに属するデータとを対応付けて記憶してもよい。これにより、記憶部５００は、目的関数、クラスタ粒度パラメータ、クラスタに属するデータなどを制御部が参照可能にすることができる。
【００５７】
取得部５０１は、分類対象になる複数のデータを取得する。取得部５０１は、例えば、まだクラスタに分類されていない複数のデータを取得し、記憶部５００に記憶する。取得部５０１は、例えば、既に１以上のクラスタに分類された複数のデータを取得し、記憶部５００に記憶してもよい。これにより、取得部５０１は、分類対象になる複数のデータを記憶部５００に記憶させ、判定部５０４や分類部５０５が参照可能にすることができる。
【００５８】
設定部５０２は、分割対象になるクラスタを設定する。設定部５０２は、例えば、分割対象になるクラスタとして、取得部５０１が取得した複数のデータが属する１つのクラスタを作成して設定する。設定部５０２は、例えば、分割対象になるクラスタとして、取得部５０１が取得した既に複数のデータを分類された１以上のクラスタのいずれかのクラスタを設定してもよい。これにより、設定部５０２は、いずれのクラスタについて、２つのクラスタに分割する方が好ましいか否かを判定するかを、判定部５０４が参照可能にすることができる。
【００５９】
選択部５０３は、設定部５０２が設定した分割対象になるクラスタに属する複数のデータのいずれかのデータを選択する。選択部５０３は、例えば、分割対象になるクラスタに属する複数のデータのそれぞれのデータからランダムにいずれかのデータを選択する。これにより、選択部５０３は、仮に作成される新たなクラスタの代表点のデータとして設定されるデータを選択することができる。
【００６０】
選択部５０３は、設定部５０２が設定した分割対象になるクラスタに属する複数のデータのそれぞれのデータの、分割対象になるクラスタの代表点のデータからの距離に比例する確率で、複数のデータのいずれかのデータを選択してもよい。これにより、選択部５０３は、複数のデータのうち、分割対象になるクラスタの代表点のデータから遠いデータほど、選択されやすくすることができる。このため、選択部５０３は、分割対象になるクラスタの代表点のデータに近く、分割対象になるクラスタに属するままの方が好ましいデータを選択せず、新たなクラスタに属する方が好ましいデータを選択しやすくすることができる。結果として、選択部５０３は、判定部５０４が分割対象になるクラスタを分割した方が好ましいか否かを精度よく判定可能にし、分類した結果が局所解になることを抑制することができる。
【００６１】
判定部５０４は、選択部５０３が選択したいずれかのデータを新たなクラスタの代表点のデータに設定し、複数のデータを分割対象になるクラスタと新たなクラスタとに分類した場合の目的関数の値が、分類前よりも評価が高いことを示すか否かを判定する。判定部５０４は、例えば、分割対象になるクラスタに複数のデータを分類した場合の目的関数の値より、分割した２つのクラスタに複数のデータを分類した場合の目的関数の値の方が小さければ、評価が高いことを示すと判定する。これにより、判定部５０４は、分割対象になるクラスタを分割した方が好ましいか否かを判定することができ、クラスタ数の最適化を図ることができる。
【００６２】
分類部５０５は、分類前よりも評価が高いことを示す場合、複数のデータを分割対象になるクラスタと新たなクラスタとに分類する。分類部５０５は、例えば、複数のデータを、２つのクラスタのうち代表点のデータからの距離が近い方のクラスタに分類する。これにより、分類部５０５は、複数のデータを分類し直すことができ、クラスタ数を増加させることができる。
【００６３】
分類部５０５は、複数のデータを分割対象になるクラスタと新たなクラスタとに分類した場合、分割対象になるクラスタの代表点のデータと、新たなクラスタの代表点のデータとを更新する。分類部５０５は、例えば、ｋ−ｍｅａｎｓ法を用いて、分割対象になるクラスタの代表点のデータと、新たなクラスタの代表点のデータとを更新する。これにより、分類部５０５は、それぞれのクラスタの代表点のデータの精度の向上を図ることができる。
【００６４】
設定部５０２は、複数のデータを分割対象になるクラスタと新たなクラスタとに分類した場合、分割対象として分類後のクラスタと分類後の新たなクラスタとの少なくともいずれかを設定する。そして、設定部５０２は、選択部５０３に、分割対象になるクラスタに属する複数のデータのいずれかのデータを選択させる。これにより、設定部５０２は、クラスタを繰り返し分割させ、クラスタ数の最適化を図り、クラスタリングの最適化を図ることができる。
【００６５】
設定部５０２は、複数のデータを分割対象になるクラスタと新たなクラスタとに分類した場合、ペナルティ項をクラスタ数の増加を抑制する度合いが小さくなるように変更してもよい。そして、設定部５０２は、分割対象として分類後のクラスタと分類後の新たなクラスタとの少なくともいずれかを設定してもよい。
【００６６】
設定部５０２は、例えば、ペナルティ項に用いるクラスタ粒度パラメータを、クラスタ数の増加を抑制する度合いが小さくなるように変更してから、分割対象として分類後のクラスタと分類後の新たなクラスタとの少なくともいずれかを設定する。これにより、設定部５０２は、クラスタ数の増加を抑制する度合いを順に小さくし、粒度が大きいクラスタを作成した後に、粒度が大きいクラスタに含まれるように粒度が小さいクラスタも作成して、複数のデータを分類させることができる。このため、設定部５０２は、階層的なクラスタを作成することができる。
【００６７】
設定部５０２は、分類前よりも評価が高いことを示さない場合、ペナルティ項をクラスタ数の増加を抑制する度合いが小さくなるように変更し、選択部５０３に、分割対象になるクラスタに属する複数のデータのいずれかのデータを選択し直させる。
【００６８】
設定部５０２は、例えば、分類前よりも評価が高いことを示さない場合、ペナルティ項に用いるクラスタ粒度パラメータを、クラスタ数の増加を抑制する度合いが小さくなるように変更する。そして、設定部５０２は、選択部５０３に、分割対象になるクラスタに属する複数のデータのいずれかのデータを選択し直させる。これにより、設定部５０２は、クラスタ数の増加を抑制する度合いを順に小さくし、粒度が大きいクラスタを作成した後に、粒度が大きいクラスタに含まれるように粒度が小さいクラスタも作成して、複数のデータを分類させることができる。このため、設定部５０２は、階層的なクラスタを作成することができる。
【００６９】
出力部５０６は、複数のデータを１以上のクラスタに分類した結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ２０３による外部装置への送信、または、メモリ２０２や記録媒体２０５などの記憶領域への記憶である。
【００７０】
出力部５０６は、例えば、変更前のペナルティ項に対応付けて変更前のペナルティ項を有する目的関数を用いて分類した結果を出力し、変更後のペナルティ項に対応付けて変更後のペナルティ項を有する目的関数を用いて分類した結果を出力する。
【００７１】
出力部５０６は、具体的には、ペナルティ項に用いたクラスタ粒度パラメータごとに分類した結果を、クラスタ粒度パラメータと対応付けて出力することができる。これにより、出力部５０６は、それぞれの粒度でどのようなクラスタが作成され、複数のデータが分類されたのかを、粒度ごとに利用者に把握させることができる。このため、利用者は、画像処理、音声認識、自然言語処理、センサデータ処理、ＤＮＡのシーケンスマイニング、人の位置データ解析などの精度向上を図ることができる。
【００７２】
（情報処理装置１００の実施例１）
次に、図６〜図１１を用いて、情報処理装置１００の実施例１について説明する。
【００７３】
まず、図６を用いて、実施例１における情報処理装置１００の１回目の割り当ての流れについて説明する。
【００７４】
図６は、実施例１における情報処理装置１００の１回目の割り当ての流れを示す説明図である。図６において、情報処理装置１００は、利用者の操作入力に基づいて、複数のデータ点を取得する。情報処理装置１００は、複数のデータ点のいずれかのデータ点ｃ１を選択し、最初のクラスタｄｓ１の代表点になるデータ点に設定する。情報処理装置１００は、最初のクラスタｄｓ１に複数のデータ点を割り当てる。情報処理装置１００は、最初のクラスタｄｓ１を、分割対象になる初期クラスタとして設定する。
【００７５】
次に、図７〜図９を用いて、実施例１における情報処理装置１００の２回目の割り当ての流れについて説明する。
【００７６】
図７〜図９は、実施例１における情報処理装置１００の２回目の割り当ての流れを示す説明図である。図７において、情報処理装置１００は、初期クラスタに設定したクラスタｄｓ１を分割するとした場合に、新たなクラスタの代表点のデータ点になる、複数のデータ点のいずれかのデータ点を選択する。情報処理装置１００は、例えば、クラスタｄｓ１を分割するとした場合に、目的関数の値が小さくなると判断されるデータ点を選択する。
【００７７】
ここで、複数のデータ点のうち、クラスタｄｓ１の代表点のデータ点ｃ１から比較的遠い距離にあるデータ点ｃ２−１は、代表点のデータ点ｃ１と同じクラスタに分類されにくく、代表点のデータ点ｃ１と異なるクラスタに分類されやすい性質がある。一方で、複数のデータ点のうち、クラスタｄｓ１の代表点のデータ点ｃ１から比較的近い距離にあるデータ点ｃ２−２は、代表点のデータ点ｃ１と同じクラスタに分類されやすい性質がある。
【００７８】
このため、情報処理装置１００は、具体的には、クラスタｄｓ１に属する複数のデータ点のうち、クラスタｄｓ１の代表点のデータ点ｃ１からの距離に比例する確率で、いずれかのデータ点を選択することが好ましい。図７の例では、情報処理装置１００は、新たなクラスタの代表点のデータ点ｃ２として、複数のデータ点のいずれかのデータ点ｃ２−２を選択したとする。次に、図８の説明に移行する。
【００７９】
図８において、情報処理装置１００は、代表点のデータ点ｃ１のクラスタｄｓ１と、代表点のデータ点ｃ２の新たなクラスタとに、クラスタｄｓ１に属する複数のデータ点を割り当て直した場合に、目的関数の値が小さくなるか否かを判定する。目的関数は、例えば、下記式（１）である。
【００８０】
【数１】
2018195089.tif 000003
【００８１】
ここで、Ｘ∈Ｒ＾（ｄ×ｎ）は、情報処理装置１００が取得したｄ次元×ｎ点のデータ点集合である。ｘは、データ点である。ｋ∈Ｒは、クラスタ数である。Ｃ∈Ｒ＾（ｄ×ｋ）は、クラスタ集合であり、クラスタの代表点のデータ点を集めたデータ点集合である。μは、いずれかのクラスタの代表点のデータ点である。λは、クラスタ数を決定するハイパーパラメータであり、クラスタ数の増加を抑制する。λ＾２を、ハイパーパラメータとしてもよい。Ｄ（ｘ，μ）は、距離関数である。距離関数は、例えば、下記式（２）である。
【００８２】
【数２】
2018195089.tif 000004
【００８３】
上記式（２）は、二乗ユークリッド距離を算出する距離関数である。ここで、距離関数は、二乗ユークリッド距離の代わりに、例えば、マンハッタン距離やＬ∞距離のような対称性を満たすものや、ＫＬダイバージェンスやマハラノビス距離、板倉斎藤距離などの対称性を満たさないものを算出してもよい。また、距離関数は、二乗ユークリッド距離の代わりに、例えば、コサイン類似度などの類似度指標を算出してもよい。
【００８４】
上記式（１）の目的関数は、第１項としてデータ点とクラスタの代表点のデータ点との誤差の和を示す項と、第２項としてクラスタ数の増加を抑制するペナルティを示す項とを有している。上記式（１）の目的関数は「データ点の複雑さに応じたクラスタを作成する」という働きを有している。上記式（１）の目的関数は、具体的には、データ点が少なく信頼度が低い場合にはクラスタ数を減らすが、データ点が増えていき信頼度が高くなった場合にはクラスタを増やすような働きを有している。この働きにより、クラスタリングが外れ値の影響を受けにくくすることができる。
【００８５】
また、上記式（１）の目的関数は、ハイパーパラメータλにより、クラスタとして許容する粒度を規定し、クラスタが含むデータの範囲を規定している。このため、上記式（１）の目的関数は、外れ値の影響を受けず、クラスタの粒度を小さくしたい場合にはクラスタの粒度が小さくなる場合に、値が大きくなる性質がある。したがって、上記式（１）の目的関数の値が小さいほど、クラスタリングが最適化されることになる。
【００８６】
情報処理装置１００は、上記式（１）に基づく下記式（３）の分割条件を満たす場合に、クラスタｄｓ１を分割して、クラスタｄｓ１に属する複数のデータ点を割り当て直した方が、目的関数の値が小さくなると判定する。下記式（３）は、クラスタｄｓ１の分割前に対応する上記式（１）と、クラスタｄｓ１の分割後に対応する上記式（１）との大小比較の式を変形した式である。
【００８７】
【数３】
2018195089.tif 000005
【００８８】
ここで、Ｘｃ∈Ｒ＾（ｄ×ｍ）は、分割対象のクラスタに属するｄ次元×ｍ点のデータ点集合である。Ｃ∈Ｒ＾ｄは、分割対象のクラスタの代表点のデータ点である。Ｃ’∈Ｒ＾ｄは、新たなクラスタの代表点のデータ点として設定されたデータ点である。
【００８９】
図８の例では、情報処理装置１００は、上記式（３）の分割条件を満たすと判定し、クラスタｄｓ１を分割して、クラスタｄｓ１に属する複数のデータ点を割り当て直した方が好ましいと判定したとする。次に、図９の説明に移行する。
【００９０】
図９において、情報処理装置１００は、代表点のデータ点ｃ１のクラスタｄｓ１と、代表点のデータ点ｃ２のクラスタｄｓ２とに、クラスタｄｓ１に属する複数のデータ点を割り当て直す。情報処理装置１００は、初期クラスタとして、クラスタｄｓ１と、クラスタｄｓ２とを設定し、図７〜図９と同様に分割を試みる。
【００９１】
これにより、情報処理装置１００は、クラスタ数と、データ点をクラスタに分類した結果とを、図６の状態に比べて比較的好ましい状態にすることができる。また、情報処理装置１００は、図６の状態のクラスタｄｓ１と、図９の状態のクラスタｄｓ１およびクラスタｄｓ２との包含関係を特定することができる。このため、情報処理装置１００は、階層的なクラスタを作成することができる。
【００９２】
ここで、情報処理装置１００は、代表点のデータ点ｃ１のクラスタｄｓ１と、代表点のデータ点ｃ２のクラスタｄｓ２とに、クラスタｄｓ１に属する複数のデータ点を割り当て直す際、他のクラスタに属するデータも割り当て直してもよい。
【００９３】
次に、図１０を用いて、実施例１における情報処理装置１００の割り当て結果の一例について説明する。
【００９４】
図１０は、実施例１における情報処理装置１００の割り当て結果の一例を示す説明図である。図１０において、情報処理装置１００は、図７〜図９と同様にして、代表点のデータ点ｃ３のクラスタｄｓ３と、代表点のデータ点ｃ４のクラスタｄｓ４とを作成し、データ点を割り当て直している。図１０の例では、情報処理装置１００は、分割により目的関数の値が小さくなるクラスタがなくなったと判定する。
【００９５】
このため、情報処理装置１００は、クラスタｄｓ１と、クラスタｄｓ２と、クラスタｄｓ３と、クラスタｄｓ４とのそれぞれにデータ点を分類した結果を、最終的な結果として出力する。これにより、情報処理装置１００は、クラスタ数と、データ点をクラスタに分類した結果とを、図９の状態に比べてさらに好ましい状態にすることができ、クラスタリングの最適化を図ることができる。
【００９６】
以下の説明では、図６〜図１０に示した、分割対象になる初期クラスタについて分割した方が好ましいか判定し、分割した２つのクラスタのそれぞれのクラスタを新たな初期クラスタに設定する処理を、「初期化処理」と表記する場合がある。
【００９７】
次に、図１１を用いて、実施例１における情報処理装置１００がクラスタの代表点のデータ点を更新する流れについて説明する。
【００９８】
図１１は、実施例１における情報処理装置１００がクラスタの代表点のデータ点を更新する流れを示す説明図である。図１１に示すように、情報処理装置１００は、いずれかのクラスタが分割される都度、分割された２つのクラスタのそれぞれのクラスタについて、クラスタの代表点のデータ点の更新を行ってもよい。
【００９９】
図１１の例では、情報処理装置１００は、クラスタｄｓ１の代表点のデータ点ｃ１と、クラスタｄｓ２の代表点のデータ点ｃ２と、クラスタｄｓ３の代表点のデータ点ｃ３と、クラスタｄｓ４の代表点のデータ点ｃ４を更新する。情報処理装置１００は、例えば、クラスタｄｓ２に属する複数のデータ点に基づいて、ｋ−ｍｅａｎｓ法を用いて、クラスタｄｓ２の代表点のデータ点ｃ２を更新する。
【０１００】
また、情報処理装置１００は、ｋ−ｍｅａｎｓ法のほか、ＤＰ−ｍｅａｎｓ法、Ｍｉｎｉｂａｔｃｈ  ｋ−ｍｅａｎｓ法、ｋ−Ｍｅｄｉａｎ法などを用いてもよい。Ｍｉｎｉｂａｔｃｈ  ｋ−ｍｅａｎｓ法は、例えば、下記参考文献２を参照することができる。
【０１０１】
参考文献２：Ｄ．  Ｓｃｕｌｌｅｙ，  “Ｗｅｂ−Ｓｃａｌｅ  Ｋ−Ｍｅａｎｓ  Ｃｌｕｓｔｅｒｉｎｇ”，  Ｉｎ  ＷＷＷ２０１０．
【０１０２】
これにより、情報処理装置１００は、それぞれのクラスタの代表点のデータ点について精度向上を図ることができる。また、情報処理装置１００は、分割されたクラスタについてクラスタの代表点のデータ点の更新を行ってから、再び初期化処理を実行することができる。このため、情報処理装置１００は、比較的偏りが小さい代表点のデータ点を初期化処理に用いることができ、さらにクラスタリングの最適化を図ることができる。
【０１０３】
以下の説明では、図１１に示した、分割した２つのクラスタのそれぞれのクラスタについて、クラスタの代表点のデータ点を更新する処理を、「改善処理」と表記する場合がある。情報処理装置１００は、初期化処理を実行し、改善処理を実行しない場合があってもよい。
【０１０４】
また、情報処理装置１００は、上述したクラスタリングの結果に基づいて、１つのデータ点が複数のクラスタに属することを許容するソフトクラスタリングをさらに実行してもよい。ソフトクラスタリングは、例えば、ＥＭ（Ｅｘｐｅｃｔａｔｉｏｎ  Ｍａｘｉｍｉｚａｔｉｏｎ）法、マルコフ連鎖モンテカルロ法、変分ベイズ法などにより実現される。
【０１０５】
ここでは、情報処理装置１００が、上記式（１）の目的関数を用いる場合について説明したが、これに限らない。目的関数は、例えば、第１項としてデータ点とクラスタの代表点のデータ点との誤差の和を示す項と、第２項としてクラスタ数の増加を抑制するペナルティを示す項とを有するものである。情報処理装置１００は、ＨＤＰ−ｍｅａｎｓ法、Ｃｏｍｂｉｎａｔｉｏｎａｌ  Ｔｏｐｉｃ  Ｍｏｄｅｌ、Ｄｅｐｅｎｄｅｎｔ  ＤＰ−ｍｅａｎｓ法、ＢＰ−ｍｅａｎｓ法などに規定された目的関数を用いてもよい。
【０１０６】
ＨＤＰ−ｍｅａｎｓ法は、例えば、上記非特許文献１を参照することができる。Ｃｏｍｂｉｎａｔｉｏｎａｌ  Ｔｏｐｉｃ  Ｍｏｄｅｌは、例えば、下記参考文献３を参照することができる。Ｄｅｐｅｎｄｅｎｔ  ＤＰ−ｍｅａｎｓ法は、例えば、下記参考文献４を参照することができる。ＢＰ−ｍｅａｎｓ法は、例えば、下記参考文献５を参照することができる。
【０１０７】
参考文献３：Ｋ．  Ｊｉａｎｇ  ｅｔ  ａｌ．，  “Ｃｏｍｂｉｎａｔｉｏｎａｌ  Ｔｏｐｉｃ  Ｍｏｄｅｌｓ  ｕｓｉｎｇ  Ｓｍａｌｌ−Ｖａｒｉａｎｃｅ  Ａｓｙｍｐｔｏｔｉｃｓ”，  ＡＩＳＴＡＴＳ２０１７．
【０１０８】
参考文献４：Ｔ．  Ｃａｍｐｂｅｌｌ  ｅｔ  ａｌ．，  “Ｄｙｎａｍｉｃ  Ｃｌｕｓｔｅｒｉｎｇ  ｖｉａ  Ａｓｙｍｐｔｏｔｉｃｓ  ｏｆ  ｔｈｅ  Ｄｅｐｅｎｄｅｎｔ  Ｄｉｒｉｃｈｌｅｔ  Ｐｒｏｃｅｓｓ  Ｍｉｘｔｕｒｅ”，  ＮＩＰＳ２０１３．
【０１０９】
参考文献５：Ｔ．  Ｂｒｏｄｅｒｉｃｋ  ｅｔ  ａｌ，  “ＭＡＤ−Ｂａｙｅｓ：  ＭＡＰ−ｂａｓｅｄ  Ａｓｙｍｐｔｏｔｉｃ  Ｄｅｒｉｖａｔｉｏｎｓ  ｆｒｏｍ  Ｂａｙｅｓ”，  ＩＣＭＬ２０１３．
【０１１０】
情報処理装置１００は、時間情報を含む複数のデータに対するクラスタリングを実現するために用いられてもよい。時間情報を含む複数のデータに対するクラスタリングは、例えば、ノンパラメトリックベイズＨＭＭ（ｉｎｆｉｎｉｔｅ  Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ）法を用いたクラスタリングである。時間情報を含む複数のデータに対するクラスタリングは、例えば、ノンパラメトリックベイズＳＬＤＳ（Ｓｗｉｔｃｈｉｎｇ  Ｌｉｎｅａｒ  Ｄｙｎａｍｉｃａｌ  Ｓｙｓｔｅｍ）法を用いたクラスタリングである。ノンパラメトリックベイズＨＭＭ法は、例えば、下記参考文献６を参照することができる。
【０１１１】
参考文献６：Ａ．  Ｒｏｙｃｈｏｗｄｈｕｒｙ  ｅｔ  ａｌ．，  “Ｓｍａｌｌ−Ｖａｒｉａｎｃｅ  Ａｓｙｍｐｔｏｔｉｃｓ  ｆｏｒ  Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌｓ”，  ＮＩＰＳ２０１３．
【０１１２】
また、情報処理装置１００は、教師付き学習の認識器とクラスタリングとモデル数の決定を同時に行う手法を実現するために用いられてもよい。かかる手法は、例えば、ｉｎｆｉｎｉｔｅ  ＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）に基づくハードクラスタリング近似を行った手法である。かかる手法は、例えば、下記参考文献７を参照することができる。
【０１１３】
参考文献７：Ｙ．  Ｗａｎｇ  ｅｔ  ａｌ．，  “Ｓｍａｌｌ−Ｖａｒｉａｎｃｅ  Ａｓｙｍｐｔｏｔｉｃｓ  ｆｏｒ  Ｄｉｒｉｃｈｌｅｔ  Ｐｒｏｃｅｓｓ  Ｍｉｘｔｕｒｅ  ｏｆ  ＳＶＭｓ”，  ＡＡＡＩ２０１４．
【０１１４】
また、情報処理装置１００は、内部的に複数モデルをもち、モデル数の動的決定プロセスをデータとモデルとの誤差関数項とモデル数へのペナルティ項の２つを含む目的関数を用いて、モデル数の最適化を行う手法を実現するために用いられてもよい。かかる手法は、例えば、強化学習、逆強化学習、行列分解やテンソル分解、協調フィルタリング、主成分分析、独立成分分析、信頼度付き線形判別機、カーネルＳＶＭなどのカーネル関数に基づく教師付き学習の識別器などで複数モデルを有する手法がある。かかる手法は、例えば、ランキング学習、Ｓｔｒｕｃｔｕｒｅｄ  ＰｅｒｃｅｐｔｒｏｎやＣｏｎｄｉｔｉｏｎａｌ  Ｒａｎｄｏｍ  ＦｉｅｌｄやＳｔｒｕｃｔｕｒｅｄ  ＳＶＭ等の構造化識別器などで複数モデルを有する手法がある。かかる手法は、例えば、ブースティング、決定木やランダムフォレスト、ニューラルネットワークなどで複数モデルを有する手法がある。
【０１１５】
（実施例１における出力例）
次に、図１２を用いて、実施例１における情報処理装置１００の出力例について説明する。
【０１１６】
図１２は、実施例１における情報処理装置１００の出力例を示す説明図である。図１２において、情報処理装置１００は、複数のＵＳＧＳデータを含むＵＳＧＳデータ集合に対してクラスタリングを実行する。ＵＳＧＳデータは、地震震源の座標データであり、３次元の位置情報データである。ＵＳＧＳデータは、例えば、下記参考文献８を参照することができる。
【０１１７】
参考文献８：“ｇｌｏｂａｌ−ｅａｒｔｈｑｕａｋｅｓ”，  ｈｔｔｐｓ：／／ｍｌｄａｔａ．ｏｒｇ／ｒｅｐｏｓｉｔｏｒｙ／ｄａｔａ／ｖｉｅｗｓｌｕｇ／ｇｌｏｂａｌ−ｅａｒｔｈｑｕａｋｅｓ／
【０１１８】
ここで、ＤＰ−ｍｅａｎｓ法では、ＵＳＧＳデータ集合に対してクラスタリングを実行した場合、目的関数の値が「６７５７．４  ±  ４６９．６」程度になり、計算時間が「３９．２  ±  ４．６」程度になってしまう傾向がある。したがって、ＤＰ−ｍｅａｎｓ法では、局所解に収束してしまい、好ましい解を得ることが難しい。
【０１１９】
また、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法では、ＵＳＧＳデータ集合に対してクラスタリングを実行した場合、目的関数の値が「１４９６．９  ±  ２４４８．０」程度になり、計算時間が「７５６３．２  ±  ２２０６．８  」程度になってしまう傾向がある。したがって、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法でも、局所解に収束してしまい、好ましい解を得ることが難しい。
【０１２０】
一方で、情報処理装置１００は、λ＾２＝１と固定し、ＵＳＧＳデータ集合に対して、図６〜図１０に示した初期化処理を繰り返した場合、目的関数の値を「３４２．５±９．０」程度にまで小さくすることができる。また、情報処理装置１００は、計算時間を「５．４±０．１」程度にまで小さくすることができる。
【０１２１】
このように、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法ではＯ（ｎ・ｋ２・ｌ）の計算量がかかる一方で、情報処理装置１００は、Ｏ（ｎ・ｌｏｇｋ）の計算量で初期化処理を実行することができ、計算量の増大化を抑制しつつ、目的関数の最小化を図ることができる。したがって、情報処理装置１００は、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法に比べ、同程度のクラスタ数でクラスタリングを実行した場合でも、１／ｋの計算量で済み、計算量の抑制と解の好ましさの向上とを両立させることができる。情報処理装置１００は、例えば、目的関数の値の分散を小さくし、局所解に収束する確率を低減することができ、局所解ではない、好ましい解を求める確率を向上させることができる。
【０１２２】
さらに、情報処理装置１００は、ＵＳＧＳデータ集合に対して、図６〜図１０に示した初期化処理と図１１に示した改善処理とを繰り返した場合、目的関数の値を「２８６．３  ±  ３．０」程度にまで小さくすることができる。また、情報処理装置１００は、計算時間を「１５９８．２  ±  １５９．１」程度にまで小さくすることができる。
【０１２３】
このように、情報処理装置１００は、Ｏ（ｎ・ｌｏｇｋ）の計算量で初期化処理を実行し、かつ、Ｏ（ｎ・ｋ・ｌ）の計算量で改善処理を実行することができ、計算量の増大化を抑制しつつ、目的関数の最小化を図ることができる。したがって、情報処理装置１００は、Ｇｒｉｄ  ｋ−ｍｅａｎｓ法に比べ、同程度のクラスタ数でクラスタリングを実行した場合でも、１／ｋの計算量で済み、計算量の抑制と解の好ましさの向上とを両立させることができる。情報処理装置１００は、例えば、目的関数の値の分散を小さくし、局所解に収束する確率を低減することができ、局所解ではない、好ましい解を求める確率を向上させることができる。
【０１２４】
図１２に示す地図画面１２００は、情報処理装置１００が、ＵＳＧＳデータ集合に対して、図６〜図１０に示した初期化処理と図１１に示した改善処理とを繰り返した結果であり、作成されたクラスタの代表点のデータ点を示している。
【０１２５】
図１２に示すように、地図画面１２００では、火山帯を示す場所に、クラスタの代表点のデータ点が設定されている。また、地図画面１２００では、火山帯を示す場所以外に、外れ値のデータ点ｅがあっても、クラスタの代表点のデータ点として設定されていない。このように、情報処理装置１００は、外れ値のデータ点のみについてクラスタを作成してしまうことがなく、「外れ値に強い」という性質を実現することができる。このため、利用者は、地震震源の解析にとって比較的有用な情報を把握することができる。
【０１２６】
（実施例１における初期化処理手順）
次に、図１３を用いて、実施例１における初期化処理手順の一例について説明する。
【０１２７】
図１３は、実施例１における初期化処理手順の一例を示すフローチャートである。図１３において、まず、情報処理装置１００は、データ点集合Ｘと、クラスタ粒度パラメータλとの入力を受け付ける（ステップＳ１３０１）。
【０１２８】
次に、情報処理装置１００は、データ点集合Ｘのいずれかのデータ点を、クラスタの代表点ｃ0として等確率でサンプリングし、クラスタ集合Ｃ←｛ｃ０｝を設定する（ステップＳ１３０２）。そして、情報処理装置１００は、テータ点群Ｘのそれぞれのデータ点を割り当てたクラスタを特定するためのクラスタ割り当てインデックスとしてＩ＝｛ｃ０，ｃ０，・・・，ｃ０｝を設定する（ステップＳ１３０３）。さらに、情報処理装置１００は、探索キューとしてＱ＝｛ｃ０｝を設定する（ステップＳ１３０４）。
【０１２９】
次に、情報処理装置１００は、探索キューＱから、いずれかのクラスタの代表点ｃを取り出し、クラスタ割り当てインデックスＩに基づいて、データ点集合Ｘから、取り出した代表点ｃに対応付けられたデータ点部分集合Ｘｃを取り出す（ステップＳ１３０５）。そして、情報処理装置１００は、データ点部分集合Ｘｃのいずれかのデータを、クラスタの代表点ｃからの距離に比例する確率でサンプリングし、新たなクラスタの代表点の候補点ｃ’に設定する（ステップＳ１３０６）。
【０１３０】
次に、情報処理装置１００は、データ点部分集合Ｘｃに基づいて、代表点ｃと代表点の候補点ｃ’との２点でクラスタを作成した方が、目的関数の値が改善するか否かを判定する（ステップＳ１３０７）。ここで、目的関数の値が改善しない場合（ステップＳ１３０７：Ｎｏ）、情報処理装置１００は、ステップＳ１３１０の処理に移行する。
【０１３１】
一方で、目的関数の値が改善する場合（ステップＳ１３０７：Ｙｅｓ）、情報処理装置１００は、クラスタ集合Ｃ←Ｃ∪｛ｃ’｝を設定し、探索キューＱ←Ｑ∪｛ｃ，ｃ’｝を設定する（ステップＳ１３０８）。次に、情報処理装置１００は、データ点部分集合Ｘｃのそれぞれのデータ点を、代表点ｃのクラスタと代表点ｃ’のクラスタとに割り当て直し、クラスタ割り当てインデックスＩを更新する（ステップＳ１３０９）。
【０１３２】
そして、情報処理装置１００は、Ｑ＝Φであるか否かを判定する（ステップＳ１３１０）。ここで、Ｑ＝Φではない場合（ステップＳ１３１０：Ｎｏ）、情報処理装置１００は、ステップＳ１３０５の処理に戻る。
【０１３３】
一方で、Ｑ＝Φである場合（ステップＳ１３１０：Ｙｅｓ）、情報処理装置１００は、クラスタ集合Ｃを、それぞれのクラスタの代表点の初期値を示す情報として出力する（ステップＳ１３１１）。そして、情報処理装置１００は、初期化処理を終了する。これにより、情報処理装置１００は、クラスタ数を増やしながら、クラスタリングの最適化を図ることができる。
【０１３４】
（実施例１における改善処理手順）
次に、図１４を用いて、実施例１における改善処理手順の一例について説明する。
【０１３５】
図１４は、実施例１における改善処理手順の一例を示すフローチャートである。図１４において、まず、情報処理装置１００は、データ点集合Ｘと、クラスタ粒度パラメータλと、図１３の初期化処理によって出力されたクラスタ集合Ｃとを取得する（ステップＳ１４０１）。
【０１３６】
次に、情報処理装置１００は、クラスタ集合Ｃを、それぞれのクラスタの代表点の初期値を示す情報として設定し、ｋ−ｍｅａｎｓ法を用いて、それぞれのクラスタの代表点を更新する（ステップＳ１４０２）。そして、情報処理装置１００は、改善処理を終了する。これにより、情報処理装置１００は、初期化処理を精度よく実行しやすくし、効率よくクラスタリングの最適化を図ることができる。
【０１３７】
（情報処理装置１００の実施例２）
次に、図１５〜図１７を用いて、情報処理装置１００の実施例２について説明する。ここで、実施例１では、クラスタ粒度パラメータを固定した場合について説明した。これに対し、複数のクラスタ粒度パラメータを用いて、クラスタの粒度が比較的大きい場合からクラスタの粒度が比較的小さい場合までに、作成されるクラスタがどのように変化するのかを解析することが求められる場合がある。
【０１３８】
このため、実施例２では、情報処理装置１００が、複数のクラスタ粒度パラメータλ１，λ２，・・・，λｌを用意しておき、クラスタ粒度パラメータを可変にする場合について説明する。これにより、情報処理装置１００は、利用者に「比較的大きい粒度で作成されたクラスタが、比較的小さい粒度で作成されたいずれのクラスタに遷移したか」の情報を把握させることができる。まず、図１５を用いて、実施例２における情報処理装置１００の１回目の割り当ての流れについて説明する。
【０１３９】
図１５は、実施例２における情報処理装置１００の１回目の割り当ての流れを示す説明図である。図１５において、情報処理装置１００は、利用者の操作入力に基づいて、複数のデータ点を取得する。情報処理装置１００は、複数のデータ点のいずれかのデータ点を選択し、最初のクラスタ１５００の代表点になるデータ点に設定する。情報処理装置１００は、最初のクラスタ１５００に複数のデータ点を割り当てる。情報処理装置１００は、最初のクラスタ１５００を、分割対象になる初期クラスタとして設定する。
【０１４０】
次に、図１６を用いて、実施例２における情報処理装置１００のクラスタ粒度パラメータを設定した際の割り当ての流れについて説明する。
【０１４１】
図１６は、実施例２における情報処理装置１００のクラスタ粒度パラメータを設定した際の割り当ての流れを示す説明図である。図１６において、情報処理装置１００は、用意した複数のクラスタ粒度パラメータλ１，λ２，・・・，λｌのうち最大値λ１を、図６〜図１０に示した初期化処理に用いるクラスタ粒度パラメータとして設定し、初期化処理を実行する。これにより、情報処理装置１００は、クラスタ１５００に包含されるクラスタ１６０１とクラスタ１６０２とを作成することができる。情報処理装置１００は、クラスタ１６０１とクラスタ１６０２とについては分割しないと判定したとする。
【０１４２】
ここで、初期化処理では上記式（３）の分割条件が用いられる。上記式（３）の分割条件は、いずれかのクラスタ粒度パラメータで満たされる場合、そのクラスタ粒度パラメータより小さく、クラスタの粒度をより小さくするようなクラスタ粒度パラメータでも満たされるという性質がある。したがって、比較的大きいクラスタ粒度パラメータで作成されたクラスタは、比較的小さいクラスタ粒度パラメータで作成されるクラスタを包含する性質があり、クラスタ間で階層構造を形成する性質がある。
【０１４３】
このため、情報処理装置１００が、最大値λ１を用いた初期化処理によって作成されたクラスタを、２番目に大きいクラスタ粒度パラメータλ２を用いて、さらに分割することが好ましいか否かを判定し、階層的なクラスタを作成することが考えられる。
【０１４４】
次に、図１７を用いて、実施例２における情報処理装置１００のクラスタ粒度パラメータを変更した際の割り当ての流れについて説明する。
【０１４５】
図１７は、実施例２における情報処理装置１００のクラスタ粒度パラメータを変更した際の割り当ての流れを示す説明図である。図１７において、情報処理装置１００は、２番目に大きいクラスタ粒度パラメータλ２を、図６〜図１０に示した初期化処理に用いるクラスタ粒度パラメータとして設定し、初期化処理を実行する。これにより、情報処理装置１００は、クラスタ１６０１に包含されるクラスタ１７０１とクラスタ１７０２とを作成することができ、クラスタ１６０２に包含されるクラスタ１７０３とクラスタ１７０４とを作成することができる。情報処理装置１００は、クラスタ１７０１〜１７０４については分割しないと判定したとする。
【０１４６】
このように、情報処理装置１００は、クラスタ粒度パラメータを変更しながら初期化処理を実行することにより、粒度が異なるクラスタを階層構造を保持しつつ作成することができる。そして、情報処理装置１００は、クラスタ粒度パラメータごとに、作成されたクラスタを対応付けて出力することができる。これにより、利用者は、粒度の異なる階層的なクラスタを把握し、解析処理などに用いることができる。
【０１４７】
具体的には、利用者が、人の位置データに基づいて、人の位置分布を解析しようとする場合が考えられる。この場合、情報処理装置１００は、東京、神奈川などの都道府県程度の大きさのクラスタを作成し、かつ、都道府県程度の大きさのクラスタに包含される、新宿、原宿、六本木などの市区町村程度の大きさのクラスタを、階層構造を保持しつつ作成することができる。これにより、利用者は、粒度の異なるクラスタを把握し、クラスタ間の階層構造を把握することができ、人の位置分布を解析する際に有用な情報を把握しやすくなる。
【０１４８】
（実施例２における初期化処理手順）
次に、図１８を用いて、実施例２における初期化処理手順の一例について説明する。
【０１４９】
図１８は、実施例２における初期化処理手順の一例を示すフローチャートである。図１８において、情報処理装置１００は、変数ｉ＝０を用意する。
【０１５０】
まず、情報処理装置１００は、データ点集合Ｘと、クラスタ粒度パラメータ集合Λとの入力を受け付ける（ステップＳ１８０１）。次に、情報処理装置１００は、クラスタ粒度パラメータΛを降順にソートし、Λ＝｛λ１，λ２，・・・，λｌ｝と設定する（ステップＳ１８０２）。そして、情報処理装置１００は、初期クラスタ集合Ｃ（０）←｛データ点集合Ｘの重心点｝を設定する（ステップＳ１８０３）。
【０１５１】
次に、情報処理装置１００は、変数ｉ＝ｉ＋１を設定する（ステップＳ１８０４）。そして、情報処理装置１００は、クラスタ粒度パラメータλｉを用いて、クラスタ集合Ｃ（ｉ−１）に対して実施例１における初期化処理と同様の処理を実行することにより、クラスタ集合Ｃ（ｉ）を出力する（ステップＳ１８０５）。
【０１５２】
次に、情報処理装置１００は、ｉ＞ｌであるか否かを判定する（ステップＳ１８０６）。ここで、ｉ＞ｌではない場合（ステップＳ１８０６：Ｎｏ）、情報処理装置１００は、ステップＳ１８０４の処理に戻る。
【０１５３】
一方で、ｉ＞ｌである場合（ステップＳ１８０６：Ｙｅｓ）、情報処理装置１００は、クラスタ集合Ｃ（０）、Ｃ（１）、・・・、Ｃ（ｌ）を出力する（ステップＳ１８０７）。そして、情報処理装置１００は、初期化処理を終了する。これにより、情報処理装置１００は、クラスタ粒度パラメータλを変えつつ、クラスタ数を増やしながら、クラスタリングの最適化を図ることができる。
【０１５４】
（実施例２における改善処理手順）
次に、図１９を用いて、実施例２における改善処理手順の一例について説明する。
【０１５５】
図１９は、実施例２における改善処理手順の一例を示すフローチャートである。図１９において、まず、情報処理装置１００は、データ点集合Ｘと、クラスタ粒度パラメータ集合Λと、図１８の初期化処理によって出力されたクラスタ集合Ｃ（０）、Ｃ（１）、・・・、Ｃ（ｌ）とを取得する（ステップＳ１９０１）。
【０１５６】
次に、情報処理装置１００は、クラスタ集合Ｃ（０）、Ｃ（１）、・・・、Ｃ（ｌ）を、それぞれのクラスタの代表点の初期値を示す情報として設定し、ｋ−ｍｅａｎｓ法を用いて、それぞれのクラスタの代表点を更新する（ステップＳ１９０２）。そして、情報処理装置１００は、改善処理を終了する。これにより、情報処理装置１００は、初期化処理を精度よく実行しやすくし、効率よくクラスタリングの最適化を図ることができる。
【０１５７】
以上説明したように、情報処理装置１００によれば、クラスタに属する複数のデータのいずれかのデータを選択することができる。情報処理装置１００によれば、選択したいずれかのデータを新たなクラスタの代表点のデータに設定し、複数のデータをクラスタと新たなクラスタとに分類した場合の目的関数の値が、分類前よりも評価が高いことを示すか否かを判定することができる。情報処理装置１００によれば、分類前よりも評価が高いことを示す場合、複数のデータをクラスタと新たなクラスタとに分類することができる。これにより、情報処理装置１００は、クラスタリングの最適化を図ることができる。
【０１５８】
情報処理装置１００によれば、複数のデータをクラスタと新たなクラスタとに分類した場合、分割対象として分類後のクラスタと分類後の新たなクラスタとの少なくともいずれかを設定することができる。これにより、情報処理装置１００は、クラスタを繰り返し分割させ、クラスタ数の最適化を図り、クラスタリングの最適化を図ることができる。
【０１５９】
情報処理装置１００によれば、複数のデータのそれぞれのデータの、クラスタの代表点のデータからの距離に比例する確率で、複数のデータのいずれかのデータを選択することができる。これにより、情報処理装置１００は、新たなクラスタに属する方が好ましいデータを選択しやすくし、クラスタを分割した方が好ましいか否かを精度よく判定可能にすることができる。
【０１６０】
情報処理装置１００によれば、複数のデータをクラスタと新たなクラスタとに分類した場合、ｋ−ｍｅａｎｓ法を用いて、クラスタの代表点のデータと、新たなクラスタの代表点のデータとを更新することができる。これにより、情報処理装置１００は、初期化処理を精度よく実行しやすくし、効率よくクラスタリングの最適化を図ることができる。
【０１６１】
情報処理装置１００によれば、分類前よりも評価が高いことを示さない場合、ペナルティ項をクラスタ数の増加を抑制する度合いが小さくなるように変更し、クラスタに属する複数のデータのいずれかのデータを選択し直すことができる。これにより、情報処理装置１００は、クラスタ数の増加を抑制する度合いを順に小さくし、粒度が大きいクラスタを作成した後に、粒度が大きいクラスタに含まれるように粒度が小さいクラスタも作成して、複数のデータを分類させることができる。このため、情報処理装置１００は、階層的なクラスタを作成することができる。
【０１６２】
情報処理装置１００によれば、変更前のペナルティ項に対応付けて変更前のペナルティ項を有する目的関数を用いて分類した結果を出力し、変更後のペナルティ項に対応付けて変更後のペナルティ項を有する目的関数を用いて分類した結果を出力することができる。これにより、情報処理装置１００は、それぞれの粒度でどのようなクラスタが作成され、複数のデータが分類されたのかを、粒度ごとに利用者に把握させることができる。このため、利用者は、画像処理、音声認識、自然言語処理、センサデータ処理、ＤＮＡのシーケンスマイニング、人の位置データ解析などの精度向上を図ることができる。
【０１６３】
情報処理装置１００によれば、複数のデータをクラスタと新たなクラスタとに分類した場合、ペナルティ項をクラスタ数の増加を抑制する度合いが小さくなるように変更することができる。これにより、情報処理装置１００は、クラスタ数の増加を抑制する度合いを順に小さくし、粒度が大きいクラスタを作成した後に、粒度が大きいクラスタに含まれるように粒度が小さいクラスタも作成して、複数のデータを分類させることができる。このため、情報処理装置１００は、階層的なクラスタを作成することができる。
【０１６４】
なお、本実施の形態で説明したクラスタリング方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明したクラスタリングプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明したクラスタリングプログラムは、インターネット等のネットワークを介して配布してもよい。
【０１６５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１６６】
（付記１）コンピュータが、
クラスタに属する複数のデータのいずれかのデータを選択し、
選択した前記いずれかのデータを新たなクラスタの代表点のデータに設定し、前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合の、クラスタ数の増加を抑制するペナルティ項を有する目的関数の値が、分類前よりも評価が高いことを示すか否かを判定し、
分類前よりも評価が高いことを示す場合、前記複数のデータを前記クラスタと前記新たなクラスタとに分類する、
処理を実行することを特徴とするクラスタリング方法。
【０１６７】
（付記２）前記コンピュータが、
分割対象になる前記クラスタに属する前記複数のデータのいずれかのデータを選択し、
選択した前記いずれかのデータを前記新たなクラスタの代表点のデータに設定し、前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合の、前記目的関数の値が、分類前よりも評価が高いことを示すか否かを判定し、
分類前よりも評価が高いことを示す場合、前記複数のデータを前記クラスタと前記新たなクラスタとに分類し、
前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合、前記分割対象として分類後の前記クラスタと分類後の前記新たなクラスタとの少なくともいずれかを設定する、
処理を実行することを特徴とする付記１に記載のクラスタリング方法。
【０１６８】
（付記３）前記選択する処理は、
前記複数のデータのそれぞれのデータの、前記クラスタの代表点のデータからの距離に比例する確率で、前記複数のデータのいずれかのデータを選択する、ことを特徴とする付記１または２に記載のクラスタリング方法。
【０１６９】
（付記４）前記コンピュータが、
前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合、ｋ−ｍｅａｎｓ法を用いて、前記クラスタの代表点のデータと、前記新たなクラスタの代表点のデータとを更新する、処理を実行することを特徴とする付記１〜３のいずれか一つに記載のクラスタリング方法。
【０１７０】
（付記５）前記コンピュータが、
分類前よりも評価が高いことを示さない場合、前記ペナルティ項をクラスタ数の増加を抑制する度合いが小さくなるように変更する、処理を実行し、
前記選択する処理は、
前記クラスタに属する前記複数のデータのいずれかのデータを選択し直す、ことを特徴とする付記１〜４のいずれか一つに記載のクラスタリング方法。
【０１７１】
（付記６）前記コンピュータが、
変更前の前記ペナルティ項に対応付けて変更前の前記ペナルティ項を有する前記目的関数を用いて分類した結果を出力し、変更後の前記ペナルティ項に対応付けて変更後の前記ペナルティ項を有する前記目的関数を用いて分類した結果を出力する、処理を実行することを特徴とする付記５に記載のクラスタリング方法。
【０１７２】
（付記７）前記コンピュータが、
前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合、前記ペナルティ項をクラスタ数の増加を抑制する度合いが小さくなるように変更する、処理を実行することを特徴とする付記２に記載のクラスタリング方法。
【０１７３】
（付記８）コンピュータに、
クラスタに属する複数のデータのいずれかのデータを選択し、
選択した前記いずれかのデータを新たなクラスタの代表点のデータに設定し、前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合の、クラスタ数の増加を抑制するペナルティ項を有する目的関数の値が、分類前よりも評価が高いことを示すか否かを判定し、
分類前よりも評価が高いことを示す場合、前記複数のデータを前記クラスタと前記新たなクラスタとに分類する、
処理を実行させることを特徴とするクラスタリングプログラム。
【０１７４】
（付記９）クラスタに属する複数のデータのいずれかのデータを選択し、
選択した前記いずれかのデータを新たなクラスタの代表点のデータに設定し、前記複数のデータを前記クラスタと前記新たなクラスタとに分類した場合の、クラスタ数の増加を抑制するペナルティ項を有する目的関数の値が、分類前よりも評価が高いことを示すか否かを判定し、
分類前よりも評価が高いことを示す場合、前記複数のデータを前記クラスタと前記新たなクラスタとに分類する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【０１７５】
１００  情報処理装置
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  記録媒体Ｉ／Ｆ
２０５  記録媒体
２１０  ネットワーク
５００  記憶部
５０１  取得部
５０２  設定部
５０３  選択部
５０４  判定部
５０５  分類部
５０６  出力部
１２００  地図画面
【図１】
2018195089.tif 000006
【図２】
2018195089.tif 000007
【図３】
2018195089.tif 000008
【図４】
2018195089.tif 000009
【図５】
2018195089.tif 000010
【図６】
2018195089.tif 000011
【図７】
2018195089.tif 000012
【図８】
2018195089.tif 000013
【図９】
2018195089.tif 000014
【図１０】
2018195089.tif 000015
【図１１】
2018195089.tif 000016
【図１２】
2018195089.tif 000017
【図１３】
2018195089.tif 000018
【図１４】
2018195089.tif 000019
【図１５】
2018195089.tif 000020
【図１６】
2018195089.tif 000021
【図１７】
2018195089.tif 000022
【図１８】
2018195089.tif 000023
【図１９】
2018195089.tif 000024