(57)【要約】【課題】データ群から抽出されるルールの曖昧さを低減すること。【解決手段】分析プログラムは、それぞれが複数の項目を含む複数のデータを入力する入力手順と、前記複数のデータについて階層的クラスタ分析を実行して樹形図を生成する分析手順と、前記樹形図に基づいて、前記複数の項目のうち目的変数として選定された第１の項目について、同一のクラスタ内に複数種類の値が混在しないように前記複数のデータを複数のクラスタに分割する分割手順と、前記クラスタごとに、前記第１の項目以外の第２の項目のうち、当該クラスタに属する全てのデータが同じ値を有する第２の項目を、当該クラスタにおける前記第１の項目の値に対する条件として抽出する抽出手順とをコンピュータに実行させる。【選択図】図３
2019028605.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数の項目を含む複数のデータを入力する入力手順と、
前記複数のデータについて階層的クラスタ分析を実行して樹形図を生成する分析手順と、
前記樹形図に基づいて、前記複数の項目のうち目的変数として選定された第１の項目について、同一のクラスタ内に複数種類の値が混在しないように前記複数のデータを複数のクラスタに分割する分割手順と、
前記クラスタごとに、前記第１の項目以外の第２の項目のうち、当該クラスタに属する全てのデータが同じ値を有する第２の項目を、当該クラスタにおける前記第１の項目の値に対する条件として抽出する抽出手順と、
をコンピュータに実行させることを特徴とする分析プログラム。
【請求項２】
前記複数の項目のうち、前記第２の項目のそれぞれを当該第２の項目の値の種別に応じた複数の項目に展開し、展開後の各項目が展開前の項目の値に該当するか否かを示す値を有するように、前記複数のデータのそれぞれを変換する変換手順をコンピュータに実行させ、
前記分析手順は、変換後の前記複数のデータについて階層的クラスタ分析を実行して樹形図を生成し、
前記抽出手順は、前記クラスタごとに、当該クラスタに属する全てのデータにおいて展開前の項目の値に該当する項目を、当該クラスタにおける前記第１の項目の値に対する条件として抽出する、
ことを特徴とする請求項１記載の分析プログラム。
【請求項３】
前記変換手順は、前記複数のデータのそれぞれの前記第２の項目の展開後の各項目のうち、展開前の項目の値に該当する項目には１を記録し、展開前の項目の値に該当しない項目には０を記録し、
前記抽出手順は、前記クラスタごとに、展開後の項目ごとに当該クラスタに属する全てのデータの積を計算し、前記積の値が１である項目を当該クラスタにおける前記第１の項目の値に対する条件として抽出する、
ことを特徴とする請求項２記載の分析プログラム。
【請求項４】
前記複数のデータについて主成分分析を実行して、前記第２の項目のうちの一部を除去する除去手順、
をコンピュータに実行させることを特徴とする請求項１乃至３いずれか一項記載の分析プログラム。
【請求項５】
前記複数のデータについて主成分分析を実行して、前記第２の項目又は前記第２の項目の展開後の項目のうちの一部を除去する除去手順、
をコンピュータに実行させることを特徴とする請求項２又は３記載の分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析プログラムに関する。
【背景技術】
【０００２】
インターネット上でのビジネスの普及や、モバイル網の普及により、さまざまなものがソフトウェアにより実現されるようになっており、商用で利用されるソフトウェアから抽出されるログの持つ意味が重要性を増している。例えば、業務用のシステムのログデータからビジネスルール等の抽出を期待することができる。
【０００３】
しかし、大規模なログほど膨大なログ情報となることから、そこから有意な情報の収集が困難になりつつある。
【０００４】
従来、膨大な購買データを対象としたアソシエーション分析が存在する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】［online］、インターネット＜URL：http://www.is.ouj.ac.jp/lec/data/C09/C09.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、アソシエーション分析は、相関ルールを頻度が高いものから確率的に抽出する手法であり、抽出された情報（例えば、ビジネスルール等）に曖昧さが残る可能性が有る。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、データ群から抽出されるルールの曖昧さを低減することを目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、分析プログラムは、それぞれが複数の項目を含む複数のデータを入力する入力手順と、前記複数のデータについて階層的クラスタ分析を実行して樹形図を生成する分析手順と、前記樹形図に基づいて、前記複数の項目のうち目的変数として選定された第１の項目について、同一のクラスタ内に複数種類の値が混在しないように前記複数のデータを複数のクラスタに分割する分割手順と、前記クラスタごとに、前記第１の項目以外の第２の項目のうち、当該クラスタに属する全てのデータが同じ値を有する第２の項目を、当該クラスタにおける前記第１の項目の値に対する条件として抽出する抽出手順とをコンピュータに実行させる。
【発明の効果】
【０００９】
データ群から抽出されるルールの曖昧さを低減することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態における分析装置１０のハードウェア構成例を示す図である。
【図２】第１の実施の形態における分析装置１０の機能構成例を示す図である。
【図３】第１の実施の形態における分析装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【図４】入力データ群の一例を示す図である。
【図５】変換後のデータ群の一例を示す図である。
【図６】階層的クラスタ分析により生成される樹形図の一例を示す図である。
【図７】本実施の形態において想定されるルールを示す図である。
【図８】樹形図を利用したクラスタへの分割の例を示す図である。
【図９】各データのクラスタへの分割結果の一例を示す図である。
【図１０】各データのクラスタ順でのソート結果の一例を示す図である。
【図１１】７分割の状態を想定されるルールと比較した例を示す図である。
【図１２】２本の分割線を用いてデータ群をクラスタに分割する例を示す図である。
【図１３】クラスタ別のコード値ごとの積の一例を示す図である。
【図１４】１１分割の状態を想定されるルールと比較した例を示す図である。
【図１５】第２の実施の形態における分析装置１０の機能構成例を示す図である。
【図１６】第２の実施の形態における分析装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【図１７】主成分分析の結果の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて第１の実施の形態を説明する。図１は、第１の実施の形態における分析装置１０のハードウェア構成例を示す図である。図１の分析装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１２】
分析装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１３】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って分析装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１４】
図２は、第１の実施の形態における分析装置１０の機能構成例を示す図である。図２において、分析装置１０は、データ入力部１１、変数選定部１２、データ変換部１３、クラスタ分析部１４、データ分割部１５及びルール抽出部１６等を有する。これら各部は、分析装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。
【００１５】
以下、分析装置１０が実行する処理手順について説明する。図３は、第１の実施の形態における分析装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【００１６】
ステップＳ１０１において、データ入力部１１は、分析対象のデータ群（以下、「入力データ群」という。）を入力する。入力データ群は、補助記憶装置１０２に予め記憶されていてもよいし、ネットワークを介して受信されてもよいし、その他の方法によって入力されてもよい。
【００１７】
図４は、入力データ群の一例を示す図である。図４において、複数の各データ（各レコード）は、特定の商品Ａ（例えば、或る遊園地ａのチケット）の購買履歴を示し、番号、ｎａｍｅ、ｄａｔｅ、曜日、ｇｅｎｄｅｒ、ｃｈｉｌｄｆｌａｇ、及びｐｒｉｃｅ等の複数の項目のそれぞれの値を含む。
【００１８】
番号は、データの識別子が記録される項目である。ｎａｍｅは、購買者の名前が記録される項目である。ｄａｔｅは、商品が購買された年月日が記録される項目である。曜日は、商品が購買された曜日が記録される項目である。ｇｅｎｄｅｒは、商品の購買者の性別（Ｍ（男性）又はＦ（女性））が記録される項目である。ｃｈｉｌｄｆｌａｇは、商品の購買者が子供か（ＣＨ）否か（ＮＯＴ＿ＣＨ）が記録される項目である。ｐｒｉｃｅは、商品の価格が記録される項目である。なお、図４では、１０００件のデータのうちの一部が便宜上省略されている。
【００１９】
続いて、変数選定部１２は、各項目の中から目的変数とコード値とを選定する（Ｓ１０２）。目的変数は、例えば、ユーザによって指定されてもよい。本実施の形態では、ｐｒｉｃｅが目的変数として選定されたこととする。また、コード値とは、その範囲が限られている値をいい、目的変数に対して説明変数になりうる項目をいう。目的変数を除く各項目のうち、いずれがコード値であるかは、ユーザによって指定されてもよいし、変数選定部１２が自動的に判定してもよい。例えば、値の種別数が適切な値以下である項目がコード値として選定されてもよい。適切な数とは、１０個等、人間によって理解可能な数である。コード値の判定にクラスタ分析が利用されてもよい。
【００２０】
例えば、ｎａｍｅ及びｄａｔｅのそれぞれ値は、値の種別数が１０を超えるため、コード値（説明変数）に選定されない。一方、曜日、ｇｅｎｄｅｒ、ｃｈｉｌｄｆｌａｇは、値の種別数が１０個以下であるため、コード値（説明変数）として選定される。なお、閾値との比較によって目的変数に影響するような項目は、コード値として選定され、当該閾値以上であるか否かによって２値に変換されてもよい。
【００２１】
続いて、データ変換部１３は、コード値として選定された項目を、値の種別の数に展開（細分化又は分割）し、各データについて展開後の各項目の値を０又は１の２値へ変換する（Ｓ１０３）。０は、展開前の値に該当しないことを意味し、１は、展開前の値に該当することを意味する。
【００２２】
図５は、変換後のデータ群の一例を示す図である。図５では、曜日が７つの項目（月〜日）に展開されている。例えば、月が記録されていたデータであれば、月の項目に１が記録されている。また、ｇｅｎｄｅｒは、Ｍ及びＦの項目に展開されている。さらに、ｃｈｉｌｄｆｌａｇの項目は、ＣＨ及びＮＯＴ＿ＣＨの項目に展開されている。こうすることで、元の項目の値は、０又は１で表現可能となる。なお、図５において、各データの番号の値は、図４に対応する。また、目的変数であるｐｒｉｃｅの値は変換されない。なお、以下において、単にデータ又はデータ群というとき、図５の状態のデータ又はデータ群をいう。
【００２３】
なお、入力データ群が、当初から図５にしめされる形式を有する場合、ステップＳ１０３は省略されてもよい。
【００２４】
続いて、クラスタ分析部１４は、各データ（数値ベクトル）を要素として、階層的クラスタ分析を実行（適用）して、樹形図を生成する（Ｓ１０４）。図６に、図５のデータ群に対する階層的クラスタ分析により生成される樹形図の一例を示す。なお、樹形図において、各２分木の高さ（Ｈｅｉｇｈｔ）は、各２分木の一方の要素又は要素群と、他方の要素又は要素群との距離を示す。
【００２５】
続いて、データ分割部１５は、クラスタ数Ｎの初期値を設定する（Ｓ１０５）。当該初期値は、ユーザによって設定されてもよいし、データ分割部１５が自動的に決定してもよい。ユーザによって設定される場合、想定されるルールの数が初期値として設定されてもよい。例えば、本実施の形態では、図７に示されるルール１〜６の６つのルールが存在することが想定されている。換言すれば、本実施の形態における正解は、図７の６つのルールである。図７において、例えば、「金曜，大人→１００円」は、金曜日であれば大人のチケットは、１００円であることを示す。
【００２６】
続いて、データ分割部１５は、データ群（図５）を、樹形図（図６）を利用して、クラスタ数Ｎ以上の最小数のクラスタに分割する（Ｓ１０６）。ここで、「クラスタ数Ｎ以上の最小数」というのは、樹形図の形状によって、必ずしも、クラスタ数Ｎと完全に同じ数のクラスタに分割可能であるとは限らないからである。
【００２７】
図８は、樹形図を利用したクラスタへの分割の例を示す図である。図８に示されるように、樹形図に対して水平な分割線Ｌ１を引くことによって、データ群をクラスタへ分割することができる。したがって、ステップＳ１０６では、クラスタ数Ｎ以上に分割可能なＨｅｉｇｈｔの位置が分割線Ｌ１を引く位置として決定される。なお、図８の例では、７つのクラスタに分割される。
【００２８】
図９は、各データのクラスタへの分割結果の一例を示す図である。図９には、各データの番号に対応させて、当該データの分割先（分類先）のクラスタの識別子（１〜７）が示されている。
【００２９】
続いて、データ分割部１５は、クラスタ順に各データをソートする（Ｓ１０７）。図１０に、各データのクラスタ順でのソート結果の一例を示す。すなわち、図１０では、クラスタ１に属するデータが上位に配置されており、クラスタ７に属するデータが下位に配置されている。
【００３０】
続いて、データ分割部１５は、各クラスタについて、当該クラスタ内での目的変数の混在の有無を判定する（Ｓ１０８）。クラスタ内での目的変数の混在とは、１つのクラスタ内に、目的変数の値が２種類以上（複数種類）有る状態をいう。例えば、図１０には一部のデータしか示されていないが、クラスタ７について、目的変数であるｐｒｉｃｅの値として、１０００と８００とが含まれている。したがって、この場合、少なくともクラスタ７については、目的変数の混在が有ると判定される。
【００３１】
なお、７分割された状態を想定されるルールと比較すると図１１に示される通りとなる。図１１では、右端の列が、各クラスタから抽出されるルールを示し、括弧内の数字がクラスタの識別子を示す。
【００３２】
図１１において、クラスタ５は、ルール１に対応する。すなわち、クラスタ５からルール１を抽出可能であることが分かる。また、クラスタ３は、ルール２に対応する。クラスタ７は、ルール３及び４に対応する。上記したように、クラスタ７は、目的変数が混在しているため、分割が不十分なためである。また、クラスタ４及び６は、ルール５に対応する。また、クラスタ１及び２は、ルール６に対応する。
【００３３】
いずれかのクラスタに目的変数の混在が有る場合（Ｓ１０８でＹｅｓ）、データ分割部１５は、現在の分割数に１を加算した結果をクラスタ数Ｎに代入し（Ｓ１０９）、ステップＳ１０６以降を繰り返す。現在の分割数とは、図８の状態であれば７である。
【００３４】
このように、ステップＳ１０６〜Ｓ１０９が繰り返される過程において、クラスタ内での目的変数の混在が無くなると（Ｓ１０８でＮｏ）、ステップＳ１１０に進む。
【００３５】
なお、ステップＳ１０６〜Ｓ１０６が繰り返される過程において、クラスタ数を増加させるための分割線は１本に限定されなくてもよい。
【００３６】
図１２は、２本の分割線を用いてデータ群をクラスタに分割する例を示す図である。図１２では、分割線Ｌ１とは高さ（Ｈｅｉｇｈｔ）が異なる分割線Ｌ２によって、部分的に詳細な分割が行われる例が示されている。その結果、図８において右端のクラスタが、更に２分割されている。
【００３７】
ステップＳ１１０において、ルール抽出部１６は、各クラスタに分類された全データについて、クラスタごと（クラスタ別）に、コード値ごとの積を計算する（Ｓ１１０）。
【００３８】
図１３は、クラスタ別のコード値ごとの積の一例を示す図である。図１３には、クラスタ１についてのコード値ごとの積の例が、最終行（左端に「ＡＮＤ」が記録されている行）に示されている。図１３の例では、ＦとＣＨについての積が１であり、それ以外の積が０である。すなわち、クラスタ１に分類された全てのデータにおいて、Ｆ及びＣＨの値が１であり、他のコード値は、少なくとも一つのデータが０であることが分かる。図１３には、クラスタ１のみの例が示されているが、ステップＳ１１０の時点において分割された全てのクラスタについて同様の処理が実行される。
【００３９】
続いて、ルール抽出部１６は、クラスタ別のコード値ごとの積の算出結果に基づいて、目的変数の値に対するコード値の条件（コード値（説明変数）と目的変数との相関）を抽出する（Ｓ１１１）。具体的には、或るクラスタにおいて、積が１であるコード値が、当該クラスタにおける目的変数の値に対する条件として抽出される。図１３の例では、Ｆ及びＣＨのそれぞれの積が１である。また、クラスタ１の全データのｐｒｉｃｅの値は、１５０円である。したがって、クラスタ１からは、女性，子供→１５０円という条件（すなわち、ルール）が抽出される。
【００４０】
なお、本実施の形態において用いたデータ群（図５）では、１１分割した際に目的変数の混在が解消された。図１４は、１１分割の状態を想定されるルールと比較した例を示す図である。図１４では、右端の列が、各クラスタから抽出されるルールを示し、括弧内の数字がクラスタの識別子を示す。
【００４１】
図１４において、クラスタ７及びクラスタ１１は、ルール１に対応する。クラスタ４は、ルール２に対応する。クラスタ９は、ルール３に対応する。クラスタ１０は、ルール４に対応する、クラスタ５、クラスタ６及びクラスタ８は、ルール５に対応する。クラスタ１、クラスタ２及びクラスタ３は、ルール６に対応する。
【００４２】
このように、想定されるルールとは、必ずしも完全に一致した結果は自動的には得られないが、大量のデータ群の中から、想定されるルールに近似したルールを導出することができる。なお、分析者は、クラスタ７及びクラスタ１１から、容易にルール１への抽象化を行うことができる。同様に、分析者は、クラスタ５、６及び８からのルール５への抽象化、並びにクラスタ１、２及び３へのルール６への抽象化を容易に行うことができる。
【００４３】
また、例えば、クラスタ２のように、分析者が想定していないルールを導出することができる。また、各クラスタ内では、目的変数の混在は解消されている。したがって、本実施の形態によれば、大量のデータ群の中から曖昧さが解消されたルール（例えば、ビジネスルール）を抽出することができる。すなわち、データ群から抽出されるルールの曖昧さを低減することができる。また、人間が理解可能な程度の粒度（すなわち、細かすぎない適度な粒度）で、斯かるルールを抽出することができる。
【００４４】
なお、図３のステップＳ１０３における、コード値の展開後（細分化後）の項目の各値の０又は１変換は、ステップＳ１１０及びＳ１１１の処理を効率化するためのものであり、本質的に必須の処理ではない。
【００４５】
例えば、ＦＡＬＳＥ又はＴＲＵＥ等、該当するか否かを区別可能な値に変換されればよい。この場合、ステップＳ１１０では、各コード値の積を計算するのではなく、例えば、全データが該当する値を示す項目（全データが展開前の値を同じ値を示す項目）の特定が行われればよい。ステップＳ１１１では、ステップＳ１１０において特定された項目が、条件として抽出されればよい。
【００４６】
次に、第２の実施の形態について説明する。第２の実施の形態では第１の実施の形態と異なる点について説明する。第２の実施の形態において特に言及されない点については、第１の実施の形態と同様でもよい。
【００４７】
図１５は、第２の実施の形態における分析装置１０の機能構成例を示す図である。図１５中、図２と同一部分には同一符号を付し、その説明は省略する。
【００４８】
図１５において、分析装置１０は、更に、変数削減部１７を有する。変数削減部１７は、コード値（説明変数）を絞り込む（削減する）ための処理を実行する。コード値（説明変数）の数が膨大な場合に、目的変数に対する寄与が小さいコード値を処理対象から除外することで、処理効率を向上させるためである。なお、変数削減部１７は、分析装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。
【００４９】
図１６は、第２の実施の形態における分析装置１０が実行する処理手順の一例を説明するためのフローチャートである。図１６中、図３と同一ステップには同一ステップ番号を付し、その説明は省略する。図１６では、ステップＳ１０３とステップＳ１０４との間にステップＳ２０１が追加されている。
【００５０】
ステップＳ２０１において、変数削減部１７は、コード値の展開後のデータ群について主成分分析を実行して、コード値を主要な成分に絞り込む（削減する）。
【００５１】
図１７は、主成分分析の結果の一例を示す図である。図１７において、行Ｌ１は、各主成分の識別子を示す。例えば、「ＰＣｎ」は、第ｎ主成分を示す。行Ｌ２は、各主成分の累積寄与率を示す。例えば、行Ｌ２において、ＰＣ６（第６成分）に対応する値は、０．８０３８０（約０．８）である。このことは、第６主成分までで全体の８０％の情報を占めることを示す。
【００５２】
一方、表Ｔ１は、各変数（コード値又は目的変数）と各主成分との関係を示す。すなわち、各変数が、各主成分に含まれる度合いを示す。例えば、ＰＣ１（第１主成分）について、ＣＨ、ＮＯＴ＿ＣＨ及びｐｒｉｃｅの値群ｖ２を参照すると、第１主成分は大人、子供及び金額が主要素の成分であることが分かる。
【００５３】
変数削減部１７は、このような主成分分析の結果に基づいて、例えば、累積寄与率が閾値以上であって最小の累積寄与率に対応する主成分を特定し、当該主成分までを高い度合いで構成するコード値のみに処理対象を絞り込む。換言すれば、それ以外のコード値が処理対象から除去される。
【００５４】
例えば、累積寄与率に対する閾値が０．８である場合、図１７の例では、第６成分が選択される。第６成分までに含まれる度合いが高いコード値は、火、水、木、金日、Ｍ、Ｆ、ＣＨ及びＮＯＴ＿ＣＨである。したがって、この場合、月及び土のそれぞれの項目が、以降の処理対象から除外される。すなわち、各データの月及び土の項目が削除された状態で、以降の処理が実行される。
【００５５】
なお、変数削減部１７による処理は、ステップＳ１０２とステップＳ１０３との間で実行されてもよい。すなわち、コード値の展開前の状態において、コード値の絞り込みが実行されてもよい。
【００５６】
なお、本実施の形態において、目的変数は、第１の項目の一例である。コード値（説明変数）は、第２の項目の一例である。
【００５７】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００５８】
１０          分析装置
１１          データ入力部
１２          変数選定部
１３          データ変換部
１４          クラスタ分析部
１５          データ分割部
１６          ルール抽出部
１７          変数削減部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
Ｂ            バス
【図１】
2019028605.tif 000003
【図２】
2019028605.tif 000004
【図３】
2019028605.tif 000005
【図４】
2019028605.tif 000006
【図５】
2019028605.tif 000007
【図６】
2019028605.tif 000008
【図７】
2019028605.tif 000009
【図８】
2019028605.tif 000010
【図９】
2019028605.tif 000011
【図１０】
2019028605.tif 000012
【図１１】
2019028605.tif 000013
【図１２】
2019028605.tif 000014
【図１３】
2019028605.tif 000015
【図１４】
2019028605.tif 000016
【図１５】
2019028605.tif 000017
【図１６】
2019028605.tif 000018
【図１７】
2019028605.tif 000019