Nothing Special   »   [go: up one dir, main page]

JP5668651B2 - 情報処理装置、プログラム、および要素抽出方法 - Google Patents

情報処理装置、プログラム、および要素抽出方法 Download PDF

Info

Publication number
JP5668651B2
JP5668651B2 JP2011197085A JP2011197085A JP5668651B2 JP 5668651 B2 JP5668651 B2 JP 5668651B2 JP 2011197085 A JP2011197085 A JP 2011197085A JP 2011197085 A JP2011197085 A JP 2011197085A JP 5668651 B2 JP5668651 B2 JP 5668651B2
Authority
JP
Japan
Prior art keywords
group
elements
sets
transaction
deletion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011197085A
Other languages
English (en)
Other versions
JP2013058142A (ja
Inventor
弘治 丸橋
弘治 丸橋
湯上 伸弘
伸弘 湯上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011197085A priority Critical patent/JP5668651B2/ja
Priority to US13/588,285 priority patent/US8732117B2/en
Publication of JP2013058142A publication Critical patent/JP2013058142A/ja
Application granted granted Critical
Publication of JP5668651B2 publication Critical patent/JP5668651B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、要素の集合を抽出する情報処理装置、プログラム、および要素抽出方法に関する。
情報通信技術(ICT:Information and Communication Technology)の利用範囲の広がりに伴い、様々な情報の収集が可能となっている。収集した情報に対して例えばデータマイニングを行うことで、有用な知識を取り出すことができる。
ICT技術で収集できる情報の一例として、各種商品などのトランザクション(取り引き)に関する情報(トランザクションデータ)がある。例えば、POS(Point Of Sales)システムを介して、顧客が一回の買い物で購入した品目をアイテムとして含むトランザクションデータを取得できる。この場合、トランザクションデータは、店舗で取り扱っている全品目の部分集合を示すデータセットである。
このようなトランザクションデータが与えられたときに、互いに同じトランザクションデータに含まれる(共起する)ことの多いアイテムの集合を、知識として抽出する場合がある。この場合、アイテムの集合が互いに同じトランザクションデータに含まれるというだけでなく、他の様々な情報を加味し、所定の抽出条件を満たすアイテム集合を抽出することができる。
各トランザクションが全アイテム集合の部分集合になっているデータセットから、所定の条件を満たすアイテム集合を抽出する場合、最も単純には、あらゆる組み合わせのアイテム集合に対して抽出条件を満たすかの確認処理が行われる。そして、抽出条件を満たすアイテム集合が抽出される。ただしこの方法は、アイテム数が多くなるとアイテムの組み合わせ数が爆発し、計算量が膨大になる。
そこで、アイテム集合の抽出条件に応じ、アイテム集合を抽出する際の処理を効率化する様々な技術が考えられている。例えば記号アイテムおよび数値アイテムを含む多数のトランザクションを探索対象として、事象共起関係の数値定量的解析を簡易かつ高精度に行える記号および数値バスケット分析方法が提案されている。また、処理の効率化技術として、グラフ操作の効率的なアルゴリズムも開示されている。
国際公開第2006/057105号
J. Hopcroft, R. Tarjan, "Efficient algorithms for graph manipulation" Communications of the ACM Volume 16 Issue 6, June 1973, p.372-378
しかし、アイテムの共通性によって集められたトランザクションのうちの、いずれかのトランザクションに同時に含まれることの多いアイテムの集合を抽出する処理について、処理を効率化するための有効な技術はなかった。アイテムの共通性によって集められたトランザクションのうちの、いずれかのトランザクションに同時に含まれることの多いアイテムの集合は、以下のような知識の習得に利用できる。
例えば、食堂において顧客が注文した品目をアイテムとするトランザクションに基づいて、アイテムの共通性によってトランザクションを集める。そして集めたトランザクションのうちの、いずれかのトランザクションに同時に含まれることの多いアイテムの集合を抽出できる。このようにして抽出されたアイテムの集合で示される品目を掲載したメニューを作成することで、好みが似た多くの顧客が同時に注文する品目を網羅したメニューを作成できる。作成されたメニューは、好みが似た、多くの顧客にとって使いやすいメニューとなる。
なお、アイテムの共通性によって集められたトランザクションのうちの、いずれかのトランザクションに同時に含まれることの多いアイテムの集合により得られる知識は、上記のような食堂のメニューに掲載する品目に関する知識の習得に限られない。例えば、商品の小売店において、1つの商品棚に纏めて置くのに適した商品の知識の習得にも利用可能である。また、このようなデータマイニングによる知識習得処理の効率化は、トランザクションに基づく知識の習得に限らず、各種情報を要素とする集合に基づく知識習得一般に有用な技術である。
1つの側面では、本発明は、要素の共通性によって関連付けられた複数の集合のいずれかに、同時に含まれることの多い要素の集合を効率的に抽出する情報処理装置、プログラム、および要素抽出方法を提供することを目的とする。
1つの案では、第1の削除手段、グループ生成手段、第2の削除手段、および出力手段を有する情報処理装置が提供される。
第1の削除手段は、記憶手段に格納された、少なくとも1つの要素を含む複数の集合に対して、包含数閾値未満の要素しか含まない集合の削除と、出現数閾値未満の集合にしか含まれない要素の削除とを行う。グループ生成手段は、集合と要素との削除後に記憶手段内に残存する集合のうち、要素の共通性によって関連付けられた集合が属するグループを生成する。第2の削除手段は、生成されたグループごとに、記憶手段内の該グループに属する集合に対して、包含数閾値未満の要素しか含まない集合の削除と、該グループに属する集合のうち出現数閾値未満の集合にしか含まれない要素の削除とを行う。出力手段は、集合と要素との削除後にグループに残存する集合に含まれる要素のリストを出力する。
1態様によれば、要素の共通性によって関連付けられた複数の集合のいずれかに、同時に含まれることの多い複数の要素を効率的に抽出することができる。
第1の実施の形態に係る装置の機能構成例を示す図である。 第1の実施の形態における要素のリスト出力処理の手順の一例を示すフローチャートである。 第1の実施の形態による要素の抽出例を示す図である。 第2の実施の形態で想定するアイテム抽出例を示す図である。 利用しやすいメニューの条件に沿った品目集合の抽出例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 第2の実施の形態に用いるサーバのハードウェアの一構成例を示す図である。 サーバの機能を示すブロック図である。 トランザクション記憶部のデータ構造の一例を示す図である。 グループ情報記憶部のデータ構造の一例を示す図である。 アイテム集合抽出処理の手順の一例を示すフローチャートである。 アイテム集合抽出処理の一例を示す図である。 最大アイテム集合抽出処理の手順の一例を示すフローチャートである。 最大アイテム集合抽出処理の一例を示す図である。 トランザクション集合分割処理の手順を示すフローチャートである。 トランザクション集合分割処理の一例を示す図である。 トランザクション集合が複数回分割される例を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態では、要素の共通性によって関連付けられた複数の集合のいずれかに、同時に含まれることの多い要素の集合の抽出条件を以下のように定義する。
[第1の要素抽出条件]
抽出される複数の要素それぞれは、その要素を含む出現数閾値以上の集合が、1つのグループに属する複数の集合内に存在し、そのグループに属する各集合は、抽出される複数の要素のうちの包含数閾値以上の要素を含む。
[第2の要素抽出条件]
抽出される複数の要素に対して第1の要素抽出条件を満たすグループに属する複数の集合は、抽出される複数の要素のうちの共有数閾値以上の要素を共有する集合同士を関連付けることによる関連性を有する集合の集まりである。
次に、上記第1・第2の要素抽出条件を満たす複数の要素を抽出するための機能について説明する。
図1は、第1の実施の形態に係る装置の機能構成例を示す図である。情報処理装置Cは、記憶手段1、第1の削除手段2、グループ生成手段3、第2の削除手段4、別グループ生成手段5および出力手段6を有する。
記憶手段1は、少なくとも1つの要素を含む複数の集合1a,1b,1cを記憶する。
第1の削除手段2は、記憶手段1に対して、包含数閾値未満の要素しか含まない集合の削除と、出現数閾値未満の集合にしか含まれない要素の削除とを、削除する集合および要素が無くなるまで繰り返す。
グループ生成手段3は、集合と要素との削除後に記憶手段1内に残存する集合のうち、要素の共通性によって関連付けられた集合が属するグループを生成する。例えばグループ生成手段3は、削除する集合および要素が無くなった記憶手段1内に残存する集合のうち、共有数閾値以上の要素を共有する集合間を関連付け、関連付けられた集合間を辿ることで到達可能な複数の集合が属するグループを生成する。
第2の削除手段4は、生成されたグループごとに集合と要素との削除処理を行う。例えば第2の削除手段4は、記憶手段1内のグループに属する集合に対して、包含数閾値未満の要素しか含まない集合の削除と、該グループに属する集合のうち出現数閾値未満の集合にしか含まれない要素の削除とを行う。第2の削除手段4は、集合と要素との削除処理を、削除する集合および要素が無くなるまで繰り返す。
別グループ生成手段5は、集合と要素との削除が行われたグループごとに、そのグループに残存する集合を、要素の共通性によって関連付ける。そして、別グループ生成手段5は、関連付けられた複数の集合がそのグループに残存する集合の一部の場合、関連付けられた複数の集合が属する別のグループを生成する。例えば、別グループ生成手段5は、集合と要素との削除が行われたグループに残存する集合のうち、共有数閾値以上の要素を共有する集合間を関連付け、関連付けられた集合間を辿ることで到達可能な複数の集合を求める。そして別グループ生成手段5は、求められた複数の集合が、元のグループに属する集合の一部である場合、求められた複数の集合が属する別のグループを生成する。
出力手段6は、集合と要素との削除が行われたグループに残存する集合に含まれる要素のリストを出力する。例えば出力手段6は、集合と要素との削除が行われたグループから別のグループが作成できなかった場合、集合と要素との削除が行われたグループに属する集合に含まれる要素のリストを出力する。
なお、第1の削除手段2、グループ生成手段3、第2の削除手段4、別グループ生成手段5および出力手段6は、情報処理装置Cが有するCPU(Central Processing Unit)により実現することができる。また、記憶手段1は、情報処理装置Cが有するRAM(Random Access Memory)やハードディスクドライブ(HDD:Hard Disk Drive)などにより実現することができる。
また、図1に示した各機能間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
図2は、第1の実施の形態における要素のリスト出力処理の手順の一例を示すフローチャートである。以下、図2に示す処理をステップ番号に沿って説明する。なお、以下の処理は、例えばユーザによる実行指示の入力に応じて開始される。
[ステップS1]第1の削除手段2は、記憶手段1内のすべての集合1a,1b,1c,・・・を処理対象として、所定の削除条件を満たす集合と要素とを削除する。例えば第1の削除手段2は、記憶手段1に対して、包含数閾値未満の要素しか含まない集合の削除と、出現数閾値未満の集合にしか含まれない要素の削除とを、削除する集合および要素が無くなるまで繰り返す。
[ステップS2]グループ生成手段3は、記憶手段1内に残存する集合に基づいて、複数の集合からなるグループを生成する。例えばグループ生成手段3は、削除する集合および要素が無くなった記憶手段1内に残存する集合のうち、共有数閾値以上の要素を共有する集合間を関連付け、関連付けられた集合間を辿ることで到達可能な複数の集合が属するグループを生成する。
[ステップS3]第2の削除手段4は、ステップS2で生成されたグループに属する集合を処理対象として、所定の削除条件を満たす集合と要素とを削除する。例えば第2の削除手段4は、記憶手段1内のグループに属する集合に対して、包含数閾値未満の要素しか含まない集合の削除と、そのグループに属する集合のうち出現数閾値未満の集合にしか含まれない要素の削除とを行う。第2の削除手段4は、集合と要素との削除処理を、削除する集合および要素が無くなるまで繰り返す。
[ステップS4]別グループ生成手段5は、削除する集合および要素が無くなったグループごとに、そのグループの一部を分離した別のグループを生成する。例えば別グループ生成手段5は、既存のグループに残存する集合のうち、共有数閾値以上の要素を共有する集合間を関連付け、関連付けられた集合間を辿ることで到達可能な複数の集合を求める。別グループ生成手段5は、求められた複数の集合が、元のグループに属する集合の一部である場合、求められた複数の集合が属する別のグループを生成する。
[ステップS5]出力手段6は、ステップS4の処理において別のグループが生成できたか否かを判断する。出力手段6は、別のグループが生成できたのであれば、処理をステップS3に進める。また出力手段6は、別のグループが生成できていないのであれば、処理をステップS6に進める。
[ステップS6]出力手段6は、生成済みのグループそれぞれから、そのグループに残存する集合のいずれかに含まれる要素のリストを出力する。
このようにして、上記第1・第2の条件を満たす複数の要素が抽出される。
図3は、第1の実施の形態による要素の抽出例を示す図である。図3では、第1の実施の形態による要素抽出過程を、記憶手段1内の集合の状態遷移で示している。なお、図3の例では、出現数閾値、包含数閾値、および共有数閾値がすべて「2」であるものとする。
第1の状態は、記憶手段1に格納された集合の初期状態である。図3では、記憶手段1に7個の集合a,b,c,d,e,f,gが格納されている。各集合の識別子の右に、その集合に含まれる要素がアルファベットで示されている。記憶手段1に格納された複数の集合のうち、集合eは要素を1つしか含んでおらず、包含数閾値未満の要素しか含んでいないこととなる。そのため、集合eは、記憶手段1から削除される。また、集合eの削除後に残存する各集合に含まれる要素の出現数をカウントすると、要素「E」の出現数が「1」であり、出現数閾値未満である。そこで、集合dから、要素「E」が削除される。
要素「E」が削除されたことにより、集合dに含まれる要素数は「2」から「1」に減少する。すると集合dに含まれる要素数は、包含数閾値未満となり、記憶手段1から集合dが削除される。これ以上、集合および要素を削除できないため、集合と要素との最初の削除処理は終了する。
第2の状態は、集合と要素との最初の削除処理は終了後の状態である。記憶手段1内に残存する集合のうち、共有数閾値以上の要素を共有する集合が関連付けられる。すると、集合a,b,cが互いに共有数閾値以上の要素を共有しており、関連付けられる。また集合f,gが共有数閾値以上の要素を共有しており、関連付けられる。そこで集合a,b,cが属するグループ6aと、集合f,gが属するグループ6bとが生成される。
第3の状態は、グループ生成後の状態を示す図である。生成されたグループ6a,6bそれぞれについて、包含数閾値未満の要素しか含んでいない集合と、同一グループ内の出現数閾値未満の集合にしか含まれない要素とが削除される。すると、要素「F」は、グループ別に出現数をカウントすると、グループ6a,6bのいずれにおいても1回しか出現しない。そこで、各グループ6a,6bから、要素「F」が削除される。
第4の状態は、集合と要素との2回目の削除処理は終了後の状態である。第4の状態で各グループ6a,6b内に残存する集合に基づいて、グループ内での集合の関連付けが行われる。図3の例では、既に生成されているグループ6a,6bの集合が互いに関連付けられるだけであり、元のグループの一部を分離した別のグループは生成されない。そこで既に生成されているグループ6a,6bごとに、そのグループに残存する集合に含まれる要素のリスト7a,7bが出力される。
このようにして出力された要素のリスト7a,7bは、上記の第1・第2の要素抽出条件を満たす。従って要素のリスト7a,7bは、要素の共通性によって関連付けられた複数の集合のいずれかに、同時に含まれることの多い要素の集合である。
しかも第1の実施の形態に示した処理は、第1・第2の要素抽出条件を満たさない集合および要素の削除と、要素の共通性による集合のグループ分けとを交互に行うことで要素を効率的に絞り込んでいる。そのため、複数の要素のあらゆる組み合わせについて、上記の第1・第2の要素抽出条件を満たすかどうかを判断する場合に比べて、計算量が少なくて済む。その結果、要素数が大量になっても、要素の共通性によって関連付けられた複数の集合のいずれかに、同時に含まれることの多い要素の集合を効率的に抽出することが可能となる。
なお、出現数閾値、包含数閾値、および共有数閾値の設定内容によっては、1つのグループの一部の集合が属する別のグループを生成できないことが、予め分かっている場合もある。例えば出現数閾値、包含数閾値、および共有数閾値が、すべて「2」の場合、最初にグループ化したときに関連付けられた集合間で共有された要素は、2つ以上の集合に含まれるため、その後の削除処理で削除されることはない。また、グループに属する集合は、削除されることのない2つ以上の要素を含む。そのため、集合が削除されることもない。そのため、そのグループに対して要素の共有性に基づく集合間の関連付けを行うと、グループ内のすべての集合が関連付けられ、別のグループは生成されない。このように別のグループが生成されないことが自明な場合には、図2のステップS4、S5の処理を実行せずに、集合と削除とを行ったグループから要素のリストを出力することができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、POSからトランザクションデータを収集し、顧客に提示するメニュー一覧に載せるのに適したアイテムの組み合わせに関する知識を取得するものである。なお、トランザクションデータに含まれるアイテムは、第1の実施の形態に示した要素の一例である。またトランザクションデータは、第1の実施の形態に示した、要素を含む集合の一例である。
図4は、第2の実施の形態で想定するアイテム抽出例を示す図である。図4の例では、飲食店のPOS端末装置は、各顧客が注文した品目を含むPOSデータ21を記憶する。なお、POSデータ21に含まれる、顧客ごとの注文した品目のリストが、トランザクションデータである。図4では、例えば「顧客1」が、「炒飯、餃子、青椒肉絲」を注文したことが記憶されている。このようなPOSデータ21が所定の調査期間分記憶されると、そのPOSデータ21に基づいてデータマイニングを行う。
データマイニングでは、同時に注文されることの多い、できるだけ大きな品目の集合を生成する。そして、飲食店の店員は、同時に注文されることの多い品目の集合を載せたメニュー22を作成する。例えば、「炒飯」、「餃子」、「青椒肉絲」、および「麻婆豆腐」が同時に抽出されることが多い場合、これらの品目を同一ページに載せたメニュー22が作成される。このように抽出された集合に含まれる品目を、メニューの同じページに掲載しておくことで、顧客は、注文したい品目を1つのページ内で見つけることができ、注文がしやすくなる。
第2の実施の形態では、利用しやすいメニューを、以下のように定義する。
・メニュー中どの品目に対しても、そのメニュー他の多くの品目と併せて注文した顧客が、過去に多数存在すること。
・メニュー中の多くの品目を併せて注文した顧客の集まり(顧客群)は、好みが似た(メニューから多くのメニューを共通に注文した)顧客の集まりであること。
具体的には、以下の条件を満たすメニューを作成するものとする。なお、予め閾値k,m,nが設定されているものとする。ここでkは2以上の整数、mは1以上の整数、nは1以上のk以下の整数である。
[条件1]メニューに含まれる各品目は、メニューに含まれる品目のうちk品以上の品目を注文した顧客群のなかのm人以上の顧客によって注文されていること。この条件をトランザクションデータに当てはめると、抽出されるアイテム集合中のどのアイテムも、アイテム集合中のk個以上のアイテムを含むようなm個以上のトランザクションに含まれることである。
[条件2」メニューからk品以上の品目を注文した顧客群に属する各顧客は、その顧客群に属する他の顧客との間で、メニュー内のn品以上の品目を共通に注文しているという関連付けによって結び付けられていること。この条件をトランザクションデータに当てはめると、アイテム集合中のk個以上のアイテムを含むようなトランザクションの集合は、アイテム集合中のn個以上のアイテムを共有することで関連付けられたトランザクションの集まりであることである。
図5は、利用しやすいメニューの条件に沿った品目集合の抽出例を示す図である。図5では、POSデータ21をグラフィカルに示している。図5に示したPOSデータ21では、顧客と、その顧客が注文した品目とを線で接続している。また、上記[条件1]、[条件2]における閾値k,m,nの値は、それぞれk=2、m=2、n=2とする。
図5の例において、2つのアイテム集合MA,MBについて、上記[条件1]、[条件2]を満たすか否かを検討する。
・アイテム集合MA
アイテム集合MAには、顧客が注文した品目を示すアイテムとして「炒飯」、「餃子」、「青椒肉絲」、および「麻婆豆腐」が含まれている。
まずアイテム集合MAに関して、[条件1]の適合の有無を検討する。アイテム集合MAに含まれる品目のいずれかを注文した顧客は、「顧客1」、「顧客2」、「顧客3」、「顧客4」である。ここで「顧客1」、「顧客2」、「顧客3」は、アイテム集合MAから3品の品目を注文している。一方「顧客4」は、アイテム集合MAから1品の品目を注文している。すると、アイテム集合MAに含まれる品目のうちk(=2)品以上の注文をした顧客は、「顧客1」、「顧客2」、「顧客3」である。そこで「顧客1」、「顧客2」、「顧客3」を含む顧客群Aが形成される。
アイテム集合の各品目のうち「炒飯」は、顧客群Aに属する3人の顧客から注文されている。「餃子」、「青椒肉絲」、「麻婆豆腐」は、顧客群Aに属する2人の顧客から注文されている。すると、いずれの品目もm(=2)人以上の顧客によって注文されている。
以上により、アイテム集合MAは[条件1]を満たしている。
次に、アイテム集合MAに関して、[条件2]の適合の有無を検討する。顧客群Aに属する「顧客1」は、顧客群Aに属する他の「顧客2」との間で、アイテム集合MA内の「炒飯」、「餃子」を共通で注文している。顧客群Aに属する「顧客2」は、顧客群Aに属する他の「顧客3」との間で、アイテム集合MA内の「炒飯」、「麻婆豆腐」を共通で注文している。顧客群Aに属する「顧客3」は、顧客群Aに属する他の「顧客1」との間で、アイテム集合MA内の「炒飯」、「青椒肉絲」を共通で注文している。そうすると、顧客群Aに属するいずれの顧客も、その顧客群に属する他の顧客との間で、アイテム集合MA内のn(=2)品以上の品目を共通に注文している。従って[条件2]も満たされる。
その結果、アイテム集合MAに含まれる品目を掲載したメニューは、利用しやすいメニューの条件を満たしていることとなる。例えばアイテム集合MAに示される品目「炒飯」、「餃子」、「青椒肉絲」、および「麻婆豆腐」を載せたメニューは、「顧客1」、「顧客2」、「顧客3」と好みが似た多数の顧客にとって使いやすいメニューである。
・アイテム集合MB
アイテム集合MBには、顧客が注文した品目を示すアイテムとして「ラーメン」、「蟹玉」、および「チャーシュー」が含まれている。
まずアイテム集合MBに関して、[条件1]の適合の有無を検討する。アイテム集合MBに含まれる品目のいずれかを注文した顧客は、「顧客6」、「顧客7」である。ここで「顧客6」、「顧客7」は、アイテム集合MBから3品の品目を注文している。すると、アイテム集合MBに含まれる品目のうちk(=2)品以上の注文をした顧客は、「顧客6」、「顧客7」である。そこで「顧客6」、「顧客7」を含む顧客群Bが形成される。
アイテム集合の各品目のうち「ラーメン」、「蟹玉」、「チャーシュー」は、それぞれ顧客群Bに属する2人の顧客から注文されている。すると、いずれの品目もm(=2)人以上の顧客によって注文されている。
以上により、アイテム集合MBは[条件1]を満たしている。
次に、アイテム集合MBに関して、[条件2]の適合の有無を検討する。顧客群Bに属する「顧客6」は、顧客群Bに属する他の「顧客7」との間で、アイテム集合MB内の「ラーメン」、「蟹玉」、「チャーシュー」を共通で注文している。そうすると、顧客群Bに属するいずれの顧客も、その顧客群に属する他の顧客との間で、アイテム集合MB内のn(=2)品以上の品目を共通に注文している。従って[条件2]も満たされる。
その結果、アイテム集合MBに含まれる品目を掲載したメニューは、利用しやすいメニューの条件を満たしていることとなる。
第2の実施の形態では、このような利用しやすいメニューに載せる品目の決定に利用可能なアイテム抽出処理を、効率的に行うことができる。例えばアイテム集合MBに示される品目「ラーメン」、「蟹玉」、および「チャーシュー」を載せたメニューは、「顧客6」、「顧客7」と好みが似た多数の顧客にとって使いやすいメニューである。
このように、[条件1]と[条件2]とを満たすアイテム集合を抽出することで、有用なメニューが作成できる。このようなアイテム集合の条件を論理式で表すと、以下のようになる。すなわち、以下の条件を満たすアイテムの組み合わせXを抽出することとなる。
∃Y⊆Y0
((∀y∈Y) f(y,X)≧k) ∧
((∀x∈X) g(x,Y)≧m) ∧
((∀{yi,yj}⊆Y) r(yi,yj,X,Y,n)<∞)
・・・(1)
ここでY0は、全トランザクション集合である。Yは、Y0の部分集合である。「∃Y⊆Y0」で、Y0の任意の部分集合Yが定義されている。「∧」は、論理積を示す記号である。
「(∀y∈Y)」により、すべてのトランザクションyが部分集合Yに属することが示されている。「f(y,X)」は、アイテムの組み合わせXに含まれるアイテムのうち、トランザクションyに含まれる個数である。
「(∀x∈X)」により、すべてのアイテムxが、アイテムの組み合わせXに属することが示されている。「g(x,Y)」は、Yに含まれるトランザクションのうち、アイテムxを含む個数である。
iは、i番目(iは1以上の整数)のトランザクションyを示す。yjは、j番目(jは1以上の整数)のトランザクションyを示す。「(∀{yi,yj}⊆Y)」により、トランザクションyiとトランザクションyjと組み合わせのすべてが、トランザクションの部分集合Yの部分集合となることを示している。「r(yi,yj,X,Y,n)」は、アイテムの組み合わせXに含まれるアイテムをn個以上共有するトランザクションによって、部分集合Yに含まれるトランザクションをyiからyjまで辿ったときの最短パスの経路長である。例えば、yiとyjとが、アイテムの組み合わせXに含まれるアイテムをn個以上共有していれば、r(yi,yj,X,Y,n)=1となる。アイテムの組み合わせXに含まれるアイテムをn個以上共有するトランザクションによって、部分集合Yに含まれるトランザクションをyiからyjまで辿るパスが存在しないときは、r(yi,yj,X,Y,n)=∞とする。従って、該当するパスが存在すれば、「r(yi,yj,X,Y,n)<∞」の条件は満たされる。
次に、このような論理式を満たすようなアイテム集合を抽出するシステムの構成について説明する。
図6は、第2の実施の形態のシステム構成例を示す図である。サーバ100には、ネットワーク10を介して複数のPOS端末装置31〜33が接続されている。POS端末装置31〜33は、それぞれ例えば同系列の飲食店に設置されている。POS端末装置31〜33は、顧客が注文した品目のリストを、トランザクションデータとして記憶する。そしてPOS端末装置31〜33は、記憶したトランザクションデータを、サーバ100に送信する。
サーバ100は、POS端末装置31〜33から収集したトランザクションデータに基づいて、データマイニングを行う。
図7は、第2の実施の形態に用いるサーバのハードウェアの一構成例を示す図である。サーバ100は、CPU101によって装置全体が制御されている。CPU101には、バス108を介してRAM102と複数の周辺機器が接続されている。
RAM102は、サーバ100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
バス108に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、サーバ100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
通信インタフェース107は、ネットワーク10に接続されている。通信インタフェース107は、ネットワーク10を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置Cも、図3に示したコンピュータと同様のハードウェアにより実現することができる。
図8は、サーバの機能を示すブロック図である。サーバ100は、収集部110、トランザクション記憶部120、アイテム集合抽出部130、トランザクション集合分割部140、グループ情報記憶部150、および出力部160を有する。
収集部110は、POS端末装置31〜33から、トランザクションデータを収集する。収集部110は、収集したとトランザクションデータをトランザクション記憶部120に格納する。
トランザクション記憶部120は、トランザクションデータを記憶する。なおトランザクション記憶部120に格納されたトランザクションデータは、アイテム集合抽出部130によって更新される。例えば、トランザクションデータの削除や、アイテムの削除が行われる。例えばRAM102またはHDD103の記憶領域の一部が、トランザクション記憶部120として使用される。
アイテム集合抽出部130は、トランザクション記憶部120に格納されたトランザクションデータに基づいて、上記の[条件1」を満たすメニューに含まれる品目を示すアイテム集合を抽出する。アイテム集合抽出部130は、アイテム集合の抽出過程で、トランザクション記憶部120内のトランザクションデータの更新を行う。なおアイテム集合抽出部130は、グループ情報記憶部150にトランザクションのグループが設定されている場合、同一グループのトランザクションに関するトランザクションデータに基づいて、アイテム集合の抽出処理を行う。
トランザクション集合分割部140は、アイテム集合抽出部130により抽出されたアイテムに基づいて、上記の[条件2]を満たす顧客のトランザクションデータ同士を同じグループに纏めるように、トランザクションを複数のグループに分類する。トランザクション集合分割部140は、分類の結果をグループ情報記憶部150に格納する。
グループ情報記憶部150は、トランザクションの各グループに属するトランザクションデータに関する情報を記憶する。例えばRAM102またはHDD103の記憶領域の一部が、グループ情報記憶部150として使用される。
出力部160は、トランザクション集合分割部140によって、これ以上細かく分類できないと判断された場合、トランザクション記憶部120とグループ情報記憶部150とを参照し、グループごとの最大アイテム集合を出力する。
なお、図8に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、トランザクション記憶部120は、図1に示した第1の実施の形態の記憶手段1の一例である。アイテム集合抽出部130は、図1に示した第1の実施の形態の第1の削除手段2と第2の削除手段4とを合わせた機能の一例である。トランザクション集合分割部140は、図1に示した第1の実施の形態のグループ生成手段3と別グループ生成手段5とを合わせた機能の一例である。出力部160は、図1に示した第1の実施の形態の出力手段6の一例である。
次に、図8に示す各記憶部のデータ構造例について説明する。
図9は、トランザクション記憶部のデータ構造の一例を示す図である。トランザクション記憶部120には、トランザクションテーブル121が格納されている。
トランザクションテーブル121には、トランザクションとアイテムとの欄が設けられている。トランザクションの欄には、収集されたトランザクションデータの識別情報(トランザクションID)が設定される。アイテムの欄には、収集されたトランザクションデータに含まれているアイテムの識別情報(アイテムID)が設定される。
図10は、グループ情報記憶部のデータ構造の一例を示す図である。グループ情報記憶部150には、グループ管理テーブル151が格納されている。
グループ管理テーブル151には、グループとトランザクションとの欄が設けられている。グループの欄には、トランザクションのグループの識別情報(グループID)が設定される。トランザクションの欄には、対応するグループに属するトランザクションのトランザクションIDが設定される。
次に、第2の実施の形態におけるアイテム集合抽出処理の手順について説明する。
図11は、アイテム集合抽出処理の手順の一例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS101]収集部110は、POS端末装置31〜33からトランザクションデータを収集する。例えば収集部110は、ユーザからの指示に応じて、トランザクションデータを収集する。また収集部110は、所定の間隔で定期的にトランザクションデータを収集することもできる。また収集部110は、POS端末装置31〜33が任意のタイミングで送信したトランザクションデータを随時受信することもできる。収集部110は、収集したトランザクションデータをトランザクション記憶部120に格納する。
[ステップS102]アイテム集合抽出部130は、最大アイテム集合抽出処理を行う。例えばアイテム集合抽出部130は、ユーザからの指示に応じて最大アイテム集合抽出処理を行う。
なお、グループ情報記憶部150にトランザクションのグループが登録されていない場合、アイテム集合抽出部130は、トランザクション記憶部120に格納されているすべてのトランザクションデータで示されるトランザクションを1つのグループとする。そしてアイテム集合抽出部130は、すべてのトランザクションを処理対象として、最大アイテム集合抽出処理を行う。
また、グループ情報記憶部150にトランザクションのグループが登録されている場合、アイテム集合抽出部130は、グループごとに最大アイテム集合抽出処理を行う。グループの最大アイテム抽出処理では、そのグループに属するトランザクションが処理対象となる。最大アイテム集合抽出処理の詳細は後述する(図13参照)。
[ステップS103]アイテム集合抽出部130は、ステップS102で得られた最大アイテム集合が空集合か否かを判断する。アイテム集合抽出部130は、最大アイテム集合が空集合であれば、処理を終了する。またアイテム集合抽出部130は、最大アイテム集合が空集合でなければ、処理をステップS104に進める。なおアイテム集合抽出部130は、最大アイテム集合が空集合でない場合、例えばトランザクション集合分割部140に、トランザクション集合の分割を指示する。
[ステップS104]トランザクション集合分割部140は、トランザクション集合分割処理を行う。例えばトランザクション集合分割部140は、アイテム集合抽出部130からのトランザクション集合の分割指示に応じて、トランザクション集合分割処理を行う。なお、トランザクション集合分割処理の詳細は後述する。
[ステップS105]トランザクション集合分割部140は、ステップS104の処理により、トランザクション集合を複数のグループに分割できたか否かを判断する。トランザクション集合分割部140は、分割できた場合、処理をステップS102に進める。またトランザクション集合分割部140は、分割できなかった場合、処理をステップS106に進める。なおトランザクション集合分割部140は、分割できなかった場合、例えば出力部160に、トランザクション群の分割を指示する。
[ステップS106]出力部160は、アイテム集合を出力する。例えば出力部160は、グループ情報記憶部150に格納されたトランザクションのグループを判断する。次に、出力部160は、トランザクション記憶部120を参照し、グループごとに、そのグループに属するトランザクションに関するトランザクションデータに含まれるアイテムを抽出する。そして出力部160は、グループごとに抽出したアイテムの集合を出力する。
図12は、アイテム集合抽出処理の一例を示す図である。第1の状態は、アイテム集合抽出処理の入力データを示している。入力データは、トランザクションテーブル121に設定された各トランザクションデータと、各閾値(k,m,n)の値である。アイテム集合抽出処理が開始されると、まず最大アイテム集合抽出処理が行われ、第2の状態に移行する。
第2の状態では、トランザクションテーブル121から、[条件1]を満たすことができないトランザクションデータとアイテムとが削除されている。すなわち、アイテム数がk個未満のトランザクションデータや、出現トランザクション数がm個未満のアイテムが削除されている。そして、トランザクションテーブル121に残存するトランザクションデータのいずれかに含まれるアイテムの集合が、最大アイテム集合41として抽出されている。その後、トランザクション集合分割処理が行われ、第3の状態に移行する。
第3の状態は、トランザクション集合の分割後の状態である。トランザクション集合を分割することで、トランザクションのグループが複数生成されている。同一グループには、n個以上のアイテムが共通するトランザクション間の関係を辿ることで、互いに到達可能なトランザクションが含まれる。トランザクション集合が分割されると、グループごとに、最大アイテム集合抽出処理が行われ、第4の状態に移行する。
第4の状態は、2回目の最大アイテム集合抽出処理後の状態である。2回目の最大アイテム集合抽出処理は、アイテム数がk個未満のトランザクションデータや、出現トランザクション数がm個未満のアイテムの削除が、グループごとに行われている。そしてグループごとに最大アイテム集合42,43が抽出されている。
その後、トランザクション集合分割処理が行われるが、これ以上、各グループを分割することができない。そこで、各グループの最大アイテム集合42,43が出力される。
このような最大アイテム集合抽出処理とトランザクション集合分割処理との繰り返しにより、[条件1]、[条件2]を満たす最大アイテム集合が生成される。
次に、最大アイテム集合抽出処理について説明する。
図13は、最大アイテム集合抽出処理の手順の一例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS121]アイテム集合抽出部130は、グループ管理テーブル151(図10参照)にグループが登録されているか否かを判断する。アイテム集合抽出部130は、グループが登録されている場合、処理をステップS123に進める。またアイテム集合抽出部130は、グループが登録されていない場合、処理をステップS122に進める。
[ステップS122]アイテム集合抽出部130は、トランザクションテーブル121(図9参照)に登録されているすべてのトランザクションデータを処理対象に決定する。アイテム集合抽出部130は、その後、処理をステップS125に進める。
[ステップS123]アイテム集合抽出部130は、グループ管理テーブル151に登録されているグループから、ステップS125〜S128の処理が未処理のグループを1つ選択する。
[ステップS124]アイテム集合抽出部130は、選択したグループに属するトランザクションデータを処理対象に決定する。
[ステップS125]アイテム集合抽出部130は、処理対象のトランザクションデータのうち、アイテム数がk個未満のトランザクションデータを、トランザクションテーブル121から削除する。このとき、例えばアイテム集合抽出部130は、削除対象のトランザクションデータのトランクションIDがグループ管理テーブル151に設定されている場合、そのトランザクションIDを削除する。アイテム数がk個未満のトランザクションデータに示された注文を行った顧客は、[条件1]に示されている「k品以上の品目を注文した顧客」には該当しない。アイテム数がk個未満のトランザクションデータを削除することで、以後の処理における解析対象の情報量が減少し、処理の効率化が図れる。
[ステップS126]アイテム集合抽出部130は、トランザクションテーブル121内の処理対象のトランザクションデータから、出現トランザクション数がm個未満のアイテムを削除する。出現トランザクション数がm個未満のアイテムに対応する品目は、[条件1]に示されている「m人(mは1以上の整数)以上の顧客によって注文されている品目」には該当しない。出現トランザクション数がm個未満のアイテムを削除することで、以後の処理における解析対象の情報量が減少し、処理の効率化が図れる。
[ステップS127]アイテム集合抽出部130は、トランザクションテーブル121内の処理対象のトランザクションデータのうち、アイテム数がk個未満のトランザクションデータがあるか否かを判断する。ステップS126の処理によってアイテムが削除されたことで、トランザクションデータのアイテム数がk個未満となってしまう可能性がある。そこでアイテム集合抽出部130は、アイテム数がk個未満のトランザクションデータがある場合には、処理をステップS125に進め、再度トランザクションデータの削除を行う。またアイテム集合抽出部130は、アイテム数がk個未満のトランザクションデータがない場合、処理をステップS128に進める。
[ステップS128]アイテム集合抽出部130は、処理対象トランザクションデータのいずれか1つに含まれているアイテムの集合を、最大アイテム集合として出力する。
[ステップS129]アイテム集合抽出部130は、グループ管理テーブル151に未処理のグループがあるか否かを判断する。アイテム集合抽出部130は、未処理のグループがあれば処理をステップS123に進める。またアイテム集合抽出部130は、未処理のグループがなければ、最大アイテム集合抽出処理を終了する。
このようにして、最大アイテム集合が抽出される。
図14は、最大アイテム集合抽出処理の一例を示す図である。図14には、最大アイテム集合抽出処理に伴うトランザクションテーブル121の状態遷移状況を示している。図14に示すトランザクションテーブル121では、左欄にトランザクションIDが示されており、トランザクションIDに対応づけて、トランザクションに含まれるアイテムのアイテムIDのリストが示されている。
なお図14の例では、またトランザクションのグループが設定されていないものとする。従って、トランザクションテーブル121に登録されているすべてのトランザクションデータを処理対象とした最大アイテム集合の抽出処理が行われる。
第1の状態は、トランザクションテーブル121の初期状態である。初期状態において、トランザクションテーブル121から、アイテム数がk(=2)未満のトランザクションデータが検出される。するとアイテム数が「1」の、トランザクションID「T5」のトランザクションデータが検出される。そして、そのトランザクションデータが、トランザクションテーブル121から削除される。
第2の状態は、アイテム数がk未満のトランザクションデータを削除後の状態である。第2の状態において、いずれかのトランザクションデータに出現するアイテムごとに、処理対象のトランザクションデータへの出現回数が計数される。そして、出現回数がm(=2)未満のアイテムが検出される。図14の例では、出現回数が「1」のアイテムID「E」のアイテムが検出される。そして検出されたアイテムが、トランザクションテーブル121内の処理対象のトランザクションデータから削除される。
第3の状態は、出現回数がm個未満のアイテムを削除後の状態である。図14の例では、トランザクションID「T4」のトランザクションデータから、アイテムID「F」が削除されている。アイテムを削除後、再度、トランザクションテーブル121から、アイテム数がk個未満のトランザクションデータが検出される。するとアイテムの削除によってアイテム数が「1」になった、トランザクションID「T4」のトランザクションデータが検出される。そして、そのトランザクションデータが、トランザクションテーブル121から削除される。
第4の状態は、アイテム数がk個未満のトランザクションデータの2回目の削除処理後の状態である。第4の状態において、いずれかのトランザクションデータに出現するアイテムごとに、処理対象のトランザクションデータへの出現回数が計数される。そして、出現回数がm個未満のアイテムの検出処理が行われる。しかし、第4の状態では、出現回数がm未満のアイテムは存在しない。そこで、トランザクションテーブル121に残存しているトランザクションデータのいずれかに含まれるアイテムの集合が、最大アイテム集合41として抽出される。
抽出された最大アイテム集合が空集合でなければ、トランザクション集合分割処理が行われる。
図15は、トランザクション集合分割処理の手順を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS131]トランザクション集合分割部140は、グループ管理テーブル151(図10参照)にグループが登録されているか否かを判断する。トランザクション集合分割部140は、グループが登録されている場合、処理をステップS133に進める。またトランザクション集合分割部140は、グループが登録されていない場合、処理をステップS132に進める。
[ステップS132]トランザクション集合分割部140は、トランザクションテーブル121(図9参照)に残存するすべてのトランザクションデータを処理対象に決定する。トランザクション集合分割部140は、その後、処理をステップS135に進める。
[ステップS133]トランザクション集合分割部140は、グループ管理テーブル151に登録されているグループから、ステップS135〜S137の処理が未処理のグループを1つ選択する。
[ステップS134]アイテム集合抽出部130は、選択したグループに属するトランザクションデータを処理対象に決定する。
[ステップS135]トランザクション集合分割部140は、処理対象のトランザクションデータのうち、共有アイテム数がn個以上のトランザクションデータによるネットワークを生成する。例えばトランザクション集合分割部140は、処理対象のトランザクションデータから2つのトランザクションデータを抽出して得られるすべての組み合わせについて、両方のトランザクションデータに含まれるアイテムの数(共有アイテム数)を計数する。そしてトランザクション集合分割部140は、共有アイテム数がn個以上のトランザクションデータの組み合わせについて、それらのトランザクションデータを関連付ける。トランザクション集合分割部140は、例えば共有アイテム数がn個以上のトランザクションデータ間に、関連を示すパスを設定する。これにより、パスで接続されたトランザクションのネットワークが生成される。
[ステップS136]トランザクション集合分割部140は、処理対象のトランザクションデータ全体によるネットワークを、ネットワーク上でパスを辿ることで到達可能なサブネットワークに分割する。なお、サブネットワークへの分割技術としては、例えば非特許文献1に開示されているConnected Component抽出アルゴリズムを利用できる。
[ステップS137]トランザクション集合分割部140は、サブネットワークごとのトランザクションのグループを生成する。例えばトランザクション集合分割部140は、ステップS136で生成されたサブネットワークに属するトランザクションを1つのグループとして、グループ管理テーブル151に新たなグループを登録する。またトランザクション集合分割部140は、ステップS133で選択したグループを分割したサブグループを登録した場合、分割前のグループをグループ管理テーブル151から削除する。
[ステップS138]トランザクション集合分割部140は、トランザクション集合分割処理の開始時点でグループ管理テーブル151に既に登録されていたグループのうち、未処理のグループがあるか否かを判断する。トランザクション集合分割部140は、未処理のグループがあれば、処理をステップS133に進める。またトランザクション集合分割部140は、未処理のグループがなければ、トランザクション集合分割処理を終了する。
図16は、トランザクション集合分割処理の一例を示す図である。第1の状態は、トランザクション集合分割処理の開始時における、トランザクションテーブル121とグループ管理テーブル151との初期状態である。第1の状態におけるトランザクションテーブル121には、最大アイテム集合抽出処理を1回実行後に残存しているトランザクションデータが登録されている。グループ管理テーブル151には、グループは登録されていない。この場合、トランザクションテーブル121に登録されているすべてのトランザクションデータを処理対象として、トランザクション集合分割処理が行われる。トランザクション集合分割処理では、まずネットワーク51が生成される。
第2の状態は、生成されたネットワーク51を示している。ネットワーク51は、処理対象のトランザクションデータのうち、n個以上のアイテムが共通するトランザクションデータ間を関連付けたものである。図16に示すネットワーク51では、処理対象のトランザクションデータがノード61〜65で示され、トランザクションデータ間の関係づけが、ノード間を接続するエッジで示されている。
例えば、トランザクションID「T1」のトランザクションデータとトランザクションID「T2」のトランザクションデータとは、アイテムID「A,B」の2つのアイテムが共通する。そのため、それらのトランザクションデータに対応するノード61,62間がエッジで接続されている。同様に、トランザクションID「T2」、「T3」それぞれのトランザクションデータに対応するノード62,63間がエッジで接続されている。トランザクションID「T1」、「T3」それぞれのトランザクションデータに対応するノード61,63間がエッジで接続されている。トランザクションID「T6」、「T7」それぞれのトランザクションデータに対応するノード64,65間がエッジで接続されている。
ここでネットワーク51内のノードを、エッジによる接続関係を有するノードごとのサブネットワーク52,53に分けることができる。
第3の状態は、ネットワーク51をサブネットワーク52,53に分割した後の状態である。サブネットワーク52には、ノード61,62,63が含まれる。サブネットワーク53には、ノード64,65が含まれる。
なお、サブネットワーク52内の各ノード61〜63は、他のすべてのノードと関連付けられているが、第2の実施の形態では、サブネットワーク52内の各ノードは、同じサブネットワーク52内の少なくとも1つの他のノードと関連付けられていればよい。例えば、ノード63は2つのノード61,62にエッジで関連付けられているが、ノード62に対して関連付けられていなくても、ノード63はサブネットワーク52に属することとなる。
第4の状態は、サブネットワーク52,53に応じたグループ生成後の状態である。第4の状態のグループ管理テーブル151には、トランザクションID「T1,T2,T3」のトランザクションが属するグループと、トランザクションID「T6,T7」のトランザクションが属するグループとが登録されている。
なお図16の第4の状態は、図12の第3の状態と同じである。すなわち、図16の第4の状態の後、図12に示した様に、再度最大アイテム集合抽出処理が行われる。
ところで、図12に示した例は、2回目のトランザクション集合分割処理では、グループが分割できず、その時点の最大アイテム集合が出力されている。これは、k=2,m=2,n=2という、どのようなデータに対しても1回しか分割されることはない閾値を用いたためである。このような閾値の場合、1回目の分割で各トランザクションデータ間の結合の根拠となったアイテムは、グループ内の少なくとも2以上のトランザクションデータに含まれている。またグループのどのトランザクションデータにも2以上のアイテムが含まれる。そのため、2回目の最大アイテム集合抽出処理で削除されるトランザクションデータやアイテムはなく、それ以上分割されることはない。
閾値k,m,nの値を上記の例と異なる値にすれば、2回目移行のトランザクション集合分割処理でグループが更に分割される場合もある。
図17は、トランザクション集合が複数回分割される例を示す図である。図17の例では、閾値k,m,nの値がそれぞれk=2,m=3,n=2である。第1の状態は、トランザクションテーブル121の初期状態である。図17の例では、12個のトランザクションデータがトランザクションテーブル121に登録されている。第1の状態で、最大アイテム集合抽出処理が行われる。図17の例では、トランザクションID「T12」のトランザクションデータのアイテム数が「1」であり、閾値k(=2)未満である。そこで該当するトランザクションデータが削除される。
トランザクションID「T12」のトランザクションデータ削除後の各アイテムの出現数を計数すると、アイテムID「I」のアイテム数が「2」であり、閾値m(=3)未満である。そこでアイテムID「I」のアイテムがトランザクションテーブル121から削除される。すると、トランザクションID「T11」のアイテム数が「2」から、k個未満(=2)の「1」に減少する。そこで該当するトランザクションデータが削除される。
第2の状態は、1回目の最大アイテム集合抽出処理後の状態である。最大アイテム集合抽出処理により、トランザクションテーブル121では、トランザクションID「T11」、「T12」のトランザクションデータと、アイテムID「I」のアイテムとが削除されている。第2の状態のトランザクションテーブル121に対して、トランザクション集合分割処理が行われる。
トランザクション集合分割処理で生成されるネットワーク71は、2つのサブネットワーク72,73に分けられる。そこで、サブネットワーク72,73ごとのグループが生成される。図17の例では、グループID「G1」のグループに、トランザクションID「T1,T2,T3,T4,T5,T6,T7」のトランザクションデータが含まれる。またグループID「G2」のグループに、トランザクションID「T8,T9,T10」のトランザクションデータが含まれる。
第3の状態は、1回目のトランザクション集合分割処理後の状態である。第3の状態において、2回目の最大アイテム集合抽出処理が行われる。2回目の最大アイテム集合抽出処理では、グループごとに処理が行われる。グループID「G1」のグループの各アイテムの出現数を計数すると、アイテムID「B」のアイテム数が「2」であり、閾値m(=3)未満である。そこでアイテムID「B」のアイテムが、グループID「G1」のグループに属するトランザクションのトランザクションデータから削除される。またグループID「G2」のグループの各アイテムの出現数を計数すると、アイテムID「B」のアイテム数が「1」であり、閾値m(=3)未満である。そこでアイテムID「B」のアイテムが、グループID「G2」のグループに属するトランザクションのトランザクションデータから削除される。
第4の状態は、2回目の最大アイテム集合抽出処理後の状態である。第4の状態において、2回目のトランザクション集合分割処理が行われる。図17の例では、2回目の最大アイテム集合抽出処理によって、各グループのトランザクションデータから、アイテムID「B」のアイテムが削除されている。そのため、トランザクションID「T4」のトランザクションデータとトランザクションID「T5」のトランザクションデータとに共に含まれるアイテムは、アイテムID「A」のアイテムのみとなる。すると共に含まれるアイテム数「1」が閾値n(=2)未満となり、トランザクションID「T4」のトランザクションデータとトランザクション「T5」のトランザクションデータとの関連性は失われる。その結果、1回目のトランザクション集合分割処理で生成されたサブネットワーク72は、さらに2つのサブネットワーク74,75に分割される。なおサブネットワーク73は分割されない。
そこで、サブネットワーク73〜75ごとのグループが生成される。図17の例では、グループID「G1−1」のグループに、トランザクションID「T1,T2,T3,T4」のトランザクションデータが含まれる。グループID「G1−2」のグループに、トランザクションID「T5,T6,T7」のトランザクションデータが含まれる。またグループID「G2」のグループに、トランザクションID「T8,T9,T10」のトランザクションデータが含まれる。
第5の状態は、2回目のトランザクション集合分割処理後の状態である。第5の状態において、3回目の最大アイテム集合抽出処理が行われるが、トランザクションデータやアイテムは削除されない。そのため、2回目のトランザクション集合分割処理を行っても、分割されるグループはない。
そこで、第5の状態に示すトランザクションテーブル121に基づいて得られた、グループごとの最大アイテム集合76が出力される。図17の例では、グループID「G1−1」のグループに基づき、最大アイテム集合{A,C,E,F}が出力されている。グループID「G1−2」のグループに基づき、最大アイテム集合{A,D}が出力されている。グループID「G2」のグループに基づき、最大アイテム集合{G,H}が出力されている。
以上のようにして、[条件1]、[条件2]を満たす最大アイテム集合が得られる。第2の実施の形態に示した処理で最大アイテム集合を得ることで、効率的な計算が行われる。以下、第2の実施の形態における計算量について説明する。なお、以下の説明では、計算量をO記法で表す。
[最大アイテム集合抽出処理の計算量]
ここで、全アイテム数をN(Nは、1以上の整数)、全トランザクション数をM(Mは、1以上の整数)とする。
最初の最大アイテム集合抽出処理では、まず全トランザクションのアイテム数が集計される。この処理の計算量は、O(M)となる。
次に全アイテムのトランザクション数が集計される。この処理の計算量は、O(N)である。
この繰り返し処理の計算量は、大きく見積もってもO(M+N)である。
すると、最大アイテム集合抽出処理の計算量は、O(M+N)となる。
[トランザクション集合分割処理の計算量]
トランザクション集合分割処理の計算量は、上記非特許文献1に開示されているConnected Component抽出アルゴリズムの計算量となり、O(M+N)である。
すると最大アイテム集合抽出処理とトランザクション集合分割処理を合わせた計算量は、O(M+N)である。
第2の実施の形態では、最大アイテム集合抽出処理とトランザクション集合分割処理が、トランザクションのグループを分割できなくなるまで繰り返される。この場合の総計算量は、大きく見積もってもO((M+N)+(M+N−1)+…+1)=O((M+N)2)である。
一方、第2の実施の形態の技術を用いずに、[条件1]と[条件2]とを満足する最大アイテム集合を求める場合、すべてのアイテムの組み合わせについて、[条件1]と[条件2]とを満たすかどうかを判断することとなる。この場合の計算量は、O(M×2N)である。
すると第2の実施の形態の技術を用いた場合の計算量O((M+N)2)は、Nが大きいとき、第2の実施の形態の技術を用いない場合の計算量O(M×2N)よりも、格段に少なくなる。すなわち、全アイテム数Nが多いほど、第2の実施の形態の技術による処理の効率化の効果が高まる。
以上にして出力された最大アイテム集合を用いることで、例えばできるだけ多くの顧客に役立つような品目が掲載されたメニューを作成できる。さらに、このメニューに掲載された品目は、注文する品目に同じ傾向の顧客によって併せて注文されることが多い。そのため、各顧客は、自分と同じ傾向の顧客に注文されることの多いメニューだけを見ることができる。
また第2の実施の形態によれば、グループごとの最大アイテム集合が抽出される。抽出される最大アイテム集合は、それぞれを有効に利用できる顧客の傾向が異なる。そのため、抽出された複数の最大アイテム集合それぞれに基づいて、別個のメニューを作成すれば、それぞれ異なる傾向を持つ顧客群にとって有用なメニューとなる。例えば、辛い料理を好む顧客群用のメニューや、低カロリーの料理を好む顧客群用のメニューなど、顧客の嗜好に合わせたメニューが作成できる。
[その他の実施の形態]
なお、上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、サーバ100が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。なお記録媒体には、一時的な伝送信号自体は含まれない。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 記憶手段
1a,1b,1c,・・・ 集合
2 第1の削除手段
3 グループ生成手段
4 第2の削除手段
5 別グループ生成手段
6 出力手段
C 情報処理装置

