(57)【要約】【課題】非階層的クラスタ分析法により適したクラスタの分割を実現可能とすること。【解決手段】分析プログラムは、複数のデータについて階層的クラスタ分析を実行して樹形図を生成する分析手順と、前記樹形図において、高さが１つ上の２分木との高さの差が閾値以上である２分木の中で、高さが最低である第１の２分木を探索する探索手順と、前記第１の２分木と前記第１の２分木より高さが１つ上である２分木との間をクラスタ数を特定するための前記樹形図の切断位置として特定する特定手順とをコンピュータに実行させる。【選択図】図３
2019028606.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータについて階層的クラスタ分析を実行して樹形図を生成する分析手順と、
前記樹形図において、高さが１つ上の２分木との高さの差が閾値以上である２分木の中で、高さが最低である第１の２分木を探索する探索手順と、
前記第１の２分木と前記第１の２分木より高さが１つ上である２分木との間をクラスタ数を特定するための前記樹形図の切断位置として特定する特定手順と、
をコンピュータに実行させることを特徴とする分析プログラム。
【請求項２】
複数のデータについて階層的クラスタ分析を実行して樹形図を生成する分析手順と、
前記樹形図において、高さが１つ下の２分木との高さの差が閾値以下である２分木の中で、高さが最高である第１の２分木を探索する探索手順と、
前記第１の２分木と前記第１の２分木より高さが１つ下である２分木との間を、前記複数のデータに対するクラスタ数を特定するための前記樹形図の切断位置として特定する第２の特定手順と、
をコンピュータに実行させることを特徴とする分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析プログラムに関する。
【背景技術】
【０００２】
クラスタ分析における最適なクラスタ数を決定する従来の技術としては、例えば、非階層的クラスタ分析法のＫ−Ｍｅａｎｓ法におけるＫの値（クラスタ数）を決定する方法において、エルボー図を用いる手法（以下、「従来法」という。）がある（非特許文献１）。
【０００３】
従来法では、一旦決めたクラスタにおいて、各クラスタ内の重心に対して、各クラスタ内の要素の値がどれほど密集しているかを指標とし、クラスタ分割数を次第に大きくしていった場合に、この密集度が急激に大きくなるポイントを求め、そのポイントにおける分割数をもって最適なクラスタ数としている。
【０００４】
一方、階層的クラスタ分析法は、非階層的クラスタ分析法（Ｋ平均法など）と比べて、分割数（クラスタ数）を最初から固定せずに分析できるメリットがあり、最適な分割数をデータの性質に応じて決定できるという利点がある。但し、その分割数をいくつにすればよいかの決定は、一般的には人の判断にゆだねられており、分割数の決定の判断が難しいという問題がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Estimating the number of clusters in a data set via the gap statistic; Robert Tibshirani, Guenther Walther and Trevor Hastie; Stanford Univ., J.R.Statist. Soc. B (2001) 63, Part2, pp. 411-423
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来法は、非階層的クラスタ分析法のＫ−Ｍｅａｎｓ法のみならず、階層的クラスタ分析法にも適用できるとされている。しかし、そもそもエルボー図を用いる方法では、実際にエルボー図を作成してみても、推奨されるようなきれいなエルボー（ひじ）の形にならない。すなわち、密集度が急激に大きくなるポイントが得られず、なだらかな曲線となってしまうため、求めたいポイントが得られないという欠点がある。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、非階層的クラスタ分析法により適したクラスタの分割を実現可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、分析プログラムは、複数のデータについて階層的クラスタ分析を実行して樹形図を生成する分析手順と、前記樹形図において、高さが１つ上の２分木との高さの差が閾値以上である２分木の中で、高さが最低である第１の２分木を探索する探索手順と、前記第１の２分木と前記第１の２分木より高さが１つ上である２分木との間をクラスタ数を特定するための前記樹形図の切断位置として特定する特定手順とをコンピュータに実行させる。
【発明の効果】
【０００９】
非階層的クラスタ分析法により適したクラスタの分割を実現可能とすることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態における分析装置１０のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における分析装置１０の機能構成例を示す図である。
【図３】分析装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【図４】入力データ群の一例を示す図である。
【図５】階層的クラスタ分析により生成される樹形図の一例を示す図である。
【図６】樹形図を用いた処理手順を説明するための図である。
【図７】樹形図に分割線が引かれた状態の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における分析装置１０のハードウェア構成例を示す図である。図１の分析装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１２】
分析装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１３】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って分析装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１４】
図２は、本発明の実施の形態における分析装置１０の機能構成例を示す図である。図２において、分析装置１０は、データ入力部１１、クラスタ分析部１２、切断位置探索部１３、分割状態特定部１４及び規則性抽出部１５等を有する。これら各部は、分析装置１０にインストールされた１以上のプログラム（分析プログラム）が、ＣＰＵ１０４に実行させる処理により実現される。
【００１５】
データ入力部１１は、分析対象のデータ群を入力する。クラスタ分析部１２は、データ群に含まれる各データを要素として階層的クラスタ分析を実行し、樹形図を生成する。切断位置探索部１３は、樹形図において、階層的クラスタ分析に適したクラスタ数を特定するための切断位置を探索（特定）する。分割状態特定部１４は、当該切断位置において樹形図を切断（分割）することで、クラスタ数及び各クラスタを特定する。規則性抽出部１５は、各クラスタから規則性（例えば、ビジネスルール等）を抽出する。
【００１６】
以下、分析装置１０が実行する処理手順について説明する。図３は、分析装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【００１７】
ステップＳ１０１において、データ入力部１１は、分析対象のデータ群（以下、「入力データ群」という。）を入力する。入力データ群は、補助記憶装置１０２に予め記憶されていてもよいし、ネットワークを介して受信されてもよいし、その他の方法によって入力されてもよい。
【００１８】
図４は、入力データ群の一例を示す図である。図４において、各データ（各レコード）は、特定の商品Ａ（例えば、或る遊園地ａのチケット）の購買履歴を示し、番号、曜日（月〜日）、Ｍ、Ｆ、ＣＨ、ＮＯＴ＿ＣＨ、及びｐｒｉｃｅ等の各項目の値を含む。
【００１９】
番号は、データの識別子が記録される項目である。曜日は、商品が購買された曜日に対して１が記録され、そうでない曜日に０が記録される項目群である。Ｍは、商品の購買者が男性であれば１が記録され、女性であれば０が記録される項目である。Ｆは、商品の購買者が女性であれば１が記録され、男性であれば０が記録される項目である。ＣＨは、商品の購買者が子供であれば１が記録され、大人であれば０が記録される項目である。ＮＯＴ＿ＣＨは、商品の購買者が大人であれば１が記録され、子供であれば０が記録される項目である。ｐｒｉｃｅは、商品の価格が記録される項目である。なお、図４では、１０００件のデータのうちの一部が便宜上省略されている。
【００２０】
このように、各入力データは、数値の集合であることが望ましい。ない、図４において、Ｍ及びＦの項目は、例えば、ｇｅｎｎｄｅｒ等の１つの項目に統合されてもよい。また、ＣＨ及びＮＯＴ＿ＣＨの項目は、いずれか一方の項目に統合されてもよい。これらは、２者択一の値であるため、一方が特定されれば他方を特定することが可能であるからである。
【００２１】
続いて、クラスタ分析部１２は、各入力データ（数値ベクトル）を要素として、階層的クラスタ分析を実行（適用）して、樹形図を生成する（Ｓ１０２）。図５に、図４の入力データ群に対する階層的クラスタ分析により生成される樹形図の一例を示す。なお、樹形図において、各２分木の高さ（Ｈｅｉｇｈｔ）は、各２分木の一方の要素又は要素群と、他方の要素又は要素群との距離を示す。
【００２２】
続いて、切断位置探索部１３は、閾値Ｈを取得する（Ｓ１０３）。閾値Ｈは、予めユーザにより設定され補助記憶装置１０２等に記憶されていてもよいし、ステップＳ１０３の時点においてユーザによって入力されてもよい。
【００２３】
続いて、切断位置探索部１３は、樹形図の全体又は一部を構成する複数の２分木のうち、高さが最低の２分木Ｔ（ｎ＝１）の高さを開始位置とする（Ｓ１０４）。
【００２４】
図６は、樹形図を用いた処理手順を説明するための図である。ステップＳ１０４では、２分木Ａの高さｈ１が開始位置とされる。
【００２５】
続いて、切断位置探索部１３は、２分木Ｔ（ｎ）より高さ（Ｈｅｉｇｈｔ）が１つ上である（２分木Ｔ（ｎ）より高い２分木のうち高さが最低である）２分木Ｔ（ｎ＋１）を検出（探索）する（Ｓ１０５）。図６では、高さがｈ２である２分木Ｂが、２分木Ｔ（ｎ＋１）として検出される。
【００２６】
続いて、切断位置探索部１３は、２分木Ｔ（ｎ）と２分木Ｔ（ｎ＋１）との高（Ｈｅｉｇｈｔ）の差Ｘを求める（Ｓ１０６）。図６では、Ｘ＝ｈ２−ｈ１が計算される。続いて、切断位置探索部１３は、Ｘが閾値Ｈ以上であるか否かを判定する（Ｓ１０７）。
【００２７】
Ｘが閾値Ｈ未満である場合（Ｓ１０６でＮｏ）、切断位置探索部１３は、ｎに１を加算して（Ｓ１０８）、ステップＳ１０５及びＳ１０６を繰り返す。すなわち、図６では、２分木Ｂが、２分木Ｔ（ｎ）とされ、２分木Ｂより高さが１つ上の高さがｈ３である２分木Ｃが２分木Ｔ（ｎ＋１）とされて、Ｓ１０６が実行される。その結果、Ｘ＝ｈ３−ｈ２となる。
【００２８】
依然としてＸが閾値Ｈ未満であれば（Ｓ１０６でＮｏ）、２分木ＣがＴ（ｎ）とされ、２分木Ｃより高さが１つ上の高さｈ４である２分木Ｄが２分木Ｔ（ｎ＋１）とされて、ステップＳ１０６が実行される。その結果、Ｘ＝ｈ４−ｈ３となる。
【００２９】
このような処理を繰り返し、例えば、高さがｈｘである２分木Ｘが２分木Ｔ（ｎ）であり、高さがｈｙである２分木Ｙが２分木Ｔ（ｎ＋１）である場合に、高さの差（ｈｙ−ｈｘ）が、閾値Ｈ以上であるとすると（Ｓ１０７でＹｅｓ）、分割状態特定部１４は、２分木Ｔ（ｎ）と２分木Ｔ（ｎ＋１）との間を切断位置（分割位置）として特定する（Ｓ１０９）。
【００３０】
すなわち、ステップＳ１０５〜Ｓ１０８では、樹形図において、高さが１つ上の２分木との高さの差が閾値Ｈ以上である２分木の中で、高さが最低である２分木が探索（特定）される。
【００３１】
続いて、分割状態特定部１４は、切断位置において水平な直線（分割線）を引き、分割数（クラスタ数）及び分割状態を特定する（Ｓ１１０）。
【００３２】
図７は、樹形図に分割線が引かれた状態の一例を示す図である。図７の例では、分割数（クラスタ数）＝７として特定される。また、分割状態とは、各クラスタに属する要素（データ）がいずれであるかを示す情報である。各クラスタは、分割線によって分割された各２分木を辿ることで特定可能である。
【００３３】
続いて、規則性抽出部１５は、各クラスタから規則性を抽出する（Ｓ１１１）。例えば、入力データを構成する項目群のうち、ｐｒｉｃｅを目的変数とし、ｐｒｉｃｅ以外を説明変数とした場合の、説明変数と目的変数との相関関係等が、ビジネスルール（業務ルール）として抽出される。斯かる規則性の抽出は、公知技術を用いて実現可能である。本実施の形態では、各クラスタから以下のようなビジネスルールが抽出される。
（クラスタ１）女性・子供→１５０円
（クラスタ２）男性・子供→１５０円
（クラスタ３）金曜・子供→８０円
（クラスタ４）大人→１８０円
（クラスタ５）金曜・大人→１００円
（クラスタ６）男性大人→８０円
（クラスタ７）水曜．女性→大人１００円、水曜・女性→子供８０円
上記において、クラスタ７には２つのビジネスルールが含まれているが、概ねビジネスルールを抽出可能な粒度で入力データ群が分類（クラスタリング）されていると考えられる。
【００３４】
なお、本実施の形態のアルゴリズム（図３）は、「似通ったデータ同士からはビジネスルールレベルの抽象度を有する特徴を表す規則性を抽出するのは困難である。」という考えをベースとし、「似通っていない（特徴の異なる）データ同士（又はデータのグループ同士）には、ビジネスルールレベルの抽象度を有する特徴がある。」という考えに基づく。
【００３５】
また、図３では、高さが最低の２分木から切断位置の探索を開始する例を示したが、高さが最高である２分木から切断位置の探索が開始されてもよい。この場合、２分木Ｔ（ｎ）に対して２分木Ｔ（ｎ＋１）は、高さが１つ下の２分木となる。また、ステップＳ１０７において、高さの差Ｘが閾値Ｈ以下である場合に、ステップＳ１０９に進めばよい。すなわち、樹形図において、高さが１つ下の２分木との高さの差が閾値Ｈ以下である２分木の中で、高さが最高である２分木が探索（特定）されてもよい。
【００３６】
上述したように、本実施の形態によれば、非階層的クラスタ分析法により適したクラスタの分割を実現可能とすることができる。その結果、上記したように、入力データ群からビジネスルール等の抽出を可能とすることもできる。
【００３７】
例えば、或る業務（ビジネス）を行なうためのシステム（サーバ・クライアントシステム）において、サーバにはシステム利用者が実施した業務（ビジネス）の痕跡を表すＤＢストアデータが蓄積されている。このシステムを利用する業務のビジネスルール（業務ルール）が不明なケースがあり、その場合、現行システムを改善して新システムに作り変える更改開発をする際の妨げとなる。このような場合に、現行システムを用いた業務に関する業務ルールを推定するために本実施の形態を活用することができる。
【００３８】
例えば、ＤＢストアデータは、テーブルデータ形式で蓄積されている場合が多く、その場合に、１テーブルデータ内の行単位（レコード）を数値ベクトルとみなし、データの傾向からビジネスルールを推定しようとする場合、分析者が抽出したいビジネスルールに対して適切な組み合わせパタン（分割数（数値ベクトルの分類数））を決める必要がある。
【００３９】
そこで、本実施の形態を適用することで、データグループ同士の特徴が明確な部分で分割数を特定すれば、必要となるビジネスルールと一致したデータグループの組合せが得られ、そこから、容易にビジネスルールを推定することができる。
【００４０】
なお、従来法では、「一旦決めたクラスタにおいて、各クラスタ内の重心に対して、各クラスタ内の要素の値がどれほど密集しているか」を指標として分割数を決定するため、ビジネスルールの粒度と一致する分割数を決定するのは困難である。
【００４１】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４２】
１０          分析装置
１１          データ入力部
１２          クラスタ分析部
１３          切断位置探索部
１４          分割状態特定部
１５          規則性抽出部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
Ｂ            バス
【図１】
2019028606.tif 000003
【図２】
2019028606.tif 000004
【図３】
2019028606.tif 000005
【図４】
2019028606.tif 000006
【図５】
2019028606.tif 000007
【図６】
2019028606.tif 000008
【図７】
2019028606.tif 000009