(57)【要約】      （修正有）【課題】パラメータの設定を事前に行うことなく、より精度良くクラスタリングを行う装置、方法及びプログラムを提供する。【解決手段】２以上の要素を有するベクトルである２以上の対象データを受け付ける受付部１１と、粘菌の中心のセルに相当する情報である１つのハブセル情報と、採餌のために中心のセルから分裂するセルに相当する情報である１以上の分枝セル情報とを有する情報である粘菌情報を、２以上の対象データを用いて構成する構成する粘菌情報構成部１２と、２以上の対象データを、構成済みの粘菌情報が有する１以上の各分枝セル情報が有するベクトルとの距離が最も近い分枝セル情報に対応付け、分枝セル情報の数と同数のクラスタにクラスタリングするクラスタリング部１３と、クラスタリングの結果を出力する出力部１４とを備える。【選択図】図３
2016051461.tif 000002
【特許請求の範囲】
【請求項１】
クラスタリングの対象となるデータであり、２以上の要素を有するベクトルである２以上の対象データを受け付ける受付部と、
粘菌の採餌行動をモデル化した情報であり、粘菌の中心のセルに相当する情報である１つのハブセル情報と、採餌のために当該中心のセルから分裂するセルに相当する情報である１以上の分枝セル情報との２以上のセル情報を有する情報であり、ハブセル情報と分枝セル情報とは、対象データと同次元のベクトルを有する情報である粘菌情報を、前記２以上の対象データを用いて構成する粘菌情報構成部と、
前記２以上の対象データを、前記粘菌情報構成部が構成した粘菌情報が有する１以上の分枝セル情報のうち、当該分枝セル情報が有するベクトルとの距離が最も近い分枝セル情報に対応付け、当該分枝セル情報の数と同数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部によるクラスタリングの結果を出力する出力部とを備え、
前記粘菌情報構成部は、
前記２以上の対象データの平均を算出し、当該平均のベクトルを有するハブセル情報を構成するハブセル情報構成手段と、
前記２以上の対象データおよび構成済みの粘菌情報を用いて、新たな分枝セル情報を構成する処理と、構成済みの分枝セル情報が有するベクトルを、前記２以上の対象データのうちのいずれか１つの対象データとの距離を小さくするように更新する処理とを行う分枝セル情報構成手段とを備えるクラスタリング装置。
【請求項２】
前記分枝セル情報構成手段は、
前記２以上の対象データの中から一の対象データを１回以上選択し、当該一の対象データとの距離が最も近いベクトルを有するセル情報である勝者セル情報を、構成済みの粘菌情報から特定し、当該勝者セル情報がハブセル情報である場合は、新たな分枝セル情報を構成し、当該勝者セル情報が分枝セル情報である場合は、当該一の対象データとの距離を小さくするように当該分枝セル情報が有するベクトルを更新する請求項１記載のクラスタリング装置。
【請求項３】
前記分枝セル情報構成手段は、
前記２以上の対象データの中から一の対象データを１回以上選択し、当該一の対象データとの距離が最も近いベクトルを有するセル情報がハブセル情報である場合に、当該ハブセル情報が有するベクトルと、当該一の対象データとを内分するベクトルを算出し、当該算出したベクトルを有する新たな分枝セル情報を構成する請求項１または請求項２記載のクラスタリング装置。
【請求項４】
前記分枝セル情報は、分枝セル情報が有するベクトルの更新に用いる係数である学習係数を有し、
前記分枝セル情報構成手段は、
前記２以上の対象データの中から一の対象データを１回以上選択し、当該一の対象データとの距離が最も近いベクトルを有するセル情報が分枝セル情報である場合に、当該分枝セル情報が有する学習係数と、当該分枝セル情報が有するベクトルと、当該一の対象データとを用いて、当該一の対象データとの距離を小さくするように当該分枝セル情報が有するベクトルを更新する請求項１から請求項３いずれか一項に記載のクラスタリング装置。
【請求項５】
前記分枝セル情報構成手段は、
前記２以上の対象データの中から一の対象データを１回以上選択し、当該選択のたびに、当該選択した回数である学習回数をカウントし、当該学習回数が予め決められた条件を満たすほど多い場合に、分枝セル情報の構成を終了する請求項１から請求項４いずれか一項に記載のクラスタリング装置。
【請求項６】
前記分枝セル情報構成手段は、
前記２以上の対象データの中から一の対象データを１回以上選択し、当該選択のたびに、当該選択した回数である学習回数をカウントし、現在の学習回数と、新たな分枝セル情報の構成時の学習回数との差が、対象データの数を、構成済みの粘菌情報が有する分枝セル情報の数で割った値よりも大きい場合に、分枝セル情報の構成を終了する請求項１から請求項４いずれか一項に記載のクラスタリング装置。
【請求項７】
前記分枝セル情報構成手段は、
構成済みの分枝セル情報が有するベクトルを更新するたびに、当該分枝セル情報に対して、更新前のベクトルと、更新後のベクトルとの距離である移動量を算出し、かつ、算出した移動量のうちの最大の移動量である最大移動量を取得し、当該算出した移動量が予め決められた回数以上連続して最大移動量の５パーセント以下である場合に、分枝セル情報の構成を終了する請求項１から請求項４いずれか一項に記載のクラスタリング装置。
【請求項８】
クラスタリングの対象となるデータであり、２以上の要素を有するベクトルである２以上の対象データを受け付ける受付部と、
対象データと同次元のベクトルを有する情報である１つのハブセル情報と、対象データと同次元のベクトルを有する情報である１以上の分枝セル情報との２以上のセル情報を有する情報である粘菌情報を、前記２以上の対象データを用いて構成する粘菌情報構成部と、
前記２以上の対象データを、前記粘菌情報構成部が構成した粘菌情報が有する１以上の分枝セル情報のうち、当該分枝セル情報が有するベクトルとの距離が最も近い分枝セル情報に対応付け、当該分枝セル情報の数と同数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部によるクラスタリングの結果を出力する出力部とを備え、
前記粘菌情報構成部は、
前記２以上の対象データの平均を算出し、当該平均のベクトルを有するハブセル情報を構成するハブセル情報構成手段と、
前記２以上の対象データおよび構成済みの粘菌情報を用いて、新たな分枝セル情報を構成する処理と、構成済みの分枝セル情報が有するベクトルを、前記２以上の対象データのうちのいずれか１つの対象データとの距離を小さくするように更新する処理とを行う分枝セル情報構成手段とを備えるクラスタリング装置。
【請求項９】
受付部と、粘菌情報構成部と、クラスタリング部と、出力部と、前記粘菌情報構成部が備えるハブセル情報構成手段と、前記粘菌情報構成部が備える分枝セル情報構成手段とを用いて行われるクラスタリング方法であって、
前記受付部が、
クラスタリングの対象となるデータであり、２以上の要素を有するデータである２以上の対象データを受け付ける受付ステップと、
前記粘菌情報構成部が、
粘菌の採餌行動をモデル化した情報であり、粘菌の中心のセルに相当する情報である１つのハブセル情報と、採餌のために当該中心のセルから分裂するセルに相当する情報である１以上の分枝セル情報との２以上のセル情報を有する情報であり、ハブセル情報と分枝セル情報とは、対象データと同次元のベクトルを有する情報である粘菌情報を、前記２以上の対象データを用いて構成する粘菌情報構成ステップと、
前記クラスタリング部が、
前記２以上の対象データを、前記粘菌情報構成部が構成した粘菌情報が有する１以上の分枝セル情報のうち、当該分枝セル情報が有するベクトルとの距離が最も近い分枝セル情報に対応付け、当該分枝セル情報の数と同数のクラスタにクラスタリングするクラスタリングステップと、
前記出力部が、
前記クラスタリング部によるクラスタリングの結果を出力する出力ステップとを備え、
前記粘菌情報構成ステップは、
前記ハブセル情報構成手段が、
前記２以上の対象データの平均を算出し、当該平均のベクトルを有するハブセル情報を構成するハブセル情報構成ステップと、
前記分枝セル情報構成手段が、
前記２以上の対象データおよび構成済みの粘菌情報を用いて、新たな分枝セル情報を構成する処理と、構成済みの分枝セル情報が有するベクトルを、前記２以上の対象データのうちのいずれか１つの対象データとの距離を小さくするように更新する処理とを行う分枝セル情報構成ステップとを備えるクラスタリング方法。
【請求項１０】
コンピュータを、
クラスタリングの対象となるデータであり、２以上の要素を有するベクトルである２以上の対象データを受け付ける受付部と、
粘菌の採餌行動をモデル化した情報であり、粘菌の中心のセルに相当する情報である１つのハブセル情報と、採餌のために当該中心のセルから分裂するセルに相当する情報である１以上の分枝セル情報との２以上のセル情報を有する情報であり、ハブセル情報と分枝セル情報とは、対象データと同次元のベクトルを有する情報である粘菌情報を、前記２以上の対象データを用いて構成する粘菌情報構成部と、
前記２以上の対象データを、前記粘菌情報構成部が構成した粘菌情報が有する１以上の分枝セル情報のうち、当該分枝セル情報が有するベクトルとの距離が最も近い分枝セル情報に対応付け、当該分枝セル情報の数と同数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部によるクラスタリングの結果を出力する出力部として機能させるためのプログラムであって、
前記粘菌情報構成部を、
前記２以上の対象データの平均を算出し、当該平均のベクトルを有するハブセル情報を構成するハブセル情報構成手段、
前記２以上の対象データおよび構成済みの粘菌情報を用いて、新たな分枝セル情報を構成する処理と、構成済みの分枝セル情報が有するベクトルを、前記２以上の対象データのうちのいずれか１つの対象データとの距離を小さくするように更新する処理とを行う分枝セル情報構成手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データをクラスタリングするクラスタリング装置等に関するものである。
【背景技術】
【０００２】
データのクラスタリングの手法として、例えば、Ｋ平均法が挙げられる。この手法では、クラスタリングの個数Ｋを指定しなければならないため、クラスタリングの精度に対してＫの値が大きな影響を与える。このような個数Ｋなどのパラメータの設定は、経験と勘に基づく属人的なものであり、非常に手間のかかる作業である。
【０００３】
クラスタリングの対象となるデータに対して、精度の高いクラスタリング結果を得るために最適なパラメータの値を求めることは、組み合わせ最適化問題の解を得ることであると捉えることができる。組み合わせ最適化問題とその解法には種々のものが提言されている。例えば非特許文献１のような自己組織化写像の算法や、非特許文献２のような綱引きモデルの算法も、組み合わせ最適化問題を解く手法の一つである。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】斎藤他，局所距離情報を用いた成長ＳＯＭのＴＳＰ解法，電子情報通信学会技術研究報告．ＮＬＰ，非線形問題１１１（２７６），６９−７４，２０１１−１１−０２
【非特許文献２】非特許文献２：青野他，粘菌コンピュータと確率探索アルゴリズム，システム制御情報学会誌５５（１２），５２６−５３１，２０１１−１２−１５
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のクラスタリングでは、クラスタリングの対象となるデータの性質や分布を見極めながら、パラメータの設定を事前に行っておく必要があった。
【課題を解決するための手段】
【０００６】
本第一の発明のクラスタリング装置は、クラスタリングの対象となるデータであり、２以上の要素を有するベクトルである２以上の対象データを受け付ける受付部と、粘菌の採餌行動をモデル化した情報であり、粘菌の中心のセルに相当する情報である１つのハブセル情報と、採餌のために中心のセルから分裂するセルに相当する情報である１以上の分枝セル情報との２以上のセル情報を有する情報であり、ハブセル情報と分枝セル情報とは、対象データと同次元のベクトルを有する情報である粘菌情報を、２以上の対象データを用いて構成する粘菌情報構成部と、２以上の対象データを、粘菌情報構成部が構成した粘菌情報が有する１以上の分枝セル情報のうち、分枝セル情報が有するベクトルとの距離が最も近い分枝セル情報に対応付け、分枝セル情報の数と同数のクラスタにクラスタリングするクラスタリング部と、クラスタリング部によるクラスタリングの結果を出力する出力部とを備え、粘菌情報構成部は、２以上の対象データの平均を算出し、平均のベクトルを有するハブセル情報を構成するハブセル情報構成手段と、２以上の対象データおよび構成済みの粘菌情報を用いて、新たな分枝セル情報を構成する処理と、構成済みの分枝セル情報が有するベクトルを、２以上の対象データのうちのいずれか１つの対象データとの距離を小さくするように更新する処理とを行う分枝セル情報構成手段とを備えるクラスタリング装置である。
【０００７】
このような構成により、パラメータの設定を事前に行うことなく、より精度良くクラスタリングを行うことができる。
【０００８】
また、本第二の発明のクラスタリング装置は、第一の発明に対して、分枝セル情報構成手段は、２以上の対象データの中から一の対象データを１回以上選択し、一の対象データとの距離が最も近いベクトルを有するセル情報である勝者セル情報を、構成済みの粘菌情報から特定し、勝者セル情報がハブセル情報である場合は、新たな分枝セル情報を構成し、勝者セル情報が分枝セル情報である場合は、一の対象データとの距離を小さくするように分枝セル情報が有するベクトルを更新するクラスタリング装置である。
【０００９】
このような構成により、粘菌に対して新たな分枝セルを追加する、および、追加済みの分枝セルを、餌に見立てた対象データに近づけることにより、パラメータの設定を事前に行うことなく、より精度良くクラスタリングを行うことができる。
【００１０】
また、本第三の発明のクラスタリング装置は、第一または第二の発明に対して、分枝セル情報構成手段は、２以上の対象データの中から一の対象データを１回以上選択し、一の対象データとの距離が最も近いベクトルを有するセル情報がハブセル情報である場合に、ハブセル情報が有するベクトルと、一の対象データとを内分するベクトルを算出し、算出したベクトルを有する新たな分枝セル情報を構成するクラスタリング装置である。
【００１１】
このような構成により、粘菌に対して、餌に見立てた対象データとハブセルとの間に分枝セルを追加することにより、パラメータの設定を事前に行うことなく、より精度良くクラスタリングを行うことができる。
【００１２】
また、本第四の発明のクラスタリング装置は、第一から第三いずれか１つの発明に対して、分枝セル情報は、分枝セル情報が有するベクトルの更新に用いる係数である学習係数を有し、分枝セル情報構成手段は、２以上の対象データの中から一の対象データを１回以上選択し、一の対象データとの距離が最も近いベクトルを有するセル情報が分枝セル情報である場合に、分枝セル情報が有する学習係数と、分枝セル情報が有するベクトルと、一の対象データとを用いて、一の対象データとの距離を小さくするように分枝セル情報が有するベクトルを更新するクラスタリング装置である。
【００１３】
このような構成により、分枝セルの学習係数に応じて、当該分枝セルを、餌に見立てた対象データに近づけることにより、パラメータの設定を事前に行うことなく、より精度良くクラスタリングを行うことができる。
【００１４】
また、本第五の発明のクラスタリング装置は、第一から第四いずれか１つの発明に対して、分枝セル情報構成手段は、２以上の対象データの中から一の対象データを１回以上選択し、選択のたびに、選択した回数である学習回数をカウントし、学習回数が予め決められた条件を満たすほど多い場合に、分枝セル情報の構成を終了するクラスタリング装置である。
【００１５】
このような構成により、学習回数が予め決められた条件を満たすほど多い場合に、分枝セル情報の構成を終了することにより、パラメータの設定を事前に行うことなく、より精度良くクラスタリングを行うことができる。
【００１６】
また、本第六の発明のクラスタリング装置は、第一から第四いずれか１つの発明に対して、分枝セル情報構成手段は、２以上の対象データの中から一の対象データを１回以上選択し、選択のたびに、選択した回数である学習回数をカウントし、現在の学習回数と、新たな分枝セル情報の構成時の学習回数との差が、対象データの数を、構成済みの粘菌情報が有する分枝セル情報の数で割った値よりも大きい場合に、分枝セル情報の構成を終了するクラスタリング装置である。
【００１７】
このような構成により、現在の学習回数と、新たな分枝セル情報の構成時の学習回数との差が、対象データの数を、構成済みの粘菌情報が有するセル情報の数で割った値よりも大きい場合に、分枝セル情報の構成を終了することにより、パラメータの設定を事前に行うことなく、より精度良くクラスタリングを行うことができる。
【００１８】
また、本第七の発明のクラスタリング装置は、第一から第四いずれか１つの発明に対して、分枝セル情報構成手段は、構成済みの分枝セル情報が有するベクトルを更新するたびに、分枝セル情報に対して、更新前のベクトルと、更新後のベクトルとの距離である移動量を算出し、かつ、算出した移動量のうちの最大の移動量である最大移動量を取得し、算出した移動量が予め決められた回数以上連続して最大移動量の５パーセント以下である場合に、分枝セル情報の構成を終了するクラスタリング装置である。
【００１９】
このような構成により、直近の所定数以上の移動量のすべてが、最大移動量の５パーセント以下である場合に、分枝セル情報の構成を終了することにより、パラメータの設定を事前に行うことなく、より精度良くクラスタリングを行うことができる。
【発明の効果】
【００２０】
本発明によるクラスタリング装置等によれば、パラメータの設定を事前に行うことなく、より精度良くクラスタリングを行うことができる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態１におけるデータモデルとしての粘菌の概念図
【図２】同クラスタリングの処理の流れを示すフローチャート
【図３】実施の形態２におけるクラスタリング装置１のブロック図
【図４】同クラスタリング装置１の全体動作について説明するフローチャート
【図５】同原形質情報の更新処理について説明するフローチャート
【図６】同新たな分枝セル情報の構成処理について説明するフローチャート
【図７】同学習係数の更新処理について説明するフローチャート
【図８】同構成済みの分枝セル情報の更新処理について説明するフローチャート
【図９】同終了の判断処理について説明するフローチャート
【図１０】同クラスタリング処理について説明するフローチャート
【図１１】同対象データの例を示す図
【図１２】同ハブセル情報の例を示す図
【図１３】同分枝セル情報の例を示す図
【図１４】同ハブセル情報の例を示す図
【図１５】同分枝セル情報の例を示す図
【図１６】同分枝セル情報の例を示す図
【図１７】同ハブセル情報の例を示す図
【図１８】同分枝セル情報の例を示す図
【図１９】同分枝セル情報の例を示す図
【図２０】同分枝セル情報の例を示す図
【図２１】同クラスタ情報の例を示す図
【図２２】同コンピュータシステムの概観図
【図２３】同コンピュータシステムのブロック図
【発明を実施するための形態】
【００２２】
以下、本発明によるクラスタリング装置等の実施の形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。また、本実施の形態において説明する各情報の形式、内容などは、あくまで例示であり、各情報の持つ意味を示すことができれば、形式、内容などは問わない。
【００２３】
（実施の形態１）
本発明によるクラスタリング装置が行うクラスタリングのアルゴリズムを、ソフトウェア・プログラムとして実装する。ＰＣ、ディスプレイを用意する。クラスタリング対象となるデータを指定の形式でフォルダに格納する。フォルダに格納したデータを入力データとし、本発明のアルゴリズムを実装したソフトウェア・プログラムを実行することで、パラメータ設定が不要なクラスタリングを実行可能である。
【００２４】
本発明のクラスタリングのアルゴリズムについて、添付図面を参照しながら説明する。
【００２５】
図１は、データモデルとしての粘菌の概念図である。粘菌は、ハブと分枝という二種類の粘菌セルから構成されている。ハブは、粘菌の初期化の工程で作成される粘菌セルである。分枝は、粘菌セルの追加を行う工程で作成される粘菌セルである。粘菌セルは、学習の度合いに関与する原形質情報と、位置を表すベクトル情報を保持している。複数の粘菌セルのひとまとまりを、一つの粘菌と見立てて取り扱う。
【００２６】
本発明のアルゴリズムでは、後述する種々の計算により粘菌の学習を繰り返すことで、対象データのクラスタリングを実現する。
【００２７】
図２は、本発明のクラスタリングのアルゴリズムのフローチャートである。図２に示されるように、本発明のアルゴリズムは、粘菌の初期化を行う工程と、勝者セルの決定を行う工程と、原形質情報の更新を行う工程と、粘菌セルの追加を行う工程と、学習係数の更新を行う工程と、勝者セルの移動を行う工程と、終了判定を行う工程と、クラスタの形成を行う工程を含む流れで構成されている。
【００２８】
粘菌の初期化を行う工程では、粘菌の中心となるハブを作成する。クラスタリング解析対象データの全ベクトル値から、重心ベクトルを算出する。対象データのベクトル値を数１とすると、重心ベクトルは数２により算出することができる。この重心ベクトルを値として保持する粘菌セルを一つ作成し、ハブとして配置する。このとき、ハブの持つ原形質情報の体積、速度、加速度はすべて初期値として０を設定する。
【００２９】
【数１】
2016051461.tif 000003
【００３０】
【数２】
2016051461.tif 000004
【００３１】
勝者セルの決定を行う工程では、移動対象となる粘菌セルを算出する。クラスタリング解析対象データの中からランダムに一つのデータを抽出し、入力データとする。全粘菌セルのうち、入力データから最も近い距離にある粘菌セルを算出する。算出した粘菌セルを勝者セルと呼ぶ。距離の計算においては、入力データのベクトルと、粘菌セルのベクトルから求める。
【００３２】
原形質情報の更新を行う工程では、全粘菌セルの原形質情報を更新する。まず各分枝について、ゾル量の計算処理と、加速度の更新処理と、速度の更新処理と、体積の更新処理を行う。そして、各分枝の体積から、ハブの体積の更新を行う。分枝のゾル量は数３のように算出する。算出した分枝のゾル量と、分枝が勝者セルであるかどうかを元にして、表１より分枝の加速度を求めることで加速度の更新を行う。分枝の現在の速度に、算出した加速度を加算することで速度の更新を行う。分枝の現在の体積に、更新した速度を加算することで体積の更新を行う。更新した全分枝の合計体積を、ハブの現在の体積から減算することでハブの体積を更新する。
【００３３】
【数３】
2016051461.tif 000005
【００３４】
【表１】
2016051461.tif 000006
【００３５】
勝者セルが、ハブか分枝かの判定を行う。勝者セルがハブである場合、粘菌セルの追加を行う工程へ処理を進める。勝者セルが分枝である場合、学習係数の更新を行う工程と、勝者セルの移動を行う工程に処理を進める。
【００３６】
粘菌セルの追加を行う工程では、新しい分枝としての粘菌セルを作成する。ハブのベクトルと、入力データのベクトルの内分ベクトルを算出する。内分比は、予め設定した値を利用する。新しく粘菌セルを作成し、作成した粘菌セルのベクトル情報に、算出した内分ベクトルを設定する。
【００３７】
学習係数の更新を行う工程では、すべての分枝の学習係数を更新する。各分枝において、原形質情報の更新を行う工程で算出した加速度が正の値かどうかを判定する。分枝の加速度が正の値である場合、学習係数の更新は行わない。分枝の加速度が正の値でない場合、学習係数の更新を行う。学習係数は数４のようにして更新する。
【００３８】
【数４】
2016051461.tif 000007
【００３９】
勝者セルの移動を行う工程では、勝者セルのベクトル情報を更新する。数５のようにして勝者セルのベクトルを更新する。
【００４０】
【数５】
2016051461.tif 000008
【００４１】
終了判定を行う工程では、まず、（ａ）最大学習回数に到達しているかどうかの判定、を実施し、最大学習回数に到達している場合は、終了判定は合格と判定し、クラスタの形成を行う工程へと進む。
【００４２】
（ａ）の判定が不合格の場合、以下の（ｂ）の判定を行う。それでも不合格の場合は、以下の（ｃ）の判定を実施する。（ｃ）での判定は、各分枝にて実施する。分枝の判定が合格となった時点で、終了判定を行う工程は終了とし、クラスタの形成を行う工程へと進む。
【００４３】
（ｂ）の判定：数６の式が真の場合、終了判定が合格であるとみなす。
【００４４】
【数６】
2016051461.tif 000009
【００４５】
（ｃ）の判定：もし、（ｂ）の判定が不合格の場合、閾値を算出する。分枝において、これまでの移動量のなかから最大値を取得し、その最大移動量の５％の値を閾値として扱う。次に、直近５回の学習における勝者セルの移動量が、この閾値以下の値となっているかどうか比較する。直近５回の学習すべてにおいて、勝者セルの移動量が閾値以下の値である場合、終了判定に合格したとみなす。直近５回の学習において、一度でも勝者セルの移動量が閾値より大きい値である場合、終了判定に不合格であるとみなす。
【００４６】
終了判定に不合格の場合、勝者セルの決定を行う工程から再度処理を進める。終了判定に合格の場合、クラスタの形成を行う工程へ処理を進める。
【００４７】
クラスタの形成を行う工程では、分枝の数だけクラスタを形成する。解析対象データをそれぞれ、最も近い距離にある分枝に紐付ける。それぞれの分枝に紐付いたデータのまとまりをクラスタとみなすことで、分枝数のクラスタを形成することができる。
【００４８】
（実施の形態２）
本実施の形態において、クラスタリングの対象となるデータを用いて、ハブセル情報の構成、分枝セル情報の構成を行うことにより粘菌情報を構成し、当該粘菌情報が有するハブセル情報を用いて当該データをクラスタリングするクラスタリング装置１について説明する。また、本実施の形態において、実施の形態１において説明した各工程についても、より詳細に説明する。
【００４９】
また、本実施の形態において、クラスタリングの対象となるデータ（以下、適宜、対象データとする）は、通常、２以上の要素を有する情報である。当該要素の数は、例えば、１以上であってもよい。また、対象データが有する要素は、数値であることが好適である。当該数値は、整数であってもよいし、実数であってもよいし、自然数であってもよい。また、対象データは、２以上の要素を有することから、いわゆるベクトルである。つまり、例えば、２つの要素を有する場合、対象データは、２次元のベクトルである。また、例えば、５つの要素を有する場合、対象データは、５次元のベクトルである。従って、対象データを、以下、適宜、ベクトル、または、ベクトルを有する情報とする。
【００５０】
また、対象データは、例えば、文書データ、人物データなどである。例えば、対象データが文書データである場合、当該文書データが有する要素は、例えば、予め決められた２以上の各形態素の文書における出現回数、予め決められた２以上の各形態素の文書における重要度、文書に出現する２以上の各形態素を識別する情報（例えば、ＩＤなど）などである。また、当該形態素は、例えば、単語、用語、名詞などであってもよい。また、例えば、対象データが人物データである場合、当該人物データが有する要素は、例えば、年齢、性別、血液型、生年月日、出身地、趣味などである。また、性別、血液型、出身地、趣味などは、通常、数値化されたものである。
【００５１】
また、対象データは、粘菌が捕食する餌に相当する情報、粘菌が捕食する餌に見立てた情報、などであるとも言える。また、当該捕食は、例えば、採餌、採食などであってもよい。
【００５２】
また、対象データは、例えば、クラスタリングの対象に基づいて取得されるベクトルであってもよい。当該クラスタリングの対象に基づいて取得されるベクトルとは、例えば、クラスタリングの対象が電子データである場合、当該電子データに対して予め決められた処理を行い、当該処理の結果得られるベクトルである。当該予め決められた処理は、電子データをベクトル化する処理、電子データを用いてベクトルを構成する処理、などである。また、当該クラスタリングの対象に基づいて取得されるベクトルとは、例えば、クラスタリングの対象が物体（有体物）である場合、当該物体の客観的または主観的な属性値（数値）を要素とするベクトルである。つまり、例えば、ユーザが、２以上の文書のクラスタリングを所望する場合、対象データは、例えば、当該２以上の各文書に出現する２以上の各形態素の出現回数を要素とするベクトルである。また、例えば、ユーザが、人物のクラスタリングを所望する場合、対象データは、例えば、当該人物の年齢、性別、血液型などの属性値（数値）を要素とするベクトルである。
【００５３】
また、本実施の形態において、粘菌情報とは、粘菌の採餌行動をモデル化した情報である。粘菌の採餌行動とは、例えば、粘菌が餌に向かって成長していくこと、粘菌のセル（細胞）が分裂し、当該分裂したセルが餌に向かって移動すること、などである。つまり、粘菌の採餌行動をモデル化した情報とは、例えば、粘菌が餌を捕食するために、粘菌が餌に向かって成長していく様子、粘菌のセルが分裂する様子、当該分裂したセルが餌に向かって移動する様子などを表現するための情報である。また、粘菌情報は、例えば、粘菌の採餌行動を表現するための情報、粘菌の採餌行動を示す情報、粘菌の採餌行動モデルに基づく情報、粘菌の成長モデルに基づく情報、粘菌の数理モデルに基づく情報、などであるとも言える。また、粘菌情報は、粘菌に相当する情報であるとも言える。また、粘菌情報は、粘菌を表現するための情報であるとも言える。従って、粘菌情報を、以下、適宜、粘菌と称する場合もある。
【００５４】
また、粘菌情報は、通常、２以上のセル情報を有する。セル情報とは、粘菌のセル（細胞）に相当する情報である。また、セル情報は、粘菌のセルを表現するための情報であるとも言える。従って、セル情報を、以下、適宜、セルと称する場合もある。また、粘菌情報は、２種類のセル情報を有する。当該２種類のセル情報は、ハブセル情報と、分枝セル情報である。また、粘菌情報は、後述の粘菌情報構成部１２により構成される。また、後述の粘菌情報構成部１２により最終的に構成される粘菌情報は、１つのハブセル情報と、１以上の分枝セル情報とを有する。
【００５５】
ハブセル情報とは、粘菌の中心のセルに相当する情報である。ここでの「中心」とは、物理的な位置としての中心を意味するものではない。言い換えると、ここでの「中心」とは、いわゆる「重心」に相当するものではない。ここでの「中心」とは、立場や概念などにおける「中心」を意味するものである。つまり、ここでの「中心」とは、例えば、ドラマにおける「中心」の人物、物語における「中心」の人物、組織における「中心」の人物、日本の「中心」の都市、世界経済の「中心」を担う国、などにおける「中心」と同様の意味合いである。従って、粘菌の中心のセルは、例えば、粘菌の中核のセル、粘菌の基準のセル、粘菌の母体のセル、などと称してもよい。また、ハブセル情報は、粘菌の中心のセルを表現するための情報であるとも言える。従って、ハブセル情報を、以下、適宜、ハブセルまたはハブと称する場合もある。
【００５６】
また、分枝セル情報とは、粘菌において、採餌のために中心のセルから分裂するセルに相当する情報である。また、分枝セル情報は、採餌のために中心のセルから分裂するセルを表現するための情報であるとも言える。従って、分枝セル情報を、以下、適宜、分枝セルまたは分枝と称する場合もある。
【００５７】
また、セル情報は、対象データと同次元のベクトルを有する。つまり、セル情報は、対象データであるベクトルが有する２以上の要素と同数の要素を有する。また、セル情報が有するベクトルは、セルの位置を示す情報であるとも言える。また、セル情報が有するベクトルを、以下、適宜、ベクトル情報と称する場合もある。
【００５８】
また、２種類のセル情報のうち、ハブセル情報は、通常、１種類の原形質情報を有する。原形質情報とは、セルの形質、特性などを示す情報である。当該１種類の原形質情報は、体積である。当該体積は、ハブセル情報により表現されるセルの体積を示す情報である。また、ハブセル情報は、例えば、他の２種類の原形質情報を有していてもよい。当該２種類の原形質情報は、速度、加速度である。当該速度は、ハブセル情報により表現されるセルの移動時の速度を示す情報である。また、当該加速度は、ハブセル情報により表現されるセルの移動時の加速度を示す情報である。なお、ハブセル情報が速度および加速度を有する場合、速度および加速度は、通常、「０」である。
【００５９】
また、２種類のセル情報のうち、分枝セル情報は、上記、３種類の原形質情報を有する。また、分枝セル情報は、例えば、１以上のパラメータを有する。当該パラメータは、例えば、学習係数、勝者セル情報に特定された回数などである。学習係数とは、構成済みの分枝セル情報の更新に用いる係数である。また、学習係数は、例えば、分枝セルの移動の能力を示す情報、分枝セル情報がどの程度移動するかの割合を示す情報などであるとも言える。また、学習係数は、例えば、０以上１以下の実数であることが好適である。また、勝者セル情報とは、２以上の対象データの中から選択された一の対象データ（以下、適宜、選択データとする）との距離が最も近いセル情報のことである。つまり、勝者セル情報に特定された回数とは、選択データとの距離が最も近いセル情報に特定された回数である。
【００６０】
また、本実施の形態において、ベクトル間の距離の尺度は、問わない。当該「尺度」は、例えば、種類、概念などであってもよい。ベクトル間の距離は、例えば、シェビチェフ距離（Chebyshev Distance）、コサイン距離（Cosine Distance）、ユークリッド距離（Euclidean Distance）、マハラノビス距離（Mahalanobis Distance）、マンハッタン距離（Manhattan Distance）、ミンコフスキー距離（Minkowski Distance）、平方ユークリッド距離（SquaredEuclidean Distance）、タニモト距離（Tanimoto Distance）、重み付きユークリッド距離（WeightedEuclidean Distance）、重み付きマンハッタン距離（WeightedManhattan Distance）などである。
【００６１】
また、本実施の形態におけるクラスタリング装置１は、図２に示すように、粘菌の初期化を行う工程と、勝者セルの決定を行う工程と、原形質情報の更新を行う工程と、粘菌セルの追加を行う工程と、学習係数の更新を行う工程と、勝者セルの移動を行う工程と、終了判定を行う工程と、クラスタの形成を行う工程とを行う。
【００６２】
また、図３は、本実施の形態におけるクラスタリング装置１のブロック図である。クラスタリング装置１は、受付部１１、粘菌情報構成部１２、クラスタリング部１３、出力部１４を備える。また、粘菌情報構成部１２は、ハブセル情報構成手段１２１、分枝セル情報構成手段１２２を備える。
【００６３】
受付部１１は、２以上の対象データを受け付ける。受け付けとは、タッチパネルや、キーボードなどの入力デバイスから入力された情報の取得、光ディスクや磁気ディスク、半導体メモリなどの記録媒体に格納されている情報の読み出し、有線もしくは無線の通信回線を介して送信された情報の受信などを含む概念である。
【００６４】
また、受付部１１における情報や指示などの入力手段は、メニュー画面によるものや、キーボードなど、何でもよい。受付部１１は、メニュー画面の制御ソフトウェアや、キーボード等の入力手段のデバイスドライバなどで実現され得る。
【００６５】
粘菌情報構成部１２は、粘菌情報を構成する。粘菌情報構成部１２は、例えば、当該粘菌情報が有し得るハブセル情報の構成と、当該粘菌情報が有し得る分枝セル情報の構成とを行うことにより、粘菌情報を構成する。つまり、粘菌情報の構成とは、ハブセル情報の構成、および、分枝セル情報の構成である。また、粘菌情報構成部１２により構成される粘菌情報は、最終的に、１つのハブセル情報と、１以上の分枝セル情報とを有する。また、粘菌情報構成部１２は、受付部１１が受け付けた２以上の対象データ、構成したハブセル情報、構成した分枝セル情報などを用いて、粘菌情報を構成する。また、粘菌情報構成部１２は、通常、粘菌情報構成部１２が備える以下の各手段により、粘菌情報を構成する。
【００６６】
ハブセル情報構成手段１２１は、ハブセル情報を構成する。当該ハブセル情報を構成する処理は、図２の粘菌の初期化を行う工程に相当する。ハブセル情報構成手段１２１は、通常、２以上の対象データの平均を、ハブセル情報が有するベクトルとして算出する。当該平均は、単純平均である。また、当該平均は、例えば、２以上の対象データの重心ベクトルであるとも言える。また、当該平均は、例えば、加重平均であってもよい。また、ハブセル情報構成手段１２１は、通常、１つのハブセル情報を構成する。
【００６７】
また、例えば、対象データであるベクトルを、実施の形態１の数１で表現すると、２以上の対象データの平均（重心ベクトル）は、実施の形態１の数２により算出することができる。
【００６８】
また、ハブセル情報構成手段１２１は、算出したベクトルを有するハブセル情報に、体積を付与する。これにより、ハブセル情報構成手段１２１は、ベクトル、１種類の原形質情報を有するハブセル情報を構成する。また、このとき、ハブセル情報構成手段１２１は、例えば、速度、加速度も付与してもよい。これにより、ハブセル情報構成手段１２１は、ベクトル、３種類の原形質情報を有するハブセル情報を構成する。なお、算出したベクトルを有するハブセル情報に原形質情報を付与する場合、ハブセル情報構成手段１２１は、通常、当該原形質情報の初期値を付与する。当該初期値は、体積、速度、加速度共に、すべて「０」である。
【００６９】
分枝セル情報構成手段１２２は、分枝セル情報を構成する。分枝セル情報の構成とは、新たな分枝セル情報の構成と、構成済みの分枝セル情報の更新である。新たな分枝セル情報の構成とは、新たな分枝セル情報を作成すること、新たな分枝セル情報を構築すること、などであってもよい。また、構成済みの分枝セル情報の更新とは、構成済みの分枝セル情報が有するベクトルを更新することである。ベクトルを更新するとは、例えば、ベクトルを変更すること、ベクトルを置き換えること、ベクトルに対して数値を加算、減算、乗算、除算することなどである。より具体的に、ベクトルを更新するとは、例えば、ベクトルが有する要素を変更すること、当該要素を置き換えること、当該要素に対して数値を加算、減算、乗算、除算することなどである。また、当該新たな分枝セル情報を構成する処理は、図２の粘菌セルの追加を行う工程に相当する。また、当該構成済みの分枝セル情報を更新する処理は、図２の勝者セルの移動を行う工程に相当する。また、分枝セル情報構成手段１２２は、図２の勝者セルの決定を行う工程に相当する処理、図２の原形質情報の更新を行う工程に相当する処理、図２の学習係数の更新を行う工程に相当する処理なども行う。分枝セル情報構成手段１２２が行う処理について、以下、順に説明する。
【００７０】
（１）まず、分枝セル情報構成手段１２２は、２以上の対象データの中から、一の対象データを選択する。当該選択された一の対象データを、以下、適宜、選択データとする。また、分枝セル情報構成手段１２２は、対象データの選択を、終了条件を満たすまで、１回以上行う。終了条件の詳細については、後述する。また、分枝セル情報構成手段１２２は、２以上の対象データの中から、一の対象データを、通常、ランダムに選択する。また、分枝セル情報構成手段１２２は、２以上の対象データの中から、一の対象データを、例えば、予め決められた順序で選択してもよい。また、分枝セル情報構成手段１２２は、一の対象データを、例えば、終了条件を満たすまで、重複なく選択することが好適である。また、例えば、すべての対象データを１回ずつ選択し終わった時点で、終了条件を満たさない場合、分枝セル情報構成手段１２２は、選択データを、例えば、重複して選択してもよい。
【００７１】
（２）次に、分枝セル情報構成手段１２２は、構成済みの粘菌情報が有するセル情報の中から、勝者セル情報を特定する。勝者セル情報とは、選択データとの距離が最も近いセル情報である。また、当該距離は、選択データであるベクトルと、セル情報が有するベクトルとの距離である。２つのベクトル間の距離を算出する方法や手順などは、公知であるので、詳細な説明を省略する。また、勝者セル情報の特定は、例えば、勝者セル情報の決定、勝者セル情報の取得、勝者セル情報の選択、などであってもよい。また、当該勝者セル情報を特定する処理は、図２の勝者セルの決定を行う工程に相当する。また、図２の勝者セルの決定を行う工程には、上記、一の対象データを選択する処理も含まれる。
【００７２】
例えば、分枝セル情報構成手段１２２は、選択データと、構成済みの粘菌情報が有するすべての各セル情報が有するベクトルとの距離を算出する。そして、分枝セル情報構成手段１２２は、当該算出した距離が最小であるベクトルを有するセル情報を、勝者セル情報に特定する。
【００７３】
また、分枝セル情報構成手段１２２は、例えば、一の対象データを選択するたびに、当該選択の回数をカウントする。当該選択の回数を、以下、適宜、学習回数とする。また、学習回数は、例えば、勝者セル情報を特定した回数であってもよい。通常、一の対象データを選択すれば、当該選択データに対応する勝者セル情報が特定される。つまり、一の対象データを選択した回数と、勝者セル情報を特定した回数とは、通常、同一である。従って、学習回数は、一の対象データした回数、勝者セル情報を特定した回数のどちらでもよい。
【００７４】
また、分枝セル情報構成手段１２２は、例えば、特定した勝者セル情報が分枝セル情報である場合は、当該分枝セル情報が有する、勝者セル情報に特定された回数を、１インクリメントする。
【００７５】
（３）次に、分枝セル情報構成手段１２２は、セル情報が有する原形質情報を更新する。当該原形質情報の更新の対象となるセル情報は、構成済みの粘菌情報が有するすべてのセル情報である。分枝セル情報構成手段１２２は、例えば、分枝セル情報に対しては、当該分枝セル情報が有する加速度、速度、体積の更新を行う。また、分枝セル情報構成手段１２２は、例えば、ハブセル情報に対しては、当該ハブセル情報が有する体積を更新する。また、当該原形質情報を更新する処理は、図２の原形質情報の更新を行う工程に相当する。
【００７６】
例えば、分枝セル情報構成手段１２２は、まず、構成済みの粘菌情報が有する分枝セル情報を用いて、当該各分枝セル情報に対して、ゾル量を算出する。ゾル量とは、粘菌が有するゾルであり、ハブセルから分裂したセルである分枝セルに流れ込むゾルの量を表現するための情報である。また、ゾル量は、当該ゾルの量を示す情報であるとも言える。また、分枝セル情報構成手段１２２は、具体的には、分枝セル情報が有するベクトル以外の情報（原形質情報、パラメータ）などを用いて、各分枝セル情報に対するゾル量を算出する。例えば、ｉ番目の分枝セル情報に対するゾル量（分枝ｉのゾル量）は、実施の形態１の数３により算出することができる。
【００７７】
そして、分枝セル情報構成手段１２２は、算出したゾル量と、当該ゾル量を算出した分枝セル情報が勝者セル情報であるか否かとに応じて、分枝セル情報の加速度を取得する。具体的に、分枝セル情報構成手段１２２は、実施の形態１の表１より分枝セル情報の加速度を取得する。そして、分枝セル情報構成手段１２２は、分枝セル情報が有する加速度を、取得した加速度に更新する。
【００７８】
例えば、分枝セル情報構成手段１２２が、ある分枝セル情報に対して、ゾル量「２」を算出したとする。そして、当該分枝セル情報が、勝者セル情報に特定された分枝セル情報であるとする。また、当該分枝セル情報が、加速度「０」を有しているとする。このような場合、分枝セル情報構成手段１２２は、実施の形態１の表１より、当該分枝セル情報に対して、加速度「１」を取得する。そして、分枝セル情報構成手段１２２は、当該分枝セル情報が有する加速度「０」を、取得した加速度「１」に更新する。
【００７９】
また、例えば、分枝セル情報構成手段１２２が、ある分枝セル情報に対して、ゾル量「−１」を算出したとする。そして、当該分枝セル情報が、勝者セル情報に特定されていない分枝セル情報であるとする。また、当該分枝セル情報が、加速度「１」を有しているとする。このような場合、分枝セル情報構成手段１２２は、実施の形態１の表１より、当該分枝セル情報に対して、加速度「−１」を取得する。そして、分枝セル情報構成手段１２２は、当該分枝セル情報が有する加速度「１」を、取得した加速度「−１」に更新する。
【００８０】
なお、実施の形態１の表１は、あくまで例であり、表１内の数値は、適宜、変更されてもよい。また、加速度は、表１を用いずに取得されてもよい。つまり、分枝セル情報構成手段１２２は、例えば、勝者セル情報に特定された回数、選択データとの距離などに応じて、分枝セル情報の加速度を算出してもよい。
【００８１】
また、分枝セル情報構成手段１２２は、取得した加速度を、分枝セル情報が有する速度に加算することにより、当該分枝セル情報が有する速度を更新する。
【００８２】
例えば、分枝セル情報構成手段１２２が、ある分枝セル情報に対して、加速度「１」を取得したとする。また、当該分枝セル情報が、速度「１」を有しているとする。このような場合、分枝セル情報構成手段１２２は、当該分枝セル情報が有する速度「１」に、取得した加速度「１」を加算し、当該速度を「２」に更新する。
【００８３】
また、例えば、分枝セル情報構成手段１２２が、ある分枝セル情報に対して、加速度「−１」を取得したとする。また、当該分枝セル情報が、速度「０」を有しているとする。このような場合、分枝セル情報構成手段１２２は、当該分枝セル情報が有する速度「０」に、取得した加速度「−１」を加算し、当該速度を「−１」に更新する。
【００８４】
また、分枝セル情報構成手段１２２は、更新した速度を、分枝セル情報が有する体積に加算することにより、当該分枝セル情報が有する体積を更新する。
【００８５】
例えば、分枝セル情報構成手段１２２が、ある分枝セル情報に対して、速度を「１」に更新したとする。また、当該分枝セル情報が、体積「１」を有しているとする。このような場合、分枝セル情報構成手段１２２は、当該分枝セル情報が有する体積「１」に、当該分枝セル情報が有する加速度であり、更新後の加速度である「１」を加算し、当該体積を「２」に更新する。
【００８６】
また、例えば、分枝セル情報構成手段１２２が、ある分枝セル情報に対して、速度を「−１」に更新したとする。また、当該分枝セル情報が、体積「０」を有しているとする。このような場合、分枝セル情報構成手段１２２は、当該分枝セル情報が有する体積「０」に、当該分枝セル情報が有する加速度であり、更新後の加速度である「−１」を加算し、当該体積を「−１」に更新する。
【００８７】
また、分枝セル情報構成手段１２２は、分枝セル情報が有する更新後の体積の合計を、ハブセル情報が有する体積から減算することにより、当該ハブセル情報が有する体積を更新する。つまり、分枝セル情報構成手段１２２は、粘菌情報が有するすべての分枝セル情報に対して、当該分枝セル情報が有する原形質情報（加速度、速度、体積）を更新した後に、ハブセル情報が有する原形質情報（体積）を更新する。当該ハブセル情報が有する体積の更新は、つまりは、粘菌情報が有するすべてのセル情報が有する体積の合計を、どの学習回においても一定にするための処理である。
【００８８】
例えば、粘菌情報が５個の分枝セル情報を有しており、分枝セル情報構成手段１２２が、当該５個の各分枝セル情報が有する体積を、それぞれ、「３」、「２」、「０」、「１」、「２」に更新したとする。また、粘菌情報が有する１個のハブセル情報が、体積「１０」を有しているとする。このような場合、分枝セル情報構成手段１２２は、ハブセル情報が有する体積「１０」から、当該各分枝セル情報が有する体積の合計である「８」を減算し、当該ハブセル情報が有する体積を「２」に更新する。
【００８９】
また、例えば、粘菌情報が４個の分枝セル情報を有しており、分枝セル情報構成手段１２２が、当該４個の各分枝セル情報が有する体積を、それぞれ、「１」、「１」、「１」、「１」に更新したとする。また、粘菌情報が有する１個のハブセル情報が、体積「６」を有しているとする。このような場合、分枝セル情報構成手段１２２は、ハブセル情報が有する体積「６」から、当該各分枝セル情報が有する体積の合計である「４」を減算し、当該ハブセル情報が有する体積を「２」に更新する。
【００９０】
（４）次に、分枝セル情報構成手段１２２は、勝者セル情報が、ハブセル情報であるか、分枝セル情報であるか、に応じた処理を行う。例えば、勝者セル情報がハブセル情報である場合、分枝セル情報構成手段１２２は、新たな分枝セル情報を構成する。当該新たな分枝セル情報を構成する処理は、図２の粘菌セルの追加を行う工程に相当する。また、例えば、勝者セル情報が分枝セル情報である場合、分枝セル情報構成手段１２２は、構成済みの分枝セル情報を更新する。当該構成済みの分枝セル情報を更新する処理は、図２の勝者セルの移動を行う工程に相当する。また、例えば、構成済みの分枝セル情報を更新する場合、分枝セル情報構成手段１２２は、まず、学習係数を更新した後に、構成済みの分枝セル情報を更新する。これらの処理について、以下、順に説明する。
【００９１】
（４−１）勝者セル情報がハブセル情報である場合、分枝セル情報構成手段１２２は、新たな分枝セル情報を構成する。分枝セル情報構成手段１２２は、勝者セル情報であるハブセル情報が有するベクトルと、選択データであるベクトルとの内分ベクトルを算出する。当該内分ベクトルを算出する際の内分比は、予め決められている。また、当該内分比は、例えば、予め決められていなくてもよい。分枝セル情報構成手段１２２は、当該内分比を、例えば、選択データが有するベクトルの次元数などに応じて適宜算出してもよい。そして、分枝セル情報構成手段１２２は、算出したベクトルを有する分枝セル情報を構成する。
【００９２】
また、分枝セル情報構成手段１２２は、構成した分枝セル情報に、原形質情報の初期値、および、パラメータの初期値を付与する。当該原形質情報は、体積、速度、加速度である。また、当該原形質情報の初期値は、通常、予め決められている。また、当該パラメータは、学習係数、勝者セル情報に特定された回数である。また、当該パラメータの初期値は、通常、予め決められている。なお、勝者セル情報に特定された回数の初期値は、「０」である。
【００９３】
（４−２）勝者セル情報が分枝セル情報である場合、分枝セル情報構成手段１２２は、学習係数の更新、または、分枝セル情報の更新を行う。
【００９４】
例えば、分枝セル情報構成手段１２２は、負の加速度を有するすべての分枝セル情報（加速度が負であるすべての分枝セル情報）に対して、当該分枝セル情報が有する学習係数を更新する。当該「負である場合」は、例えば、「正でない場合」であってもよい。また、学習係数を更新する対象となる分枝セル情報は、例えば、正でない加速度を有するすべての分枝セル情報であってもよい。また、学習係数を更新する対象となる分枝セル情報には、通常、勝者セル情報に特定された分枝セル情報も含まれる。
【００９５】
また、例えば、分枝セル情報構成手段１２２は、勝者セル情報である分枝セル情報が有する加速度が正である場合に、当該分枝セル情報と選択データとの距離を小さくするように、当該分枝セル情報が有するベクトルを更新する。当該「正である場合」は、例えば、「負でない場合」であってもよい。また、当該距離は、分枝セル情報が有するベクトルと、選択データであるベクトルとの距離である。
【００９６】
学習係数を更新する場合、分枝セル情報構成手段１２２は、例えば、構成済みの粘菌情報が有するすべての各分枝セル情報に対して、当該分枝セル情報が有する加速度が負であるか否かを判断する。そして、分枝セル情報構成手段１２２は、加速度が負である分枝セル情報が有する学習係数を更新する。また、分枝セル情報構成手段１２２は、加速度が負でない分枝セル情報が有する学習係数は、更新しない。
【００９７】
また、学習係数を更新する場合、分枝セル情報構成手段１２２は、例えば、構成済みの粘菌情報が有するすべての各分枝セル情報に対して、当該分枝セル情報が有する加速度が正であるか否かを判断してもよい。この場合、分枝セル情報構成手段１２２は、加速度が正でない分枝セル情報が有する学習係数を更新する。また、この場合、分枝セル情報構成手段１２２は、加速度が正である分枝セル情報が有する学習係数は、更新しない。
【００９８】
また、分枝セル情報構成手段１２２は、更新後の新たな学習係数を、実施の形態１の数４により算出する。なお、数４において、学習係数の初期値は、通常、予め決められている。また、当該学習係数の初期値は、例えば、「０．１」であることが好適である。
【００９９】
また、分枝セル情報が有するベクトルを更新する場合、分枝セル情報構成手段１２２は、勝者セル情報である分枝セル情報が有するベクトルと、選択データであるベクトルとを用いて、当該分枝セル情報が有するベクトルを更新する。また、当該分枝セル情報が有するベクトルの更新は、例えば、分枝セルの位置を、餌に見立てた対象データに近づける処理であるとも言える。また、更新後の新たなベクトルは、実施の形態１の数５により算出することができる。言い換えると、勝者セル情報である分枝セル情報が有するベクトルは、実施の形態１の数５により更新することができる。
【０１００】
なお、数５は、選択データと、勝者セル情報である分枝セル情報が有するベクトルとの差分を、所定の係数でスカラー倍したものを、分枝セル情報が有するベクトルに対して加算する処理であると言える。また、数５において、「入力データのベクトル」は、選択データである。また、数５において、「分枝ｘの学習係数」は、例えば、予め決められた固定の係数であってもよい。また、「分枝ｘの学習係数」は、例えば、選択データが有するベクトルの次元数などに応じて適宜算出されてもよい。
【０１０１】
（５）次に、分枝セル情報構成手段１２２は、分枝セル情報の構成を終了するか否かを判断する。当該判断の処理は、図２の終了判定を行う工程に相当する。分枝セル情報構成手段１２２は、予め決められた条件（以下、適宜、終了条件とする）を満たすか否かを判断する。そして、分枝セル情報構成手段１２２は、終了条件を満たす場合に、分枝セル情報の構成を終了すると判断する。そして、分枝セル情報構成手段１２２は、終了条件を満たさない場合は、再度、一の対象データを選択し、勝者セル情報を特定する。なお、終了条件は、例えば、以下の（ａ）、（ｂ）、（ｃ）のいずれかである。
（ａ）学習回数が予め決められた条件を満たすほど多いこと
（ｂ）現在の学習回数と、新たな分枝セル情報の構成時の学習回数との差が、対象データの数を、構成済みの粘菌情報が有する分枝セル情報の数で割った値よりも大きいこと
（ｃ）移動量が予め決められた回数以上連続して最大移動量の５パーセント以下であること
【０１０２】
上記（ａ）は、例えば、学習回数が最大学習回数に到達していることである。つまり、上記（ａ）の終了条件を満たすか否かの判断は、学習回数が最大学習回数に到達しているか否かを判断することでもある。また、上記（ａ）の終了条件を満たすか否かの判断は、学習回数が予め決められた閾値以上であるか否かを判断することでもある。
【０１０３】
また、上記（ｂ）は、実施の形態１の数６を満たすことである。当該数６の左辺は、新たな分枝セル情報を構成していない期間（粘菌に対して分枝セルを追加していない期間）を示す。また、後述のクラスタリング部１３は、対象データを、粘菌情報が有する分枝セル情報の数と同数のクラスタにクラスタリングする。従って、当該数６の右辺は、ある時点での１つのクラスタを構成する対象データの数の平均を示す。
【０１０４】
また、上記（ｃ）において、移動量とは、ハブセル情報が有するベクトルの更新における、更新前のベクトルと、更新後のベクトルとの差の長さである。言い換えると、移動量とは、当該更新前のベクトルと、当該更新後のベクトルとの差分ベクトルの長さである。当該長さは、大きさであってもよい。つまり、移動量は、分枝セルが、餌に見立てた対象データに近づくために移動した量である。また、移動量は、数５において、分枝ｘのベクトルに加算するベクトルの長さでもある。また、上記（ｃ）において、「最大移動量の５パーセント」は、いわゆる閾値である。従って、「最大移動量の５パーセント」を、以下、適宜、閾値とする。また、当該閾値は、例えば、最大移動量の５パーセントでなくてもよい。当該閾値は、例えば、最大移動量の１パーセント、最大移動量の１０パーセントなどであってもよい。また、上記（ｃ）において、「以下」は、「未満」であってもよい。
【０１０５】
例えば、上記（ａ）の終了条件を満たすか否かを判断する場合、分枝セル情報構成手段１２２は、例えば、前述のとおり、一の対象データを選択するたびに、または、勝者セル情報を特定するたびに）、学習回数をカウント（１インクリメント）する。そして、分枝セル情報構成手段１２２は、例えば、一の分枝セル情報を構成するたびに、カウント済みの学習回数について、上記（ａ）の終了条件を満たすか否かを判断する。当該一の分枝セル情報を構成するたびとは、例えば、新たな分枝セル情報を構成するたび、または、構成済みの分枝セル情報を更新するたび、である。
【０１０６】
また、例えば、上記（ｂ）の終了条件を満たすか否かを判断する場合、分枝セル情報構成手段１２２は、例えば、選択した対象データに対応する勝者セル情報が分枝セル情報である場合に、当該選択時の学習回数を取得する。当該学習回数の取得は、例えば、当該学習回数を、予め決められた記憶領域に蓄積することである。そして、分枝セル情報構成手段１２２は、例えば、一の分枝セル情報を構成するたびに、現在の学習回数と、新たな分枝セル情報の構成時の学習回数との差、および、対象データの数を、構成済みの粘菌情報が有するセル情報の数で割った値（以下、適宜、商とする）を算出する。そして、分枝セル情報構成手段１２２は、当該差が、当該商よりも大きいか否かを判断する。
【０１０７】
また、例えば、上記（ｃ）の終了条件を満たすか否かを判断する場合、分枝セル情報構成手段１２２は、例えば、構成済みの分枝セル情報を更新するたびに、更新前の分枝セル情報と更新後の分枝セル情報との距離である移動量を算出する。そして、分枝セル情報構成手段１２２は、当該移動量を、いわゆる履歴として取得する。当該取得は、例えば、当該移動量を、予め決められた記憶領域に蓄積することである。そして、分枝セル情報構成手段１２２は、例えば、当該履歴の取得のたびに、当該履歴の中から、最大の移動量である最大移動量を取得する。そして、分枝セル情報構成手段１２２は、例えば、当該取得した最大移動量を用いて、閾値を算出する。そして、分枝セル情報構成手段１２２は、例えば、一の分枝セル情報を構成するたびに、当該履歴における最新ｎ個（ｎは１以上の整数）の移動量が、算出した閾値以下であるか否かを判断する。当該一の分枝セル情報の構成は、通常、構成済みの分枝セル情報の更新である。また、当該一の分枝セル情報の構成は、例えば、新たな分枝セル情報の構成であってもよい。また、このとき、分枝セル情報構成手段１２２は、当該最新ｎ個の移動量のすべてが、閾値以下である場合に、上記（ｃ）の終了条件を満たすと判断する。つまり、分枝セル情報構成手段１２２は、当該最新ｎ個の移動量のうちの１つでも閾値より大きい場合は、上記（ｃ）の終了条件を満たさないと判断する。
【０１０８】
また、例えば、上記（ｃ）の終了条件を満たすか否かを判断する場合、分枝セル情報構成手段１２２は、例えば、移動量の履歴を、分枝セル情報ごとに取得してもよい。この場合、分枝セル情報構成手段１２２は、例えば、一の分枝セル情報を構成するたびに、当該構成した分枝セル情報に対応する移動量の履歴から、最大移動量を取得し、閾値を算出する。当該一の分枝セル情報の構成は、通常、構成済みの分枝セル情報の更新である。また、当該一の分枝セル情報の構成は、例えば、新たな分枝セル情報の構成であってもよい。そして、分枝セル情報構成手段１２２は、当該履歴における最新ｎ個（ｎは１以上の整数）の移動量が、算出した閾値以下であるか否かを判断する。以降の処理は、上記と同様であるので、説明を省略する。
【０１０９】
また、分枝セル情報構成手段１２２は、例えば、上記３つの終了条件について、予め決められた優先順位に従い、満たすか否かを判断してもよい。この場合の優先順位は、（ａ）、（ｂ）、（ｃ）の順序であることが好適である。つまり、当該優先順位の場合、分枝セル情報構成手段１２２は、上記（ａ）を満たすか否かを判断し、満たさない場合に、上記（ｂ）を満たすか否かを判断する。そして、分枝セル情報構成手段１２２は、上記（ｂ）を満たすか否かを判断し、満たさない場合に、上記（ｃ）を満たすか否かを判断する。
【０１１０】
また、以上より、粘菌情報構成部１２（分枝セル情報構成手段１２２）は、新たな分枝セル情報の構成を、通常、１回以上行う。また、粘菌情報構成部１２（分枝セル情報構成手段１２２）は、構成済みの分枝セル情報の更新を、通常、０回以上行う。
【０１１１】
クラスタリング部１３は、粘菌情報構成部１２が構成した粘菌情報を用いて、２以上の対象データをクラスタリングする。当該対象データをクラスタリングする処理は、図２のクラスタの形成を行う工程に相当する。また、クラスタリングするとは、クラスタリングの結果を示す情報（以下、適宜、クラスタ情報とする）を取得することである。クラスタ情報は、１または２以上のクラスタを示すことができればよく、そのデータ構造などは、問わない。クラスタ情報は、例えば、１以上のデータ集合情報を有する情報である。データ集合情報とは、クラスタを構成する１以上の対象データの集合である。当該クラスタを構成するとは、例えば、クラスタに属する、クラスタに含まれる、クラスタが有するなどであってもよい。また、クラスタ情報は、例えば、１以上の対応情報を有する情報である。対応情報とは、クラスタを識別する情報と、当該クラスタを構成する１以上の各対象データを識別する情報とが対応付いた情報である。
【０１１２】
また、クラスタリング部１３は、通常、粘菌情報が有する１以上の各分枝セル情報と、２以上の各対象データとの距離に基づき、２以上の対象データを、当該分枝セル情報の数と同数のクラスタにクラスタリングする。言い換えると、クラスタリング部１３は、２以上の対象データから、粘菌情報が有する分枝セル情報の数と同数のクラスタを形成する。さらに言い換えると、クラスタリング部１３は、対象データをそれぞれ、最も近い距離にある分枝セル情報に紐付ける。そして、クラスタリング部１３は、それぞれの分枝セル情報に紐付いた対象データのまとまりをクラスタとみなすことで、分枝セル情報と同数数のクラスタを形成する。また、分枝セル情報と対象データとの距離は、分枝セル情報が有するベクトルと、対象データであるベクトルとの距離である。
【０１１３】
具体的に、クラスタリング部１３は、例えば、２以上の各対象データに対して、粘菌情報構成部１２が最終的に構成した粘菌情報が有する１以上の各分枝セル情報が有するベクトルとの距離を算出する。これにより、一の対象データに対して、当該分枝セル情報と同数の距離が算出される。そして、クラスタリング部１３は、例えば、２以上の各対象データに対して、算出した１以上の距離のうち、最小の距離に対応するベクトルを有する分枝セル情報に、当該対象データを対応付ける。そして、クラスタリング部１３は、１以上の分枝セル情報ごとに、当該分枝セル情報に対応付けられた対象データを用いて、クラスタ情報を構成する。
【０１１４】
出力部１４は、クラスタリング部１３によるクラスタリングの結果を出力する。当該クラスタリングの結果を出力するとは、具体的には、クラスタリング部１３が取得したクラスタ情報を出力することである。また、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。なお、送信や蓄積、処理結果の引渡しについては、出力対象が最終的にユーザに提示されるものとする。
【０１１５】
また、出力部１４は、ディスプレイやスピーカーなどの出力デバイスを含むと考えてもよいし、含まないと考えてもよい。出力部１４は、出力デバイスのドライバソフトまたは、出力デバイスのドライバソフトと出力デバイスなどで実現され得る。
【０１１６】
なお、粘菌情報構成部１２、ハブセル情報構成手段１２１、分枝セル情報構成手段１２２、クラスタリング部１３は、通常、ＭＰＵやメモリ等から実現され得る。また、粘菌情報構成部１２などの処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。なお、粘菌情報構成部１２などは、ハードウェア（専用回路）で実現されてもよい。
【０１１７】
次に、クラスタリング装置１の全体動作について、フローチャートを用いて説明する。なお、所定の情報におけるｉ番目の情報は、「情報［ｉ］」と記載するものとする。図４は、クラスタリング装置１の全体動作を示すフローチャートである。
【０１１８】
（ステップＳ４０１）粘菌情報構成部１２は、受付部１１が２以上の対象データを受け付けたか否かを判断する。受け付けた場合は、ステップＳ４０２に進み、そうでない場合は、ステップＳ４０１に戻る。
【０１１９】
（ステップＳ４０２）ハブセル情報構成手段１２１は、ハブセル情報を構成する。
【０１２０】
（ステップＳ４０３）分枝セル情報構成手段１２２は、２以上の対象データの中から一の対象データを選択する。当該選択された対象データは、選択データである。
【０１２１】
（ステップＳ４０４）分枝セル情報構成手段１２２は、選択データに対応する勝者セル情報を、構成済みの粘菌情報が有するセル情報の中から特定する。例えば、粘菌情報がハブセル情報しか有さない場合、勝者セル情報は、必然的に、当該ハブセル情報に特定される。また、特定した勝者セル情報が分枝セル情報である場合、分枝セル情報構成手段１２２は、当該分枝セル情報が有する、勝者セル情報に特定された回数を、１インクリメントする。また、分枝セル情報構成手段１２２は、勝者セル情報を特定すると、学習回数を１インクリメントする。
【０１２２】
（ステップＳ４０５）分枝セル情報構成手段１２２は、構成済みの粘菌情報が有するセル情報の原形質情報を更新する。この処理の詳細は、図５のフローチャートを用いて説明する。
【０１２３】
（ステップＳ４０６）分枝セル情報構成手段１２２は、特定した勝者セル情報が、ハブセル情報であるか否かを判断する。ハブセル情報である場合は、ステップＳ４０７に進み、そうでない場合は、ステップＳ４０８に進む。
【０１２４】
（ステップＳ４０７）分枝セル情報構成手段１２２は、新たな分枝セル情報を構成する。この処理の詳細は、図６のフローチャートを用いて説明する。また、このとき、分枝セル情報構成手段１２２は、現在の学習回数を、分枝追加時学習回数として予め決められた記憶領域に蓄積する。分枝追加時学習回数とは、新たな分枝セル情報を構成したときの学習回数である。また、既に分枝追加時学習回数が蓄積されている場合は、いわゆる上書きにより蓄積する。
【０１２５】
（ステップＳ４０８）分枝セル情報構成手段１２２は、構成済みの粘菌情報が有するセル情報の学習係数を更新する。この処理の詳細は、図７のフローチャートを用いて説明する。
【０１２６】
（ステップＳ４０９）分枝セル情報構成手段１２２は、特定した勝者セル情報が有する加速度が負であるか否かを判断する。負である場合は、ステップＳ４１１に進み、そうでない場合は、ステップＳ４１０に進む。
【０１２７】
（ステップＳ４１０）分枝セル情報構成手段１２２は、構成済みの分枝セル情報を更新する。この処理の詳細は、図８のフローチャートを用いて説明する。
【０１２８】
（ステップＳ４１１）分枝セル情報構成手段１２２は、粘菌情報の構成（分枝セル情報の構成）を終了するか否かを判断し、その結果を、変数ＥｎｄＦｌａｇにセットする。この処理の詳細は、図９のフローチャートを用いて説明する。
【０１２９】
（ステップＳ４１２）分枝セル情報構成手段１２２は、ＥｎｄＦｌａｇがｔｒｕｅであるか否かを判断する。ｔｒｕｅである場合は、ステップＳ４１３に進み、そうでない場合は、ステップＳ４０３に戻る。
【０１３０】
（ステップＳ４１３）クラスタリング部１３は、粘菌情報構成部１２が構成した粘菌情報を用いて、２以上の対象データをクラスタリングし、当該クラスタリングの結果であるクラスタ情報を取得する。この処理の詳細は、図１０のフローチャートを用いて説明する。
【０１３１】
（ステップＳ４１４）出力部１４は、クラスタリング部１３によるクラスタリングの結果であるクラスタ情報を出力する。そして、ステップＳ４０１に戻る。
【０１３２】
なお、図４のフローチャートにおいて、電源オフや処理終了の割り込みにより処理を終了してもよい。
【０１３３】
図５は、図４のフローチャートのステップＳ４０５の原形質情報の更新処理を示すフローチャートである。なお、図５のフローチャートにおいて、構成済みの粘菌情報は、１個のハブセル情報と、ｍ個の分枝セル情報とを有するものとする。
【０１３４】
（ステップＳ５０１）分枝セル情報構成手段１２２は、変数ｓｕｍに０をセットする。
【０１３５】
（ステップＳ５０２）分枝セル情報構成手段１２２は、カウンタｉに１をセットする。
【０１３６】
（ステップＳ５０３）分枝セル情報構成手段１２２は、分枝セル情報［ｉ］のゾル量を算出する。
【０１３７】
（ステップＳ５０４）分枝セル情報構成手段１２２は、分枝セル情報［ｉ］が勝者セル情報であるか否かと、ステップＳ５０３で算出したゾル量が正、０、負のいずれであるかに応じて、加速度を取得する。
【０１３８】
（ステップＳ５０５）分枝セル情報構成手段１２２は、分枝セル情報［ｉ］が有する加速度である加速度［ｉ］に、ステップＳ５０４で取得した加速度をセットする。
【０１３９】
（ステップＳ５０６）分枝セル情報構成手段１２２は、分枝セル情報［ｉ］が有する速度である速度［ｉ］に、加速度［ｉ］を加算する。
【０１４０】
（ステップＳ５０７）分枝セル情報構成手段１２２は、分枝セル情報［ｉ］が有する体積である体積［ｉ］に、速度［ｉ］を加算する。
【０１４１】
（ステップＳ５０８）分枝セル情報構成手段１２２は、ｓｕｍに、体積［ｉ］を加算する。
【０１４２】
（ステップＳ５０９）分枝セル情報構成手段１２２は、ｉがｍであるか否かを判断する。ｍである場合は、ステップＳ５１１に進み、そうでない場合は、ステップＳ５１０に進む。
【０１４３】
（ステップＳ５１０）分枝セル情報構成手段１２２は、ｉを１インクリメントする。そして、ステップＳ５０３に戻る。
【０１４４】
（ステップＳ５１１）分枝セル情報構成手段１２２は、ハブセル情報が有する体積から、ｓｕｍを減算する。そして、上位処理にリターンする。
【０１４５】
図６は、図４のフローチャートのステップＳ４０７の新たな分枝セル情報の構成処理を示すフローチャートである。
【０１４６】
（ステップＳ６０１）分枝セル情報構成手段１２２は、ハブセル情報が有するベクトルと、選択データであるベクトルとの内分ベクトルを算出する。
【０１４７】
（ステップＳ６０２）分枝セル情報構成手段１２２は、新たに構成する分枝セル情報が有するベクトルに、ステップＳ６０１で算出した内分ベクトルをセットする。
【０１４８】
（ステップＳ６０３）分枝セル情報構成手段１２２は、新たに構成する分枝セル情報が有する体積に、体積の初期値であるｖｏｌ＿ｉｎｉをセットする。なお、ｖｏｌ＿ｉｎｉには、通常、予め決められた値がセットされている。
【０１４９】
（ステップＳ６０４）分枝セル情報構成手段１２２は、新たに構成する分枝セル情報が有する速度に、速度の初期値であるｖｅｌ＿ｉｎｉをセットする。なお、ｖｅｌ＿ｉｎｉには、通常、予め決められた値がセットされている。
【０１５０】
（ステップＳ６０５）分枝セル情報構成手段１２２は、新たに構成する分枝セル情報が有する加速度に、加速度の初期値であるａｃｃ＿ｉｎｉをセットする。なお、ａｃｃ＿ｉｎｉには、通常、予め決められた値がセットされている。そして、上位処理にリターンする。
【０１５１】
図７は、図４のフローチャートのステップＳ４０９の学習係数の更新処理を示すフローチャートである。なお、図７のフローチャートにおいて、構成済みの粘菌情報は、ｍ個の分枝セル情報を有するものとする。
【０１５２】
（ステップＳ７０１）分枝セル情報構成手段１２２は、カウンタｉに１をセットする。
【０１５３】
（ステップＳ７０２）分枝セル情報構成手段１２２は、分枝セル情報［ｉ］が有する加速度である加速度［ｉ］が負であるか否かを判断する。負である場合は、ステップＳ７０３に進み、そうでない場合は、ステップＳ７０５に進む。
【０１５４】
（ステップＳ７０３）分枝セル情報構成手段１２２は、更新用の学習係数を算出する。当該学習係数は、数４により算出される。
【０１５５】
（ステップＳ７０４）分枝セル情報構成手段１２２は、ステップＳ７０３で算出した学習係数を、分枝セル情報［ｉ］が有する学習係数である学習係数［ｉ］にセットする。
【０１５６】
（ステップＳ７０５）分枝セル情報構成手段１２２は、ｉがｍであるか否かを判断する。ｍである場合は、上位処理にリターンし、そうでない場合は、ステップＳ７０６に進む。
【０１５７】
（ステップＳ７０６）分枝セル情報構成手段１２２は、ｉを１インクリメントする。そして、ステップＳ７０２に戻る。
【０１５８】
図８は、図４のフローチャートのステップＳ４１０の構成済みの分枝セル情報の更新処理を示すフローチャートである。
【０１５９】
（ステップＳ８０１）分枝セル情報構成手段１２２は、選択データであるベクトルと、勝者セル情報である分枝セル情報が有するベクトルとの差である差分ベクトルを算出する。
【０１６０】
（ステップＳ８０２）分枝セル情報構成手段１２２は、ステップＳ８０１で算出した差分ベクトルを、勝者セル情報である分枝セル情報が有する学習係数でスカラー倍し、加算ベクトルとする。
【０１６１】
（ステップＳ８０３）分枝セル情報構成手段１２２は、ステップＳ８０２で算出した加算ベクトルの長さを算出し、当該長さを移動量として予め決められた記憶領域に蓄積する。
【０１６２】
（ステップＳ８０４）分枝セル情報構成手段１２２は、勝者セル情報である分枝セル情報が有するベクトルに、ステップＳ８０３で算出した加算ベクトルを加算する。そして、上位処理にリターンする。
【０１６３】
図９は、図４のフローチャートのステップＳ４１１の終了の判断処理を示すフローチャートである。
【０１６４】
（ステップＳ９０１）分枝セル情報構成手段１２２は、フラグＥｎｄＦｌａｇにｆａｌｓｅをセットする。
【０１６５】
（ステップＳ９０２）分枝セル情報構成手段１２２は、学習回数が閾値以上であるか否かを判断する。閾値以上である場合は、ステップＳ９１２に進み、そうでない場合は、ステップＳ９０３に進む。
【０１６６】
（ステップＳ９０３）分枝セル情報構成手段１２２は、変数ｖａｌ１に、学習回数から分枝追加時学習回数を減算した値をセットする。分枝追加時学習回数とは、新たな分枝セル情報を構成したときの学習回数である。
【０１６７】
（ステップＳ９０４）分枝セル情報構成手段１２２は、変数ｖａｌ２に、対象データの数を分枝セル情報の数で割った値をセットする。
【０１６８】
（ステップＳ９０５）分枝セル情報構成手段１２２は、ｖａｌ１がｖａｌ２よりも大きいか否かを判断する。大きい場合は、ステップＳ９１２に進み、そうでない場合は、ステップＳ９０６に進む。
【０１６９】
（ステップＳ９０６）分枝セル情報構成手段１２２は、予め決められた記憶領域に蓄積されている移動量の中から、最大移動量を取得する。
【０１７０】
（ステップＳ９０７）分枝セル情報構成手段１２２は、ステップＳ９０６で取得した最大移動量を用いて、閾値を算出する。当該閾値は、当該最大移動量の５パーセントである。
【０１７１】
（ステップＳ９０８）分枝セル情報構成手段１２２は、カウンタｉに１をセットする。ここで、分枝セル情報構成手段１２２は、最新ｍ個の移動量に対して、ステップＳ９０７で算出した閾値以下であるか否かを判断するものとする。
【０１７２】
（ステップＳ９０９）分枝セル情報構成手段１２２は、移動量［ｉ］がステップＳ９０７で算出した閾値以下であるか否かを判断する。閾値以下である場合は、ステップＳ９１０に進み、そうでない場合は、上位処理にリターンする。
【０１７３】
（ステップＳ９１０）分枝セル情報構成手段１２２は、ｉがｍであるか否かを判断する。ｍである場合は、ステップＳ９１２に進み、そうでない場合は、ステップＳ９１１に進む。
【０１７４】
（ステップＳ９１１）分枝セル情報構成手段１２２は、ｉを１インクリメントする。そして、ステップＳ９０９に戻る。
【０１７５】
（ステップＳ９１２）分枝セル情報構成手段１２２は、ＥｎｄＦｌａｇにｔｒｕｅをセットする。そして、上位処理にリターンする。
【０１７６】
図１０は、図４のフローチャートのステップＳ４１３のクラスタリング処理を示すフローチャートである。なお、図１０のフローチャートにおいて、構成済みの粘菌情報は、ｍ個の分枝セル情報を有するものとする。また、対象データは、ｎ個であるものとする。
【０１７７】
（ステップＳ１００１）分枝セル情報構成手段１２２は、カウンタｉに１をセットする。
【０１７８】
（ステップＳ１００２）分枝セル情報構成手段１２２は、配列ｃｌｕｓｔｅｒ［ｉ］［］を初期化する。
【０１７９】
（ステップＳ１００３）分枝セル情報構成手段１２２は、ｉがｍであるか否かを判断する。ｍである場合は、ステップＳ１００５に進み、そうでない場合は、ステップＳ１００４に進む。
【０１８０】
（ステップＳ１００４）分枝セル情報構成手段１２２は、ｉを１インクリメントする。そして、ステップＳ１００２に戻る。
【０１８１】
（ステップＳ１００５）分枝セル情報構成手段１２２は、カウンタｉに１をセットする。
【０１８２】
（ステップＳ１００６）分枝セル情報構成手段１２２は、カウンタｊに１をセットする。
【０１８３】
（ステップＳ１００７）分枝セル情報構成手段１２２は、対象データ［ｉ］であるベクトルと、分枝セル情報［ｊ］が有するベクトルとの距離を算出する。
【０１８４】
（ステップＳ１００８）分枝セル情報構成手段１２２は、ステップＳ１００７で算出した距離が、対象データ［ｉ］に対して算出した距離の中で最小であるか否かを判断する。最小である場合は、ステップＳ１００９に進み、そうでない場合は、ステップＳ１０１０に進む。
【０１８５】
（ステップＳ１００９）分枝セル情報構成手段１２２は、変数ｔａｒｇｅｔにｊをセットする。
【０１８６】
（ステップＳ１０１０）分枝セル情報構成手段１２２は、ｊがｍであるか否かを判断する。ｍである場合は、ステップＳ１０１２に進み、そうでない場合は、ステップＳ１０１１に進む。
【０１８７】
（ステップＳ１０１１）分枝セル情報構成手段１２２は、ｊを１インクリメントする。そして、ステップＳ１００７に戻る。
【０１８８】
（ステップＳ１０１２）分枝セル情報構成手段１２２は、ｃｌｕｓｔｅｒ［ｔａｒｇｅｔ］［］の要素として、ｉを追加する。
【０１８９】
（ステップＳ１０１３）分枝セル情報構成手段１２２は、ｉがｎであるか否かを判断する。ｎである場合は、上位処理にリターンし、そうでない場合は、ステップＳ１０１４に進む。
【０１９０】
（ステップＳ１０１４）分枝セル情報構成手段１２２は、ｉを１インクリメントする。そして、ステップＳ１００６に戻る。
【０１９１】
なお、上記で説明したクラスタリング装置１の全体動作は、あくまで一例である。つまり、クラスタリング装置１の全体動作は、上記の説明に限定されるものではない。
【０１９２】
（具体例）
次に、クラスタリング装置１の動作の具体例について説明する。なお、本具体例における情報の例などは、便宜的なものであり、実際の計算結果と異なる場合もある。
【０１９３】
（例１）
本例において、ハブセル情報を構成する例について説明する。ハブセル情報を構成するとは、つまりは、１つのハブセル情報を有する粘菌情報を構成することである。なお、本例において、対象データは、図１１であるものとする。つまり、受付部１１は、図１１に示す対象データを受け付けたものとする。図１１において、１以上の各対象データには、レコード（対象データ）を一意に特定するためのＩＤが対応付いている。当該ＩＤは、１以上の各対象データを識別する情報でもある。また、１以上の各対象データは、ｎ個の要素（項目名：次元１、次元２、・・・、次元ｎ−１、次元ｎ）を有する。また、ｎ個の各要素は、２以上の各文書における予め決められた単語の出現回数であるものとする。
【０１９４】
まず、受付部１１は、図１１の対象データを受け付ける。
【０１９５】
次に、ハブセル情報構成手段１２１は、図１１の各対象データであるベクトルの平均を、重心ベクトルとして算出する。そして、ハブセル情報構成手段１２１は、当該重心ベクトルを有するハブセル情報を構成する。また、ハブセル情報構成手段１２１は、当該ハブセル情報に、原形質情報である体積、速度、加速度の初期値を付与する。当該初期値は、それぞれ、「０」であるものとする。
【０１９６】
以上のようにして構成されたハブセル情報は、例えば、図１２である。図１２において、ハブセル情報は、対象データと同次元のベクトル（項目名：次元１、次元２、・・・、次元ｎ−１、次元ｎ）と、原形質情報（項目名：体積、速度、加速度）とを有する。また、当該ハブセル情報の構成により、粘菌情報構成部１２は、図１２のハブセル情報を有する粘菌情報を構成したことになる。
【０１９７】
（例２）
本例において、分枝セル情報を構成する例について説明する。分枝セル情報を構成するとは、つまりは、１つのハブセル情報と、１以上の分枝セル情報とを有する粘菌情報を構成することである。なお、本例において、対象データは、例１と同様に、図１１であるものとする。また、本例において、図１２に示すハブセル情報を有する粘菌情報が構成済みであるものとする。また、分枝セル情報構成手段１２２は、新たな分枝セル情報を構成するたび、または、構成済みの分枝セル情報を更新するたびに、分枝セル情報の構成を終了するか否か判断するが、本例において、当該判断についての説明は、省略するものとする。
【０１９８】
まず、分枝セル情報構成手段１２２が、図１１の対象データの中から、図１１の「ＩＤ＝０１２」の対象データを選択したとする。当該選択された対象データは、選択データである。すると、分枝セル情報構成手段１２２は、選択データである図１１の「ＩＤ＝０１２」との距離が最も近いセル情報である勝者セル情報を、構成済みの粘菌情報が有するセル情報の中から特定する。ここで、当該粘菌情報は、図１２のハブセル情報しか有さない。従って、分枝セル情報構成手段１２２は、当該ハブセル情報を、勝者セル情報に特定する。また、このとき、分枝セル情報構成手段１２２は、学習回数「０」を１インクリメントし、学習回数を「１」に更新する。
【０１９９】
次に、分枝セル情報構成手段１２２は、構成済みの粘菌情報が有するセル情報の原形質情報を更新する。ここで、当該粘菌情報は、図１２のハブセル情報しか有さない。従って、分枝セル情報構成手段１２２は、原形質情報を更新しない。
【０２００】
次に、分枝セル情報構成手段１２２は、勝者セル情報がハブセル情報であるので、選択データである図１１の「ＩＤ＝０１２」と、図１２のハブセル情報が有するベクトルとの内分ベクトルを、予め決められた内分比を用いて算出する。そして、分枝セル情報構成手段１２２は、当該内分ベクトルを有する分枝セル情報を構成する。また、分枝セル情報構成手段１２２は、当該分枝セル情報に、原形質情報の初期値である体積「１」、速度「１」、加速度「１」を付与する。また、分枝セル情報構成手段１２２は、当該分枝セル情報に、パラメータの初期値であるパラメータである学習係数「１」、勝者セル情報に特定された回数「０」を付与する。
【０２０１】
以上のようにして構成された分枝セル情報は、例えば、図１３である。図１３において、分枝セル情報は、対象データと同次元のベクトル（項目名：次元１、次元２、・・・、次元ｎ−１、次元ｎ）と、原形質情報（項目名：体積、速度、加速度）と、パラメータ（項目名：学習係数、勝者回数）とを有する。項目名「勝者回数」は、勝者セル情報に特定された回数である。
【０２０２】
次に、分枝セル情報構成手段１２２が、図１１の対象データの中から、図１１の「ＩＤ＝０１４」の対象データを選択したとする。当該選択された対象データは、選択データである。すると、分枝セル情報構成手段１２２は、選択データである図１１の「ＩＤ＝０１４」との距離が最も近いセル情報である勝者セル情報を、構成済みの粘菌情報が有するセル情報の中から特定する。ここで、当該粘菌情報は、図１２のハブセル情報と、図１３の分枝セル情報とを有する。そして、分枝セル情報構成手段１２２は、図１２のハブセル情報を、勝者セル情報に特定したものとする。また、このとき、分枝セル情報構成手段１２２は、学習回数「１」を１インクリメントし、学習回数を「２」に更新する。
【０２０３】
次に、分枝セル情報構成手段１２２は、構成済みの粘菌情報が有するセル情報の原形質情報を更新する。ここで、当該粘菌情報は、図１２のハブセル情報と、図１３の分枝セル情報とを有する。従って、分枝セル情報構成手段１２２は、まず、図１３の分枝セル情報が有する原形質情報を更新する。
【０２０４】
ここで、図１２のハブセル情報が有する体積は、「０」である。また、現在の学習回数は、「２」である。また、図１３の分枝セル情報が勝者セル情報に特定された回数は、「０」である。また、構成済みの粘菌情報が有する分枝セル情報の数は、「１」である。また、図１３の分枝セル情報以外の分枝セル情報の数は、「０」である。従って、分枝セル情報構成手段１２２は、これらの情報を用いて、数３により、図１３の分枝セル情報に対して、ゾル量「２」を算出する。
【０２０５】
次に、分枝セル情報構成手段１２２は、算出したゾル量「２」が正であること、および、図１３の分枝セル情報が勝者セル情報でないことから、表１により、図１３の分枝セル情報に対して、加速度「０」を取得する。そして、分枝セル情報構成手段１２２は、図１３の分枝セル情報が有する加速度「１」を、当該取得した加速度「０」に更新する。
【０２０６】
次に、分枝セル情報構成手段１２２は、更新後の加速度「０」を、図１３の分枝セル情報が有する速度「１」に加算し、当該速度を「１」に更新する。
【０２０７】
次に、分枝セル情報構成手段１２２は、更新後の速度「１」を、図１３の分枝セル情報が有する体積「１」に加算し、当該体積を「２」に更新する。ここで、構成済みの粘菌情報が有する分枝セル情報は、図１３の分枝セル情報のみであるので、構成済みの粘菌情報が有する分枝セル情報の体積の合計は、「２」である。
【０２０８】
次に、分枝セル情報構成手段１２２は、図１２のハブセル情報が有する体積「０」から、分枝セル情報の体積の合計「２」を減算し、当該ハブセル情報が有する体積を「−２」に更新する。
【０２０９】
以上のようにして原形質情報が更新されたハブセル情報、および、分枝セル情報は、それぞれ、図１４、図１５である。
【０２１０】
次に、分枝セル情報構成手段１２２は、勝者セル情報がハブセル情報であるので、選択データである図１１の「ＩＤ＝０１４」と、原形質情報が更新された図１５のハブセル情報が有するベクトルとの内分ベクトルを、予め決められた内分比を用いて算出する。そして、分枝セル情報構成手段１２２は、当該内分ベクトルを有する分枝セル情報を構成する。また、分枝セル情報構成手段１２２は、当該分枝セル情報に、原形質情報の初期値である体積「１」、速度「１」、加速度「１」を付与する。また、分枝セル情報構成手段１２２は、当該分枝セル情報に、パラメータの初期値であるパラメータである学習係数「１」、勝者セル情報に特定された回数「０」を付与する。
【０２１１】
以上のようにして構成された分枝セル情報は、例えば、図１６である。
【０２１２】
次に、分枝セル情報構成手段１２２が、図１１の対象データの中から、図１１の「ＩＤ＝０１５」の対象データを選択したとする。当該選択された対象データは、選択データである。すると、分枝セル情報構成手段１２２は、選択データである図１１の「ＩＤ＝０１５」との距離が最も近いセル情報である勝者セル情報を、構成済みの粘菌情報が有するセル情報の中から特定する。ここで、当該粘菌情報は、図１４のハブセル情報と、図１６の分枝セル情報とを有する。そして、分枝セル情報構成手段１２２は、図１６の「ＩＤ＝１」の分枝セル情報を、勝者セル情報に特定したものとする。また、このとき、分枝セル情報構成手段１２２は、学習回数「２」を１インクリメントし、学習回数を「３」に更新する。また、このとき、分枝セル情報構成手段１２２は、図１６の「ＩＤ＝１」の分枝セル情報が有する勝者回数「０」を、１インクリメントし、当該勝者回数を「１」に更新する。
【０２１３】
次に、分枝セル情報構成手段１２２は、構成済みの粘菌情報が有するセル情報の原形質情報を更新する。ここで、当該粘菌情報は、図１４のハブセル情報と、図１６の分枝セル情報とを有する。従って、分枝セル情報構成手段１２２は、まず、図１６の分枝セル情報が有する原形質情報を更新する。
【０２１４】
まず、分枝セル情報構成手段１２２は、上記と同様に、図１６の「ＩＤ＝１」の分枝セル情報に対して、数３により、ゾル量「−３」を算出する。そして、分枝セル情報構成手段１２２は、上記と同様に、図１６の「ＩＤ＝１」の分枝セル情報に対して、表１により、加速度「０」を取得する。そして、分枝セル情報構成手段１２２は、上記と同様に、図１６の「ＩＤ＝１」の分枝セル情報が有する加速度「０」を、当該取得した加速度「０」に更新する。そして、分枝セル情報構成手段１２２は、上記と同様に、当該更新後の加速度「０」を、図１６の「ＩＤ＝１」の分枝セル情報が有する速度「１」に加算し、当該速度を「１」に更新する。そして、分枝セル情報構成手段１２２は、上記と同様に、当該更新後の速度「１」を、図１６の「ＩＤ＝１」の分枝セル情報が有する体積「２」に加算し、当該体積を「３」に更新する。
【０２１５】
次に、分枝セル情報構成手段１２２は、上記と同様に、図１６の「ＩＤ＝２」の分枝セル情報に対して、数３により、ゾル量「−１」を算出する。そして、分枝セル情報構成手段１２２は、上記と同様に、図１６の「ＩＤ＝２」の分枝セル情報に対して、表１により、加速度「−１」を取得する。そして、分枝セル情報構成手段１２２は、上記と同様に、図１６の「ＩＤ＝２」の分枝セル情報が有する加速度「１」を、当該取得した加速度「−１」に更新する。そして、分枝セル情報構成手段１２２は、上記と同様に、当該更新後の加速度「−１」を、図１６の「ＩＤ＝２」の分枝セル情報が有する速度「１」に加算し、当該速度を「０」に更新する。そして、分枝セル情報構成手段１２２は、上記と同様に、当該更新後の速度「０」を、図１６の「ＩＤ＝２」の分枝セル情報が有する体積「１」に加算し、当該体積を「１」に更新する。
【０２１６】
次に、分枝セル情報構成手段１２２は、上記と同様に、図１６の分枝セル情報が有する更新後の体積「３」、「１」の合計「４」を算出する。そして、分枝セル情報構成手段１２２は、図１４のハブセル情報が有する体積「−２」から、分枝セル情報の体積の合計「４」を減算し、当該ハブセル情報が有する体積を「−６」に更新する。
【０２１７】
以上のようにして原形質情報が更新されたハブセル情報、および、分枝セル情報は、それぞれ、図１７、図１８である。
【０２１８】
次に、分枝セル情報構成手段１２２は、勝者セル情報が分枝セル情報であるので、図１８の分枝セル情報が有する学習係数を更新する。ここで、勝者セル情報である図１８の「ＩＤ＝１」の分枝セル情報が有する加速度は、負ではない。従って、分枝セル情報構成手段１２２は、学習係数の更新を行わず、当該分枝セル情報が有するベクトルを更新する。
【０２１９】
なお、例えば、図１８の「ＩＤ＝２」の分枝セル情報において、当該分枝セル情報が有する加速度は、負であるので、分枝セル情報構成手段１２２は、当該分枝セル情報の学習係数を、数４により更新する。
【０２２０】
ここで、学習係数の初期値を「０．１」とする。また、現在の学習回数は「３」である。従って、分枝セル情報構成手段１２２は、図１８の「ＩＤ＝２」の分枝セル情報に対して、学習係数「０．１／（０．１×３＋１）＝０．０７７」を算出する。そして、分枝セル情報構成手段１２２は、図１８の「ＩＤ＝２」の分枝セル情報が有する学習係数「１」を、当該学習係数により更新する。
【０２２１】
次に、分枝セル情報構成手段１２２は、勝者セル情報である図１８の「ＩＤ＝１」の分枝セル情報が有するベクトルを、数５により更新する。まず、分枝セル情報構成手段１２２は、選択データである図１１の「ＩＤ＝０１５」と、図１８の「ＩＤ＝１」の分枝セル情報が有するベクトルとの差分ベクトルを算出する。そして、分枝セル情報構成手段１２２は、当該差分ベクトルを、図１８の「ＩＤ＝１」の分枝セル情報が有する学習係数「１」でスカラー倍し、加算ベクトルを算出する。そして、分枝セル情報構成手段１２２は、図１４の「ＩＤ＝１」の分枝セル情報が有するベクトルに、当該加算ベクトルを加算する。
【０２２２】
以上のようにして構成された分枝セル情報は、例えば、図１９である。
【０２２３】
また、分枝セル情報構成手段１２２が、新たな分枝セル情報の構成、および、構成済みの分枝セル情報の更新を繰り返し行い、最終的に構成する分枝セル情報は、例えば、図２０である。
【０２２４】
（例３）
本例おいて、分枝セル情報の構成を終了するか否かを判断する例について説明する。なお、本例において、分枝セル情報構成手段１２２は、新たな分枝セル情報を構成するたび、または、構成済みの分枝セル情報を更新するたびに、以下の判断を行うものとする。
【０２２５】
まず、学習回数の閾値が、「１００」と予め決められているとする。この場合、分枝セル情報構成手段１２２は、新たな分枝セル情報を構成後、または、構成済みの分枝セル情報の更新後の学習回数が、１００以上であるか否かを判断する。そして、分枝セル情報構成手段１２２は、当該学習回数が１００以上である場合、分枝セル情報の構成を終了する。また、分枝セル情報構成手段１２２は、当該学習回数が１００未満である場合、次の終了判断を行う。
【０２２６】
次に、分枝セル情報構成手段１２２は、現在の学習回数から、新たな分枝セル情報の更新時の最新の学習回数を減算した値を算出する。当該値を、値１とする。次に、分枝セル情報構成手段１２２は、対象データの数を、構成済みの粘菌情報が有するセル情報の数で除算した値を算出する。当該値を、値２とする。そして、分枝セル情報構成手段１２２は、値１が、値２よりも大きいか否かを判断する。そして、分枝セル情報構成手段１２２は、当該値１が、当該値２よりも大きい場合、分枝セル情報の構成を終了する。また、分枝セル情報構成手段１２２は、当該値１が、当該値２以下である場合、次の終了判断を行う。
【０２２７】
次に、現在までの移動量のうち、最大の移動量である最大移動量が「１０」であるとする。また、移動量の閾値が、当該最大移動量の５パーセントである「０．５」であるとする。また、現在までの移動量のうち、直近５個の移動量について、０．５以下であるか否かを判断するとする。この場合、分枝セル情報構成手段１２２は、直近５個の各移動量について、０．５以下であるか否かを判断する。そして、分枝セル情報構成手段１２２は、当該直近５個の移動量のすべてが０．５以下である場合、分枝セル情報の構成を終了する。また、分枝セル情報構成手段１２２は、当該直近５個の移動量のうちのいずれか１以上の移動量が０．５よりも大きい場合、分枝セル情報の構成を終了しない。そして、分枝セル情報構成手段１２２は、新たに、一の対象データを選択する。
【０２２８】
（例４）
本例において、２以上の対象データを、粘菌情報が有する分枝セル情報に基づきクラスタリングする例について説明する。なお、本例において、対象データは、図１１であるものとする。また、粘菌情報構成部１２は、図２０の分枝セル情報を有する粘菌情報を構成済みであるものとする。
【０２２９】
まず、クラスタリング部１３は、図１１の「ＩＤ＝０１１」の対象データと、図２０の１以上の各分枝セル情報が有するベクトルとの距離を算出する。ここで、当該１以上の距離のうち、図２０の「ＩＤ＝３」の分枝セル情報が有するベクトルに対して算出した距離が最小であるとする。すると、クラスタリング部１３は、当該「ＩＤ＝３」と当該「ＩＤ＝０１１」との対応情報を構成する。
【０２３０】
次に、クラスタリング部１３は、図１１の「ＩＤ＝０１２」の対象データと、図２０の１以上の各分枝セル情報が有するベクトルとの距離を算出する。ここで、当該１以上の距離のうち、図２０の「ＩＤ＝４」の分枝セル情報が有するベクトルに対して算出した距離が最小であるとする。すると、クラスタリング部１３は、当該「ＩＤ＝４」と当該「ＩＤ＝０１２」との対応情報を構成する。
【０２３１】
以上のようにして、クラスタリング部１３は、図２１に示すクラスタ情報を構成する。当該クラスタ情報は、クラスタを識別する情報（項目名：クラスタＩＤ）と、当該クラスタを構成する対象データを識別する情報（項目名：対象ＩＤ）とを有する。また、当該クラスタを識別する情報は、分枝セル情報を識別する情報でもある。
【０２３２】
次に、出力部１４は、図２１のクラスタ情報を出力する。このとき、出力部１４は、当該クラスタ情報を、例えば、図２１の様式で出力してもよいし、いわゆる概念図や模式図などの態様で出力してもよい。
【０２３３】
以上、本実施の形態によるクラスタリング装置１によれば、パラメータの設定を事前に行うことなく、より精度良くクラスタリングを行うことができる。これにより、従来よりも簡便にクラスタリングを実行することが可能となるため、パラメータの設定に必要とされた手間を削減することが可能となる。また、パラメータ設定の技術および経験がないユーザでも、容易にクラスタリングを行うことができるようになるため、クラスタリングを行うための学習コストを削減することが可能となる。
【０２３４】
また、上記各実施の形態におけるクラスタリング装置は、例えば、スタンドアロンの装置であってもよいし、サーバ・クライアントシステムにおけるサーバ装置であってもよい。
【０２３５】
また、上記各実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよいし、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【０２３６】
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよいし、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
【０２３７】
また、上記各実施の形態におけるクラスタリング装置を実現するソフトウェアは、例えば、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、クラスタリングの対象となるデータであり、１または２以上の属性値を有するデータである２以上の対象データを受け付ける受付部、粘菌の採餌行動をモデル化した情報であり、粘菌の中心のセルに相当する情報であるハブセル情報と、採餌のために当該中心のセルから分裂するセルに相当する情報である分枝セル情報との２以上のセル情報を有する情報である粘菌情報を、前記２以上の対象データを用いて構成する粘菌情報構成部、前記粘菌情報構成部が構成した粘菌情報が有する１以上の各分枝セル情報と、前記２以上の各対象データとの距離に基づき、当該２以上の対象データを、当該分枝セル情報の数と同数のクラスタにクラスタリングするクラスタリング部、前記クラスタリング部によるクラスタリングの結果を出力する出力部として機能させるためのプログラムであって、前記粘菌情報構成部を、前記２以上の対象データを用いて、ハブセル情報を構成するハブセル情報構成手段、前記２以上の対象データおよび構成済みの粘菌情報を用いて、新たな分枝セル情報の構成と、構成済みの分枝セル情報の更新とを行う分枝セル情報構成手段として機能させるためのプログラムである。
【０２３８】
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。
【０２３９】
また、上記プログラムは、サーバなどからダウンロードされることによって実行されてもよいし、所定の記録媒体（例えば、ＣＤ−ＲＯＭなどの光ディスクや磁気ディスク、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。
【０２４０】
また、上記プログラムを実行するコンピュータは、単数であってもよいし、複数であってもよい。つまり、集中処理を行ってもよいし、あるいは分散処理を行ってもよい。
【０２４１】
また、図２２は、前述のプログラムを実行して、前述の実施の形態のクラスタリング装置等を実現するコンピュータシステム９の概観図である。前述の実施の形態は、コンピュータハードウェア、およびその上で実行されるコンピュータプログラムで実現され得る。
【０２４２】
図２２において、コンピュータシステム９は、ＣＤ−ＲＯＭドライブ９０１１を含むコンピュータ９０１と、キーボード９０２と、マウス９０３と、モニタ９０４とを備える。
【０２４３】
図２３は、コンピュータシステム９のブロック図である。図２３において、コンピュータ９０１は、ＣＤ−ＲＯＭドライブ９０１１に加えて、ＭＰＵ９０１２と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ９０１３と、ＭＰＵ９０１２に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ９０１４と、アプリケーションプログラム、システムプログラム、およびデータを記憶するためのハードディスク９０１５と、ＣＤ−ＲＯＭドライブ９０１１、ＭＰＵ９０１２等を相互に接続するバス９０１６とを備える。ここでは図示しないが、コンピュータ９０１は、さらに、ＬＡＮへの接続を提供するネットワークカードを備えていてもよい。
【０２４４】
コンピュータシステム９に、前述の実施の形態のクラスタリング装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ９１０１に記憶されて、ＣＤ−ＲＯＭドライブ９０１１に挿入され、さらにハードディスク９０１５に転送されてもよい。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ９０１に送信され、ハードディスク９０１５に記憶されてもよい。プログラムは実行の際にＲＡＭ９０１４にロードされる。プログラムは、ＣＤ−ＲＯＭ９１０１またはネットワークから直接、ロードされてもよい。
【０２４５】
プログラムは、コンピュータ９０１に、前述の実施の形態のクラスタリング装置等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくてもよい。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいればよい。コンピュータシステム９がどのように動作するかは周知であり、詳細な説明は省略する。
【０２４６】
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０２４７】
以上のように、本発明にかかるクラスタリング装置は、パラメータの設定を事前に行うことなく、より精度良くクラスタリングを行うことができるという効果を有し、クラスタリングを行うソフトウェア・プログラム等として有用である。
【符号の説明】
【０２４８】
１  クラスタリング装置
１１  受付部
１２  粘菌情報構成部
１３  クラスタリング部
１４  出力部
１２１  ハブセル情報構成手段
１２２  分枝セル情報構成手段
【図１】
2016051461.tif 000010
【図２】
2016051461.tif 000011
【図３】
2016051461.tif 000012
【図４】
2016051461.tif 000013
【図５】
2016051461.tif 000014
【図６】
2016051461.tif 000015
【図７】
2016051461.tif 000016
【図８】
2016051461.tif 000017
【図９】
2016051461.tif 000018
【図１０】
2016051461.tif 000019
【図１１】
2016051461.tif 000020
【図１２】
2016051461.tif 000021
【図１３】
2016051461.tif 000022
【図１４】
2016051461.tif 000023
【図１５】
2016051461.tif 000024
【図１６】
2016051461.tif 000025
【図１７】
2016051461.tif 000026
【図１８】
2016051461.tif 000027
【図１９】
2016051461.tif 000028
【図２０】
2016051461.tif 000029
【図２１】
2016051461.tif 000030
【図２２】
2016051461.tif 000031
【図２３】
2016051461.tif 000032