Claims (8)

  1. 記憶手段に格納された、少なくとも1つの要素を含む複数の集合に対して、包含数閾値未満の要素しか含まない集合の削除と、出現数閾値未満の集合にしか含まれない要素の削除とを行う第1の削除手段と、
    集合と要素との削除後に前記記憶手段内に残存する集合のうち、要素の共通性によって関連付けられた集合が属するグループを生成するグループ生成手段と、
    生成されたグループごとに、前記記憶手段内の該グループに属する集合に対して、前記包含数閾値未満の要素しか含まない集合の削除と、該グループに属する集合のうち前記出現数閾値未満の集合にしか含まれない要素の削除とを行う第2の削除手段と、
    集合と要素との削除後にグループに残存する集合に含まれる要素のリストを出力する出力手段と、
    を有する情報処理装置。
  2. 前記第1の削除手段と前記第2の削除手段とは、削除する集合および要素が無くなるまで、集合の削除と要素の削除とを交互に繰り返すことを特徴とする請求項1記載の情報処理装置。
  3. 前記グループ生成手段は、集合と要素との削除後に前記記憶手段内に残存する集合のうち、共有数閾値以上の要素を共有する集合間を関連付け、関連付けられた集合間を辿ることで到達可能な複数の集合が属するグループを生成する、
    ことを特徴とする請求項1または2のいずれかに記載の情報処理装置。
  4. 集合と要素との削除が行われたグループごとに、該グループに残存する集合を、要素の共通性によって関連付け、関連付けられた複数の集合が該グループに残存する集合の一部の場合、関連付けられた複数の集合が属する別のグループを生成する別グループ生成手段をさらに有し、
    前記出力手段は、集合と要素との削除が行われたグループから別のグループが生成できなかった場合、該グループに残存する集合に含まれる要素のリストを出力する、
    ことを特徴とする請求項1乃至3のいずれかに記載の情報処理装置。
  5. 前記別グループ生成手段は、集合と要素との削除が行われたグループに残存する集合のうち、共有数閾値以上の要素を共有する集合間を関連付け、関連付けられた集合間を辿ることで到達可能な複数の集合が該グループに残存する集合の一部である場合、該複数の集合が属する別のグループを生成することを特徴とする請求項4記載の情報処理装置。
  6. 要素は、取り引きの対象となる品目であり、集合は、同時に取り引きされた品目を含むトランザクションであることを特徴とする請求項1乃至5のいずれかに記載の情報処理装置。
  7. コンピュータに、
    記憶手段に格納された、少なくとも1つの要素を含む複数の集合に対して、包含数閾値未満の要素しか含まない集合の削除と、出現数閾値未満の集合にしか含まれない要素の削除とを行い、
    集合と要素との削除後に前記記憶手段内に残存する集合のうち、要素の共通性によって関連付けられた集合が属するグループを生成し、
    生成されたグループごとに、前記記憶手段内の該グループに属する集合に対して、前記包含数閾値未満の要素しか含まない集合の削除と、該グループに属する集合のうち前記出現数閾値未満の集合にしか含まれない要素の削除とを行い、
    集合と要素との削除後にグループに残存する集合に含まれる要素のリストを出力する、
    処理を実行させるプログラム。
  8. コンピュータが、
    記憶手段に格納された、少なくとも1つの要素を含む複数の集合に対して、包含数閾値未満の要素しか含まない集合の削除と、出現数閾値未満の集合にしか含まれない要素の削除とを行い、
    集合と要素との削除後に前記記憶手段内に残存する集合のうち、要素の共通性によって関連付けられた集合が属するグループを生成し、
    生成されたグループごとに、前記記憶手段内の該グループに属する集合に対して、前記包含数閾値未満の要素しか含まない集合の削除と、該グループに属する集合のうち前記出現数閾値未満の集合にしか含まれない要素の削除とを行い、
    集合と要素との削除後にグループに残存する集合に含まれる要素のリストを出力する、
    ことを特徴とする要素抽出方法。
JP2011197085A 2011-09-09 2011-09-09 情報処理装置、プログラム、および要素抽出方法 Expired - Fee Related JP5668651B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011197085A JP5668651B2 (ja) 2011-09-09 2011-09-09 情報処理装置、プログラム、および要素抽出方法
US13/588,285 US8732117B2 (en) 2011-09-09 2012-08-17 Information processing apparatus and element extraction method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011197085A JP5668651B2 (ja) 2011-09-09 2011-09-09 情報処理装置、プログラム、および要素抽出方法

Publications (2)

Publication Number Publication Date
JP2013058142A JP2013058142A (ja) 2013-03-28
JP5668651B2 true JP5668651B2 (ja) 2015-02-12

Family

ID=47830730

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011197085A Expired - Fee Related JP5668651B2 (ja) 2011-09-09 2011-09-09 情報処理装置、プログラム、および要素抽出方法

Country Status (2)

Country Link
US (1) US8732117B2 (ja)
JP (1) JP5668651B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6020031B2 (ja) 2012-10-19 2016-11-02 富士通株式会社 抽出プログラム、抽出装置及び抽出方法
JP6003561B2 (ja) 2012-11-15 2016-10-05 富士通株式会社 抽出プログラム、抽出装置及び抽出方法
JP5962471B2 (ja) * 2012-11-30 2016-08-03 富士通株式会社 抽出プログラム、抽出装置及び抽出方法
JP6751235B2 (ja) * 2016-09-30 2020-09-02 富士通株式会社 機械学習プログラム、機械学習方法、および機械学習装置
WO2020033559A1 (en) * 2018-08-07 2020-02-13 Walmart Apollo, Llc System and method for structure and attribute based graph partitioning

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7475807B2 (en) * 2003-10-24 2009-01-13 De La Rue International Limited Method and apparatus for processing checks
JP4512832B2 (ja) 2004-11-26 2010-07-28 国立大学法人大阪大学 記号及び数値バスケット分析方法と記号及び数値バスケット分析装置
US7469826B2 (en) * 2005-10-31 2008-12-30 The Kroger Co. Combined in-store and fuel center point-of-sale system
JP2008159015A (ja) * 2006-11-27 2008-07-10 Toshiba Corp 頻出パターン発見装置および頻出パターン発見方法

Also Published As

Publication number Publication date
US20130066827A1 (en) 2013-03-14
US8732117B2 (en) 2014-05-20
JP2013058142A (ja) 2013-03-28

Similar Documents

Publication Publication Date Title
US11614856B2 (en) Row-based event subset display based on field metrics
JP5668651B2 (ja) 情報処理装置、プログラム、および要素抽出方法
US10459888B2 (en) Method, apparatus and system for data analysis
US20170140058A1 (en) Systems and Methods for Identifying Influencers and Their Communities in a Social Data Network
JP6047017B2 (ja) パターン抽出装置および制御方法
CN111984837B (zh) 商品数据的处理方法、装置及设备
JP2019512816A (ja) ページリソースの配置方法及び装置
CN103279513A (zh) 产生内容标签的方法、提供多媒体内容信息的方法及装置
US9110969B2 (en) Association acceleration for transaction databases
JP6411396B2 (ja) 支援システム
KR101897080B1 (ko) 의료 기록 문서에서의 의료 단어의 연관 규칙 생성 방법 및 그 장치
JP6316844B2 (ja) 予測モデル生成のためのユーザーインタフェース
CN109447749A (zh) 商品信息录入方法及装置
JP2015207026A (ja) 情報処理装置、レコード位置情報特定方法および情報処理プログラム
US20170011096A1 (en) Frequent item-set mining based on item absence
US20190266618A1 (en) Data management apparatus and data management system
JP5299624B2 (ja) 商品検索装置、および商品検索装置の動作方法
JPWO2017203672A1 (ja) アイテム推奨方法、アイテム推奨プログラムおよびアイテム推奨装置
KR100534493B1 (ko) 카테고리 추천 방법, 시스템 및 상기 방법을 실행하기 위한프로그램이 기록된 컴퓨터에서 판독 가능한 기록매체
CN111159163A (zh) 商品信息数据库生成方法、商品搜索方法及相关装置
JP2011086032A (ja) 変化話題抽出装置または変化話題抽出方法
US8626711B2 (en) Systems, methods, and media for correlating objects according to relationships
US10372694B2 (en) Structured information differentiation in naming
CN109934689B (zh) 目标对象排名解释方法、装置、电子设备及可读存储介质
WO2019163610A1 (ja) 情報処理システム及び情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141201

R150 Certificate of patent or registration of utility model

Ref document number: 5668651

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees