JP2010073189A - 顧客状態推定システム、顧客状態推定方法および顧客状態推定プログラム - Google Patents

顧客状態推定システム、顧客状態推定方法および顧客状態推定プログラム Download PDF

Info

Publication number
JP2010073189A
JP2010073189A JP2009119131A JP2009119131A JP2010073189A JP 2010073189 A JP2010073189 A JP 2010073189A JP 2009119131 A JP2009119131 A JP 2009119131A JP 2009119131 A JP2009119131 A JP 2009119131A JP 2010073189 A JP2010073189 A JP 2010073189A
Authority
JP
Japan
Prior art keywords
customer
data
state
sales
label
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.)
Granted
Application number
JP2009119131A
Other languages
English (en)
Other versions
JP5304429B2 (ja
Inventor
Yukiko Kuroiwa
由希子 黒岩
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009119131A priority Critical patent/JP5304429B2/ja
Publication of JP2010073189A publication Critical patent/JP2010073189A/ja
Application granted granted Critical
Publication of JP5304429B2 publication Critical patent/JP5304429B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Cash Registers Or Receiving Machines (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ある商品またはサービスの購入に関する種種の顧客状態を推定することができる顧客状態推定システムを提供する。
【解決手段】初期顧客状態推定手段103は、顧客状態推定対象期間における最後の売上データから、その顧客状態推定対象期間における顧客の顧客状態を推定する。ラベル予測手段104は、初期顧客状態推定手段103に顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件からラベルを予測する。顧客状態推定手段105は、予測用データに含まれるラベルと、予測用データと分類器とから予測された予測結果とから、顧客状態推定対象期間における顧客の顧客状態を推定する。
【選択図】図33

Description

本発明は、商品またはサービスの需要を予測する顧客状態推定システム、顧客状態推定方法および顧客状態推定プログラムに関する。
小売店では、POS(Point of Sales)システムが用いられており、収集した商品の売上データは様々に活用されている。その中で、売上データに基づいて商品の需要を予測し、発注に活用するシステムがある。
例えば、特許文献1には、商品の売上実績から、売価や天気などの各種変動要因による売上の変動を考慮して商品の需要を予測するシステムが記載されている。
特許文献2には、新商品を構成するユニット仕様毎に販売予測を行う方法が記載されている。特許文献2に記載された方法では、商品の商品特性などをニューラルネットワーク式で表現した販売構成比モデル関数に代入することによって、ユニット仕様別の販売構成比を算出し、販売構成比に基づいてユニット仕様毎の販売数を算出する。
また、特許文献3には、過去の売上実績数量から販売量を予測する装置が記載されている。専門家が持っている経験則をルールとして体系化し、そのルールを使って販売予測をする方法であり、特許文献3には、調整した結果を検証するために、手入力による仮想データでシミュレーションを行い、アラームを表示する手段も記載されている。
特許文献4には、POSデータの分析から消費者の併売傾向を把握するシステムが記載されている。
また、特許文献5には、来店日時、来店頻度、利用額の区分で顧客データを分析する顧客管理システムが記載されている。
特開2004−334326号公報 特開2003−122895号公報 特開平7−175787号公報 特開2007−094592号公報 特開2002−259667号公報
商品やサービスは、時間の経過とともに価値が変化し、それに伴って需要が変化するが、特許文献1に記載されている需要予測では、時間の経過とともに変化する需要を予測することができない。その理由は、時間の経過とともに需要が変化しないことを前提として、長期間の売上実績を各種変動要因による影響で調整して、需要を予測するからである。
特許文献2,3に記載されている需要予測システムは、専門家による知見無しに自動的に販売数を予測することができない。その理由は、特許文献2では、商品特性を自動的に推定する方法は開示されておらず、実施の形態では、現行車、新車共に開発者が特性値を百分率で指定するよう構成されているためである。従って、開発者という専門家による商品特性の数値化が必要であり、自動的に販売数を予測することはできない。特許文献3でもまた、専門家による経験則なしに自動的に販売量を予測する方法は開示されていない。特許文献3に記載の装置ではファジイ・ニューロデータテーブルにプロダクションルールとメンバシップ関数が予め登録されており、そのプロダクションルールとメンバシップ関数を自動的に生成する方法は特許文献3に開示されていない。従って、時間の経過とともに変化する需要を予測するためのプロダクションルールは、専門家が与える必要があり、専門家による既知のルールの範囲内でしか分析することができない。
特許文献4に記載されているマーケティングデータ収集分析システムは、販売数を分析することはできるが、予測することはできない。
また、商品やサービスの価値は、個別の顧客の特性に応じて異なるが、特許文献1,2,3に記載された技術では、売上数に基づいて処理するため、個別の顧客の違いは総和され相殺されてしまう。そのため、個別の顧客の特性の違いを考慮できない。特許文献4に記載されているシステムでは、顧客特性を考慮するが、顧客特性を指定するのはシステムのユーザであり、自動的に分類した顧客特性に応じた需要を分析することはできない。
また、顧客が、ある商品またはサービスの購入に関して、反復的に購入しているのか、あるいは、反復的に購入していたが離反して購入しなくなったかなどの顧客状態を推定できることが、好ましい。
そこで、本発明は、顧客がある商品またはサービスの購入に関して、反復的に購入しているのか、あるいは、反復的に購入していたが離反して購入しなくなったかなどの種種の顧客状態を推定することができる顧客状態推定システム、顧客状態推定方法および顧客状態推定プログラムを提供することを目的とする。
本発明による顧客状態推定システムは、商品またはサービスの販売時における販売条件と、商品またはサービスの販売数または販売の有無を示す販売数情報と、商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを記憶する売上データ記憶手段と、個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定手段と、各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成手段と、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反である場合、最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反以外である場合、最後の売上データが示す顧客の顧客状態を、データ毎状態推定手段が推定した顧客状態とする初期顧客状態推定手段と、売上データのうち、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測手段と、予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定手段とを備えることを特徴とする。
本発明による顧客状態推定方法は、商品またはサービスの販売時における販売条件と、商品またはサービスの販売数または販売の有無を示す販売数情報と、商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを売上データ記憶手段に記憶させておき、個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定ステップと、各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成ステップと、顧客状態推定対象期間における最後の売上データからデータ毎状態推定ステップで判定した顧客状態が反復または離反である場合、最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定ステップで判定した顧客状態が反復または離反以外である場合、最後の売上データが示す顧客の顧客状態を、データ毎状態推定ステップで推定した顧客状態とする初期顧客状態推定ステップと、売上データのうち、初期顧客状態推定ステップで顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測ステップと、予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定ステップで顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定ステップとを含むことを特徴とする。
本発明による顧客状態推定プログラムは、商品またはサービスの販売時における販売条件と、商品またはサービスの販売数または販売の有無を示す販売数情報と、商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを記憶する売上データ記憶手段を備えたコンピュータに搭載される顧客状態推定プログラムであって、コンピュータに、個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定処理、各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成処理、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反である場合、最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反以外である場合、最後の売上データが示す顧客の顧客状態を、データ毎状態推定処理で推定した顧客状態とする初期顧客状態推定処理、売上データのうち、初期顧客状態推定処理で顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測処理、および、予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定処理で顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定処理を実行させることを特徴とする。
本発明によれば、顧客がある商品またはサービスの購入に関して、反復的に購入しているのか、あるいは、反復的に購入していたが離反して購入しなくなったかなどの種種の顧客状態を推定できる。
本発明の顧客状態推定システムの第1の実施形態の構成例を示すブロック図である。 売上データの例を示す説明図である。 データ推定部21の処理経過の例を示すフローチャートである。 ある顧客nのデータに関する推定例を示す説明図である。 分類器生成部22の処理経過の例を示すフローチャートである。 学習用データの例を示す説明図である。 既知の属性およびクラスの組み合わせの例を示す説明図である。 分類器の例を示す説明図である。 分類器から予測されるクラスの例を示す説明図である。 初期顧客状態推定部23の処理経過の例を示すフローチャートである。 データクラス予測部24の処理経過の例を示すフローチャートである。 顧客状態推定部25の処理経過の例を示すフローチャートである。 分割表の例を示す説明図である。 最初に求めた分割表における周辺の合計を固定したときの各分割表およびSaの値を示す説明図である。 本発明の顧客状態推定システムの第2の実施形態の構成例を示すブロック図である。 第2の実施形態の顧客状態推定システムの処理経過の例を示すフローチャートである。 本発明の顧客状態推定システムの第3の実施形態の構成例を示すブロック図である。 補正部41の処理経過の例を示すフローチャートである。 本発明の顧客状態推定システムの第4の実施形態の構成例を示すブロック図である。 顧客データの例を示す説明図である。 予測部61の処理経過の例を示すフローチャートである。 予測部61の構成例を示すブロック図である。 影響度推定部80の処理経過の例を示すフローチャートである。 普及予測部90の処理経過の例を示すフローチャートである。 本発明の顧客状態推定システムの第5の実施形態の構成例を示すブロック図である。 販売促進データの例を示す説明図である。 販促効果推定部71の処理経過の例を示すフローチャートである。 販促状態変化予測部72の処理経過の例を示すフローチャートである。 本発明の顧客状態推定システムの第6の実施形態の構成例を示すブロック図である。 第6の実施形態の予測部の例を示すブロック図である。 第6の実施形態における予測部の処理経過の例を示すフローチャートである。 ステップU3の処理経過の例を示すフローチャートである。 本発明の概要を示すブロック図である。
以下、本発明の実施形態について図面を参照して説明する。本発明では、個別の顧客の、潜在(未購入)、トライアル(1度購入)、反復、離反という顧客状態を予測する。また、商品またはサービスの需要を予測することを可能とする。なお、有料で商品やサービスを利用する者だけでなく、無料で商品やサービスを利用する人や、今後商品やサービスを利用すると思われる人も顧客と呼ぶ。無料で商品やサービスを利用可能とする場合における売価は0とすればよい。また、商品またはサービスの概念には、製品などの完成品だけでなく、製品の機能を維持するための最小単位も含まれる。さらに、ある商品またはサービスのカテゴリを1つの商品または1つのサービスとしてもよい。
実施形態1.
図1は、本発明の顧客状態推定システムの第1の実施形態の構成例を示すブロック図である。本発明の顧客状態推定システムは、売上実績のデータである売上データを記憶する売上データベース(以下、売上DBと記す)1と、売上データを用いて顧客の状態を推定する顧客状態推定装置2とを備える。
売上DB1は、商品またはサービスを購入した顧客の顧客IDと、1個以上の販売条件と、ターゲットの過去の売上とを示す売上データを記憶する記憶手段であり、売上データ記憶手段と呼ぶことができる。ターゲットとは、顧客状態推定の対象とする商品またはサービスのことである。図2は、売上データの例を示す説明図である。以下に示す例では、商品Aがターゲットである場合を例として説明する。図2に示す例では、個々の売上データは、購入者を示す顧客IDと、ターゲットを販売したときの販売条件(販売状況)と、ターゲットの販売数(本例では商品Aの販売数)とを対応づけている。図2に示す例では、ターゲットの販売年、月、日、曜日、時刻、天気、ターゲットの売価、供給の有無などを販売条件として示している。販売条件として、販売年、月、日、曜日、時刻、天気、ターゲットの売価、供給の有無などの様々な項目の少なくとも1つ以上の項目を含む。図2において「○」は供給ありを表わし、「×」は供給なしを表わしている。また、売上データは、ターゲット以外の商品またはサービスの販売条件や販売数を含んでいてもよい。図2では、ターゲット以外の商品である商品Bに関する販売条件(売価、供給の有無)および販売数を例示している。顧客IDは、個別の顧客を同定するための番号である。顧客の顧客IDは、例えば、顧客が購入時に利用するカードなどから収集すればよいが、顧客IDの収集方法は、特に限定されない。なお、商品またはサービスを購入した顧客の顧客IDを収集できなかった場合になどには、顧客IDを不明として売上データを登録すればよい。個々の顧客がある時点で商品やサービスを購入する毎に1つの売上データが定められる。図2に示す各行がそれぞれ売上データである。また、売上DB1は、個々の売上データに、売上データを識別するIDを付して記憶してもよい。以下、IDがmである売上データをデータmと省略して記す。ここでは、商品またはサービスが購入された時間順にIDが番号で付されている場合を例にする。
顧客状態推定装置2は、データ状態推定部21と、分類器生成部22と、初期顧客状態推定部23と、データクラス予測部24と、顧客状態推定部25とを備え、一定期間における個別の顧客の顧客状態を推定する。なお、一定期間は、キーボードなどの入力装置(図示せず)を介して、顧客状態推定システムのユーザから入力されることによって指定されてもよい。あるいは、顧客状態推定システムが売上DB1における最近の所定期間などとするよう予め設定しておいてもよい。例えば、最後の売上データが示す日時から所定期間遡った期間を一定期間としてもよい。
データ推定部21は、売上DB1に基づいて、売上DB1に記憶された各売上データ毎に顧客状態を推定する。顧客状態は、ターゲット購入に関する顧客の状態である。以下の説明では、顧客状態が、不明、潜在、トライアル、反復、離反のいずれかとなる場合を例にして説明する。「潜在」とは、顧客が未だターゲットを購入していない状態である。「トライアル」とは、顧客がターゲットを1度購入している状態である。「反復」とは、顧客がターゲットを繰り返し購入している状態である。「離反」とは、ターゲットを購入していた顧客がターゲットの購入を止めた状態である。「不明」とは、顧客を識別できない状態である。例えば、顧客が商品などの購入時にカードを利用しなかったことにより、顧客IDが不明である場合の顧客状態などが「不明」に該当する。
分類器生成部22は、データ推定部21で反復と推定された全ての売上データに基づいて学習用データを生成し、学習用データに含まれる個々のデータが示す顧客に関して「購入する」、「購入しない」を分類するルールである分類器を生成する。分類器は、換言すれば、学習用データに含まれる個々のデータが示す販売条件に対応するラベルが、ターゲットを購入することを示す購入ラベルか、ターゲットを購入しないことを示す非購入ラベルかを判定するルールである。学習用データについては後述する。分類器は、決定木やサポートベクタマシンなどでよく、どのような分類器を用いるかは予めシステムで設定しておいてもよい。あるいは、顧客状態推定システムのユーザからキーボードなどの入力装置を介して入力されることで指定されてもよい。
初期顧客状態推定部23は、データ推定部21で推定された各売上データ毎の顧客状態に基づいて、個別の顧客に対し、一定期間中における状態を、不明、潜在、トライアル、または未定と推定する。ここで、「未定」とは、一定期間における顧客状態が「反復」であるいのか「離反」であるのか未定である状態を意味する。
データクラス予測部24は、初期顧客状態推定部23で顧客状態が未定と推定された顧客の一定期間における売上データに基づいて予測用データを生成し、予測用データと分類器生成部22で生成された分類器とに基づいて、予測用データの各データのクラスを予測する。ここで、クラスとは、「購入する」、「購入しない」のいずれかである。予測用データについては後述する。
顧客状態推定部25は、初期顧客状態推定部23で顧客状態が未定と推定された各顧客に対し、データクラス予測部24によって購入すると予測された回数、および購入しないと予測された回数をカウントする。そして、予測された購入回数と実際の購入回数とに基づいて、個別顧客の状態が反復か離反かを推定する。
デ−タ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、顧客状態推定部25は、例えば、プログラムに従って動作するCPUによって実現される。例えば、プログラムが、顧客状態推定システムが備えるプログラム記憶装置(図示せず)に記憶され、CPUがそのプログラムを読み込み、プログラムに従って、デ−タ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25として動作してもよい。
次に、動作について説明する。
図3は、データ推定部21の処理経過の例を示すフローチャートである。データ推定部21は、まず、全ての顧客iに対し、ターゲットの購入累計数R[i]を0に初期化し、データのインデックスjを1に初期化する(ステップA1)。jは、売上データを指定するための変数である。iは、顧客を指定するための変数である。なお、既に説明したように、ここでは、売上データに対して、商品またはサービスの購入時間順に番号が付されているものとする。また、売上データの数はデータ1からデータMまでのM個であるとする。
データ推定部21は、売上DB1を参照して、データjに該当する顧客の状況が不明であるか否かを調べる(ステップA2)。本例では、データjに含まれる顧客IDが不明であれば、顧客状態が「不明」であるとすればよいが、他の方法で顧客状態が不明であるか否かを調べてもよい。
ステップA2でデータjに該当する顧客が不明であるなら、データ推定部21は、データjにおける顧客状態を「不明」と推定する(ステップA6)。
ステップA2でデータjに該当する顧客が不明でなかったならば、データ推定部21は、データ推定部21は、データjにおける顧客IDを変数iの値とし、変数iで特定される顧客(顧客iと記す。)の購入累計数R[i]を、ターゲットの購入数分増加する(ステップA3)。すなわち、データ推定部21は、データjが示すターゲットの販売数分、R[i]の値を増加させる。後述するようにステップA10でjを1インクリメントしならがらステップA2以降のループ処理を行うので、ステップA3で算出するR[i]は、1番目の売上データからj番目の売上データまでの各売上データから求められる顧客iのターゲット購入累計数を表わす。
ステップA3の後、データ推定部21は、R[i]が0であるか否かを判定する(ステップA4)。0であるならば(ステップA4におけるYes)、データ推定部21は、データjにおける顧客状態を「潜在」と推定する(ステップA7)。一方、0でなければ(ステップA4におけるNo)、データ推定部21は、R[i]が1であるか否かを判定する(ステップA5)。1であるならば(ステップA5におけるYes)、データ推定部21は、データjにおける顧客状態を「トライアル」と推定する(ステップA8)。1以外ならば(ステップA5におけるNo)、データ推定部21は、データjにおける顧客状態を「購入」と推定する(ステップA9)。
ステップA6,A7,A8,A9のいずれかで顧客状態を推定した後、データ推定部21は、jを1インクリメントする(ステップA10)。すなわち、変数jの値を1増加させる。そして、データ推定部21は、インクリメント後のjと、売上データ数Mとを比較し、jがM以下であるか否かを判定する(ステップA11)。
jがM以下であるならば、データjにおける顧客IDを変数iの値としてステップA2以降の処理を繰り返す。一方、jの値がMを超えていれば、データ推定部21は、全ての顧客iに対し、ターゲットの購入累計数R[i]を0に初期化し、データのインデックスjを、売上データ数Mに初期化する(ステップA12)。
続いて、データ推定部21は、ステップA12より前の処理で、データjに関して「購入」と推定していたか否かを判定し(ステップA13)、購入と推定していなければステップA18に移行し、購入と推定してればステップA14に移行する。
ステップA14では、データ推定部21は、データjにおける顧客IDを変数iの値とし、変数iで特定される顧客iの購入累計数購入累計数[i]を、ターゲットの購入数分増加する(ステップA14)。すなわち、データ推定部21は、データjが示すターゲットの販売数分、R[i]の値を増加させる。後述するようにステップA18でjを1デクリメントしながらステップA13以降のループ処理を行うので、ステップA14で算出するR[i]は、最後の売上データ(データM)から、最後からj番目までの売上データまでから求められる顧客iのターゲット購入累計数を表わす。換言すれば、売上データにおける時間的に後方のj個の売上データから求められる顧客iのターゲット購入累計数である。
ステップA14の後、データ推定部21は、R[i]が0であるか否かを判定する(ステップA15)。0であるならば(ステップA15におけるYes)、データ推定部21は、データjにおける顧客状態を「離反」と推定する(ステップA17)。一方、0でなければ(ステップA15におけるNo)、データ推定部21は、データjにおける顧客状態を「反復」と推定する(ステップA16)。
ステップA13において、「購入」と推定していないと判定した場合(ステップA13におけるNo)、あるいは、ステップA16,A17のいずれかの処理を行った後、データ推定部21はjを1デクリメントする(ステップA18)。すなわち、変数jの値を1減じる。そして、データ推定部21は、jの値が1以上であるか否かを判定し(ステップA19)、jが1以上であるならば(ステップA19におけるYes)、ステップA13以降の処理を繰り返し、jが1未満であるならば(ステップA19におけるNo)、処理を終了する。
図4は、ある顧客nのデータに関する推定例を示す。顧客nが商品またはサービスを購入した結果得られた売上データが、データp,q,r,s,t,u,v,w,x,y,zであるとする。また、データr,t,vは、その顧客nがターゲットとなる商品Aを購入した結果生成された売上データであり、他のデータp,q,s,u,w,x,y,zは、ターゲット以外の商品またはサービスの購入の結果生成された売上データあるとする。図4に示す「時間順の購入累計数」は、ステップA3終了時における顧客nに関するR[n]の値である。ステップA3で求めるR[n]は、ターゲットの購入累計数を時間順にデータjまでカウントした値を表わし、購入累計数が0回なら潜在、1個ならトライアル、2回以上になったら、その時点から以降は全て購入と推定する。従って、最初の推定状態(ステップA12より前で求める推定状態)は、データp,qに関する処理後では「潜在」、データr,sに関する処理後では「トライアル」、データt以降の各データに関する処理後では「購入」となる(図4参照)。
また、図4に示す「時間と逆順の購入累計数」は、ステップA14終了時における顧客nに関するR[n]の値である。ステップA14で求めるR[n]は、ターゲットの累積購入数を、時間経過とは逆順に、最後のデータMから、最後からj番目の売上データまでの範囲でカウントした値を表わしている。そして、「最初の推定状態」が「購入」である場合、その累計購入数が0回ならば「離反」と推定し、1回以上ならば「反復」と推定する。よって、データzからデータwまでは「離反」、データvからデータtまでは「反復」となる。データp,qに関しては「潜在」のままであり、データr,sに関しては「トライアル」のままである。
データ推定部21が個々の売上データ毎に顧客状態を推定した後、分類器生成部22が分類器を生成する。図5は、分類器生成部22の処理経過の例を示すフローチャートである。分類器生成部22は、まず、データ状態推定部21で「反復」と推定された全ての売上データから学習用データを生成する(ステップB1)。学習用データは、「反復」と推定された各売上データに含まれる販売条件と、ターゲットが購入されたか否かを示すクラスとを対応づけたデータである。図6は、学習用データの例を示す説明図である。分類器生成部22は、全ての売上データから「反復」と推定された各売上データを抽出し、ターゲット以外の商品およびサービスの販売数を削除する。そして、分類器生成部22は、個々の売上データ毎に、ターゲットの販売数が1以上であれば、クラスを正(+)に設定し、ターゲットの販売数が0であれば、クラスを負(−)に設定する。ここで、正(+)は「購入する」を示し、負(―)は「購入しない」を示すものとする。さらに、分類器生成部22は、個々の売上データに関して、売上データが示すターゲットの販売数が2以上であるならば、その売上データの数がそのターゲット数を等しくなるように複製を作成する。そして、同一データの数で、ターゲットの販売数を表わし、個々の売上データからターゲットの販売数の項目も除く。学習用データにおいて、販売条件(販売状況)を示す各項目を属性と呼んでもよい。
図6は、このようにして得られた学習用データの例を示している。図2に例示する売上データにおいて、データmおよびデータm+1に関して顧客状態が「反復」と推定されたとする。分類器生成部22は、ターゲット(商品A)以外の商品、サービスの販売数をデータmおよびデータm+1から除く。そして、データmにおいて販売数は2であるので(図2参照)、クラスを正(+)に設定する。さらに、そのデータmの個数が2個になるようにそのデータmを複製する。また、データm+1に関しては、ターゲットの販売数が0であるので(図2参照)、分類器生成部22は、クラスを負(−)に設定する。また、ターゲット販売数が0であるので複製は作成しない。
図6に例示する学習用データは、ターゲット商品が供給されない場合の売上データを含んでいるが、ターゲットが供給されない場合の売上データを除いてもよい。また、ターゲットの販売数が2以上のときに売上データの複製を作成するものとして説明したが、ターゲットの販売数でなく販売回数に注目する場合は、売上データを1個のままとして、複製を作成しなくてもよい。販売回数に着目して販売数を考慮しない場合、売上データにおいて、販売数の代わりに販売の有無のみを記述してもよい。
学習用データ作成後、分類器生成部22は、学習用データを用いて、分類器を生成する(ステップB2)。分類器は、決定木やサポートベクタマシンなどでよく、何を用いるかは予めシステムで設定してもよいし、システムのユーザが指定してもよい。
以下、分類器として決定木を用いる場合を例にして、分類器の具体例を説明する。本例では、「購入する、しない」をクラスとし、「天気」、「天候」、「湿度」、「風が強いか否か」を属性とする場合を例にして説明する。図7は、既知の属性およびクラスの組み合わせの例を示す説明図である。図8は、分類器の例を示し、ここでは、決定木を分類器としている。図9は、分類器から予測されるクラスの例を示す説明図である。図7に示すように、既知の属性およびクラスの組み合わせがあれば、その既知の属性およびクラスから決定木を生成することができる。そして、その決定木と既知の属性からクラスを予測することができる。例えば、図8に示す決定木が得られていれば、図9に例示する属性から、図9に例示するクラスを予測することができる。項目の項目値に応じて枝分かれさせることを分割という。
図7に示す例では、各行が、「購入する/しない」とラベル付けられた学習用データ内の売上データに相当する。以下、図7に示す各行を学習用データ内の売上データとして説明し、以下、この売上データを、単に売上個別データと記す。また、「購入する」は、正(+)のラベルに相当し、「購入しない」は、負(−)のラベルに相当する。決定木では、属性のとり得るラベル毎(例えば、「する(正)」、「しない(負)」というラベル毎)に売上個別データ数をまとめた情報をノードとする。例えば、図7に示すルートのノードでは、「する:9,しない:5」という情報をノードとしている。
分類器生成部22は、学習用データを生成すると、どの項目で最初に分割させるかを決定する。このとき、分類器生成部22は、項目1〜Nの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択する。ここでは、分割前のノードのエントロピーと、分割後のエントロピーの差を評価値とする場合を例にするが、他の計算方法で評価値を求めてもよい。ノードのエントロピーは、ラベルが正(+)の売上個別データの割合をqとし、ラベルが負(−)の売上個別データの割合を1−qとすると、−qlogq−(1−q)log(1−q)で表される。分割後のノードのエントロピーは、分割後の各ノードのエントロピーの加重平均である。
例えば、学習用データにおいて、「正」が9データあり、「負」が5データあるとするとルートのノードは「正:9,負:5」となる。この場合、正(+)のデータが9データあり、負(−)のデータが5データあるので、ルートのノードのエントロピーは、−(9/14)×log(9/14)−(5/14)×log(5/14)=0.940となる。
分類器生成部22は、一つの項目でルートのノードを分割して得られるノードを求める。すなわち、その項目の項目値毎に、正および負の売上個別データ数を表す情報(ノード)を生成する。例えば、その項目1のとり得る値が「0」または「1」であり、項目1の値が「0」のときには、正が5データあり、負が2データあるとし、項目1の値が「1」のときには、正が0データあり、負が7データあるとする。この場合、項目1の値が「0」か「1」かで分岐するノードとして、「正:5,負:2」というノードと、「正:0,負:7」というノードとを生成する。分類器生成部22は、分割後の各ノードのエントロピーを計算し、分割後の各ノードにおける正または負としてカウントされる個別データ数に応じて各ノードのエントロピーの加重平均を求める。上記の例では「正:5,負:2」というノードにおいても、「正:0,負:7」というノードにおいても個別データの総数は7であるので、加重平均を行う際の重み付け係数は各ノードでいずれも(7/14)となる。従って、本例の場合、分類器生成部22は、分割後のエントロピーを以下のように計算する。
(7/14)×{−(5/7)×log(5/7)−(2/7)×log(2/7)}
+(7/14)×{−(0/7)×log(0/7)−(7/7)×log(7/7)}
=0.432
従って、本例の場合、分類器生成部22は、項目1で分割した場合の評価値を、0.940−0.432=0.508と計算する。
分類器生成部22は、項目1だけでなく、他の項目についても同様に、その項目で分割したときの評価値を計算し、評価値が最大となる項目で分割すると決定する。このようにして、ルートのノードを分割する項目を決定する。
なお、上記の項目1の例では、項目1のとり得る値が「0」または「1」の二つだけである場合を示した。項目値が年齢であり、その値が20,21,22のように連続する値の場合には、どの項目値で分割させるのかも決める。この場合、分類器生成部22は、各項目値間の中間値をしきい値とし、各しきい値毎に、その「しきい値以下」および「そのしきい値より大」とに分割させた場合の評価値を求める。そして、評価値が最大となる場合を選択することによって、どの項目値で分割させるのかも決定する。例えば、項目値が20,21,22,・・・と連続する場合では、「20.5以下」および「20.5より大」で分割した場合の評価値、「21.5以下」および「21.5より大」で分割した場合の評価値等をそれぞれ計算し、評価値が最も高くなるように分割すればよい。
分類器生成部22は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次、繰り返す。また、分類器生成部33は、所定の条件が満たされたときには、ノードの分割を停止する。所定の条件とは、例えば、「ノードにおける売上個別データのクラスが全て同じになる」という条件や、「ノードにおける正または負としてカウントされる売上個別データ数が所定数(例えば2)以下になる」という条件を用いてよい。前者の条件を採用すると、ノードにおける個別データが全て正または負になると、そのノードの分割を継続しない。このように、分類器生成部22は、ルートのノードから順次、分割を繰り返し、木構造の決定木を生成する。
また、分類器生成部22は、上記のように、木構造の決定木を生成した後、その決定木に対する枝刈りを行う。決定木において、分割されて生成された最終的なノードを葉と呼ぶ。ある葉に分類されたデータ数がNであるとする(すなわち、正または負としてカウントされる個別データ数がNであるとする)。この葉に分類されたNデータ中、Eデータが誤りであるとする。この仮定では、N回の試行中、誤りという事象をE回観測したとみなし、大きさNの標本で、誤りという事象が起きる確率がrである二項分布と考えることができる。予め与えられた信頼度CFに対して、rの上限をU_CF(E,N)と表すことにすると、Nデータでの誤りの発生する期待値は、N×U_CF(E,N)となる。分類器生成部22は、子のノードが全て葉である親のノードに対し、親における誤りの期待値(誤りの発生する期待値)と、子である葉の誤りの期待値の合計とを比較する。そして、子での期待値の合計の方が親の誤りの期待値よりも大きければ、分類器生成部22は、葉を縮退して、その親を葉とする。分類器生成部22は、この処理を順次繰り返すことで、決定木全体の葉の枝刈りを行う。
葉を縮退する場合、分類器生成部22は、葉を削除して、その削除した葉の親のノードを葉とすればよい。例えば、図8に例示する決定木において、「湿度」という項目の値に応じて分割したノードを縮退する場合、分類器生成部22は、湿度の項目値が70%以下となっている個別データ数を表すノード「する:2,しない:0」と、湿度の項目値が70%より高くなっている個別データ数を表すノード「する:0,しない:3」とを削除して、その2つのノードの親ノード「する:2,しない:3」を葉とすればよい。
分類器として決定木を生成する場合、例えば、上記のように、決定木を定めて枝刈りを行うことで、決定木を生成すればよい。
分類器作成後、初期顧客状態推定部23は、データ推定部21で推定された各売上データ毎の顧客状態に基づいて、個別の顧客に対し、一定期間中における状態を推定する。図10は、初期顧客状態推定部23の処理経過の例を示すフローチャートである。以下、各顧客に対して、1から順番に番号を割り当て、その番号によって顧客を指定する場合を例にして説明する。
初期顧客状態推定部23は、まず、i=1に初期化する(ステップC1)。図3に示す場合と同様に、iは、顧客を指定するための変数である。次に、初期顧客状態推定部23は、顧客iに相当する売上データを一定期間の終了時刻から時間経過とは逆順に探索し、時間的に最後のデータの状態を調べる(ステップC2)。この一定期間とは、顧客状態を推定する対象となる期間であり、既に説明したように、ユーザに指定されていても、あるいは、売上DB1における最近の所定期間とするように予め設定されていてもよい。
一定期間内における売上データの最後の売上データに関する顧客状態が「潜在」であるならば、初期顧客状態推定部23は、一定期間における顧客iの状態を「潜在」と推定し(ステップC3)、ステップC6に移行する。
一定期間内における売上データの最後の売上データに関する顧客状態が「トライアル」であるならば、初期顧客状態推定部23は、一定期間における顧客iの状態を「トライアル」と推定し(ステップC4)、ステップC6に移行する。
一定期間内における売上データの最後の売上データに関する顧客状態が「反復」または「離反」であるならば、初期顧客状態推定部23は、一定期間における顧客iの状態を「未定」と推定し(ステップC5)、ステップC6に移行する。
ステップC6において、初期顧客状態推定部23は、iを1インクリメントする(ステップC6)。すなわち、iの値を1増加する。
ステップC6の後、初期顧客状態推定部23は、iと、全顧客数(Nとする)とを比較し、iがN以下であるか否かを判定する(ステップC7)。iがN以下ならば(ステップC7におけるYes)、ステップC2以降の処理を繰り返す。iがNを超えていれば、処理を終了する。
初期顧客状態推定部23の処理後、データクラス予測部24は、初期顧客状態推定部23で顧客状態が未定と推定された顧客の一定期間における売上データに基づいて予測用データを生成し、予測用データと分類器生成部22で生成された分類器とに基づいて、予測用データの各データのクラスを予測する。図11は、データクラス予測部24の処理経過の例を示すフローチャートである。
データクラス予測部24は、まず、初期顧客状態推定部23によって未定と推定された顧客に対し、一定期間の売上データから予測用データを生成する(ステップD1)。予測用データは、初期顧客状態推定部23によって「未定」と推定された顧客の各売上データに含まれる販売条件と、ターゲットが購入されたか否かを示すクラスとを対応づけたデータである。予測用データの作成手順は、全ての売上データから、初期顧客状態推定部23によって「未定」と推定された顧客の一定期間における各売上データを抽出する点が学習用データと異なるが、その他の点については、学習用データの作成手順と同様である。すなわち、学習用データ生成時には、「反復」と推定された各売上データを抽出するが、予測用データ生成時には、初期顧客状態推定部23によって「未定」と推定された顧客の一定期間における各売上データを抽出する。以降の動作は、学習用データ生成時と同様である。従って、予測用データも、学習用データと同様に、属性(販売条件)とクラスとの組を含んでいる。なお、予測用データとして、ターゲット商品が供給されない場合の売上データを含んでも、ターゲットが供給されない場合の売上データを除いていてもよい。
次に、データクラス予測部24は、分類器生成部22で生成された分類器に基づいて、予測用データのクラスを予測し(ステップD2)、終了する。データクラス予測部24は、予測用データに含まれているクラスとは別に、予測用データにおける属性(販売条件)からクラスを予測する。
例えば、分類器が決定木である場合、データクラス予測部24は、そのルートのノードの項目に関して予測用データ内の個々の売上データの項目値を参照し、この項目値に応じて子ノードを辿る。データクラス予測部24は、同様にノードを辿っていき、葉のノードまで辿ったならば、葉のノードでカウント数の多い方のラベルを予測結果とすればよい。例えば、葉のノードで、「正:3,負:0」となっていれば、「正」と予測すればよい。
データクラス予測部24が予測用データにおける属性からクラスを予測すると、顧客状態推定部25は、初期顧客状態推定部23で顧客状態が未定と推定された各顧客に対し、データクラス予測部24によって購入すると予測された回数、および購入しないと予測された回数をカウントし、また、予測用データに含まれている実際のクラスにおける正(購入する)の数、および負(購入しない)の数をカウントする。そして、予測された購入回数と実際の購入回数とに基づいて、個別顧客の状態が反復か離反かを推定する。図12は、顧客状態推定部25の処理経過の例を示すフローチャートである。
顧客状態推定部25は、まず、i=1に初期化する(ステップE1)。iは、顧客を指定するための変数である。次に、顧客状態推定部25は、顧客iの顧客状態が初期顧客状態推定部23によって「未定」と推定されていたか否かを判定する(ステップE2)。
顧客iの顧客状態が「未定」と推定されていなければ(ステップE2におけるNo)、ステップE7に移行する。
顧客iの顧客状態が「未定」と推定されていたならば(ステップE2におけるYes )、顧客状態推定部25は、データクラス予測部24によって生成された予測用データを参照し、顧客iが実際にターゲットを購入した回数、および、ターゲットを購入しなかった回数をカウントし、さらに、予測用データに基づいてデータクラス予測部24によって購入すると予測された回数、および購入しないと予測された回数をカウントする(ステップE3)。
ステップE3の後、顧客状態推定部25は、顧客iが実際にターゲットを購入した回数を観測値とし、予測用データの属性から分類器によって予測された購入回数を期待値とし、帰無仮説を「実際の購入確率は、反復顧客として予測された購入確率である」として、帰無仮説が採択されるか棄却されるかを検定する(ステップE4)。検定方法として、χ2検定やフィッシャーの正確確率検定などのいずれかを、顧客状態推定システムがあらかじめ定めておいてもよい。あるいは、入力装置(図示せず)等を介してユーザから検定方法を指定する情報が入力され、顧客状態推定部25は、その指定された検定方法で検定を行ってもよい。
検定における有意水準は、予め5%などと定められていてもよい。ただし、5%は例示であり、有意水準は5%に限定されない。また、入力装置(図示せず)等を介してユーザから有意水準の値が入力され、顧客状態推定部25は、入力された値を有意水準として検定を行ってもよい。
帰無仮説が採択された場合、顧客状態推定部25は、顧客iの顧客状態を「反復」と推定し(ステップE5)、ステップE7に移行する。一方、帰無仮説が棄却された場合、顧客状態推定部25は、顧客iの顧客状態を「離反」と推定し、ステップE7に移行する。
以下、有意水準5%のフィッシャーの正確確率検定で検定を行う場合を例にして、ステップE4の検定の具体例を説明する。
例えば、予測用データの中に顧客iのデータが5個あり、データクラス予測部24によって購入すると予測された回数が4回であり、購入しないと予測された回数が1回であったとする。また、顧客iがターゲットを実際に購入した回数が1であり、顧客iがターゲットを購入しなかった実際の回数が4であったとする。この場合の分割表を図13に示す。合計を固定した分割表は複数個考えられるが、観察された図13に示す分割表が得られる確率は、以下に示す式(1)のようになる。
a+bc+da+b+c+da+c10=25/252
式(1)
式(1)において、aは、顧客iがターゲットを実際に購入した回数(予測用データにおける「正」ラベルの数)であり、bは、顧客iがターゲットを購入しなかった実際の回数(予測用データにおける「負」ラベルの数)である。また、cは、購入すると予測された回数であり、dは、購入しないと予測された回数である。
顧客状態推定部25は、分割表を求めて、式(1)の計算による確率を求めた後、同様に、その分割表における周辺の合計を固定したときの各分割表と、各分割表におけるS(=ad−bc)を求める。周辺の合計とは、a+b,c+d,a+c,b+dであり、図13に示す例では、それぞれ「5」として示している。この周辺の合計(a+b,c+d,a+c,b+d)を固定したときの、a,b,c,dの各組み合わせを定めれば、各分割表が得られる。図14は、最初に求めた分割表における周辺の合計を固定したときの各分割表(具体的にはa,b,c,dの組)と、その各分割表におけるS=ad−bcの値を示す。また、顧客状態推定部25は、周辺の合計を固定したときの各分割表が得られる確率を、分割表ごとに式(1)と同様の計算により求める。
また、最初に求めた分割表(本例では、図13に示す分割表)におけるad−bcの値をSとする。顧客状態推定部25は、最初に求めた分割表の周辺の合計(a+b,c+d,a+c,b+d)を固定したときの各分割表のうち、SがSと同符号であって、|S|≧|S|となる分割表を特定する。そして、顧客状態推定部25は、その分割表が得られる確率の合計(Pとする。)を求める。本例では、SがSと同符号であって、|S|≧|S|となる分割表は、「a=0,b=5,c=5,d=0」である分割表と、「a=1,b=4,c=4,d=1」である分割表(図13と同一の分割表)である(図14参照)。これらの分割表が得られる確率は1/252、25/252である。従って、その確率の合計値は、P=1/252+25/252=0.1032となる。
顧客状態推定部25は、Pを求めた後、Pと有意水準とを比較し、Pが有意水準より大きければ、帰無仮説を採択し、ステップE5で「反復」と推定する。また、Pが有意水準以下であれば、帰無仮説を棄却し、ステップE6で「離反」と推定する。本例では、有意水準は5%であり、P>0.05となるので、帰無仮説を採択する。よって、顧客iの顧客状態を反復と推定する。仮に、顧客iの実際の採用回数が0回であるならば、P=1/252=0.0040≦0.05となるので、帰無仮説を棄却する。その場合には、顧客iの顧客状態を「離反」と推定する。
なお、ここでは、検定を用いて「反復」であるか「離反」であるかを推定する場合について説明したが、分割表と、その分割表なら反復と予測するか離反と予測するかのルールを用いてもよい。そして、そのようなルールは、顧客状態推定システムが予め設定されていてもよい。あるいは、顧客状態推定システムのユーザから入力装置(図示せず)を介して入力されてもよい。
顧客iの顧客状態が「未定」と推定されていないとステップE2で判定した後や(ステップE2におけるNo)、ステップE5の後、および、ステップE6の後、顧客状態推定部25は、iを1インクリメントする(ステップE7)。すなわち、iの値を1増加する。次に、顧客状態推定部25は、iと、全顧客数Nとを比較し、iがN以下であるか否かを判定する(ステップE8)。iがN以下である場合には(ステップE8におけるYes)、ステップE3以降の処理を繰り返し、iがNを超えている場合には(ステップE8におけるNo)、処理を終了する。
また、処理終了前(例えば、ステップE8でNoと判定した後)に、個別の顧客の顧客状態を、例えば、ディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりする出力手段(図示せず)を備えていてもよい。また、例えば、顧客状態推定部25のステップE4で検定を用いた場合は、出力手段(図示せず)は、顧客状態に加えて、推定の確からしさを示す値として、P値などをディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりしてもよい。出力手段は、例えば、プログラムに従って動作するCPUによって実現される。このCPUは、データ状態推定部21などとして動作するCPUと同一であってもよい。
なお、本実施の形態では、ターゲットに対する顧客の顧客状態を、潜在、トライアル、反復、離反という4つの状態として説明したが、顧客状態はこれらの4つの状態に限定されるものではない。別の顧客状態の組が顧客状態推定システムに予め設定されていてもよい。あるいは、顧客状態推定システムのユーザにより、入力装置などを介して、顧客状態推定システムで用いられる顧客状態の組が入力され、その顧客状態のいずれになるかを推定するように動作してもよい。
本実施形態によれば、ターゲットに対して、変動要因を考慮しながら一定期間における個別の顧客の顧客状態を予測することができるという効果がある。例えば、気温の暑い日の昼ごろにだけ購入される飲料をターゲットとする場合、ある顧客が一定期間にその飲料を購入しなかったとしても、顧客が離反したのか、一定期間涼しかった、あるいは、顧客が昼ごろ来店しなかったなどの変動要因によって購入されなかったのかは分からない。本発明では、例えば、分類器生成部22が、その飲料が暑い日の昼頃にだけ購入されることを学習し、データクラス予測部32が、顧客の個別の購入時点でターゲットを購入するかどうかを予測する。よって、暑い日の昼ごろの来店が続いたなら購入と予測される回数が多く、そうでなければ購入と予測される回数が少なくなって、顧客状態推定部25における検定結果が異なるため、顧客が一定期間に購入しなかった場合に、顧客の離反か変動要因によるのかを推定することができる。
このように、本実施形態によれば、顧客が商品やサービスを購入した実績に基づいて、顧客毎に個別に、所定期間における顧客状況を推定することができる。また、本実施形態では、売上データがあれば、顧客状況を推定することができるので、顧客状態推定システムのユーザは、専門的な知見がなくても、顧客状態の推定結果を得ることができる。
実施形態2.
図15は、本発明の顧客状態推定システムの第2の実施形態の構成例を示すブロック図である。第1の実施形態と同様の構成要素については、図1と同一の符号を付し、詳細な説明を省略する。第2の実施形態の顧客状態推定システムは、売上データを記憶する売上DB1と、売上データを用いて顧客の状態を推定する顧客状態推定装置3とを備える。
売上DB1が記憶する売上データは、第1の実施形態と同様である。
顧客状態推定装置3は、制御部31と、データ状態推定部21と、分類器生成部22と、初期顧客状態推定部23と、データクラス予測部24と、顧客状態推定部25とを備え、個別の顧客の時系列的な顧客状態を推定する。
本実施の形態では、顧客状態を推定する対象となる期間(以下、第1の実施形態と同様に「一定期間」と記す。)として、複数の一定期間を用いる。制御部31は、複数の一定期間が与えられると、そのうちの1つの一定期間をデータ状態推定部21に送る。すると、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25は、第1の実施形態と同様に動作し、制御部31から送られた一定期間における顧客状態を推定する。その一定期間に関して顧客状態推定部25が推定処理を終了すると、制御部31は、残りの一定期間のうちの1つをデータ状態推定部21に送り、同様の処理を行う。与えられた各一定期間について顧客状態の推定処理が完了するまで同様の処理を繰り返す。なお、顧客状態推定システムは、売上DB1における最近の複数の一定期間をそれぞれ一定期間として用いてもよい。例えば、最後の売上データが示す日時から一定の長さの時間毎に日時を遡り、その日時同士の間の期間をそれぞれ一定期間としてもよい。あるいは、複数の一定期間は、入力装置(図示せず)を介して、顧客状態推定システムのユーザから入力されることによって指定されてもよい。
制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25は、例えば、プログラムに従って動作するCPUによって実現される。すなわち、CPUが、プログラムを読み込み、そのプログラムに従って、制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25として動作してもよい。
次に、動作について説明する。図16は、第2の実施形態の顧客状態推定システムの処理経過の例を示すフローチャートである。ここでは、与えられた一定期間数をT個とし、それぞれの一定期間を、一定期間1、一定期間2、・・・、一定期間Tと記すこととする。
制御部31は、まず、変数tの値をt=1と初期化する(ステップF1)。tは、一定期間を指定するための変数である。
次に、データ状態推定部21と、分類器生成部22と、初期顧客状態推定部23と、データクラス予測部24と、顧客状態推定部25とが、一定期間t(変数tによって特定される一定期間)における個別の顧客の顧客状態を推定する(ステップF2)。ステップF2におけるデータ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、顧客状態推定部25の動作は、第1の実施形態と同様である。ただし、データ状態推定部21および分類器生成部22の動作結果は、一定期間tによらずに変わらないので、ループ処理でステップF2に移行した回数が2回目以降である場合、最初のステップF2では、最初のステップF2におけるデータ状態推定部21および分類器生成部22の動作結果を用いて、初期顧客状態推定部23、データクラス予測部24、顧客状態推定部25が処理を行えばよい。
ステップF2の後、制御部31は、変数tの値を1インクリメントし(ステップF3)、tが一定期間の数T以下であるか否かを判定する(ステップF4)。tがT以下であれば(ステップF4におけるYes)、ステップF2以降の処理を繰り返し、tがTを超えていれば(ステップF4におけるNo)、処理を終了する。このように、個々の一定期間毎に顧客状態を推定することによって、個別の顧客の時系列的な顧客状態を推定する。
制御部31は、一定期間毎の顧客状態の推移に応じて、顧客状態を修正してもよい。例えば、制御部31は、ある個別顧客に関して、一定期間t−1と一定期間t+1とにおける顧客状態が同一だが、その間の一定期間tにおける顧客状態が未定の場合には、一定期間tにおける顧客状態を一定期間t−1における顧客状態と修正してもよい。また、制御部31は、個別顧客の顧客状態が、反復という推定が連続している途中の時期に離反と推定された時期がある場合は、離反を反復と修正してもよい。そのような場合の修正するルールは、顧客状態推定システムに予め設定されていてもよいし、顧客状態推定システムのユーザによって入力されてもよい。
本実施形態によれば、第1の実施形態と同様の効果を得ることができる。また、複数の一定期間それぞれについて顧客状態を推定するので、ターゲットに対して、変動要因を考慮しながら個別の顧客の顧客状態の時系列変化を推定することができる。
また、本実施形態において、処理終了前(例えばステップF4でNoと判定した後)に、個別の顧客に対する顧客状態の時系列変化を、例えば、ディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりする出力手段(図示せず)を備えていてもよい。また、出力手段は、処理終了前に、顧客状態毎に顧客数をカウントし、「潜在」である顧客数の推移、「トライアル」である顧客数の推移、「反復」である顧客数の推移、「離反」である顧客数の推移などのグラフで表示してもよい。
また、例えば、制御部31が、一定期間毎に、全体の顧客数Nから「潜在」と推定された顧客数を差し引くことにより、ターゲットの普及数を計算してもよい。そして、出力手段は、各一定期間毎に計算されたターゲットの普及数の推移を表示してもよい。そのような構成によれば、ターゲットに対して、普及数の推移や離反数の推移などを推定することができる。
また、顧客状態推定部25が有意水準を変更して、各有意水準毎に推定処理を行ってもよい。そして、出力手段は、有意水準を変更した場合のグラフをディスプレイ装置に表示させたり、印刷装置に印刷させたりしてもよい。そのような表示などを行えば、顧客状態推定システムのユーザは、適切な有意水準を求めやすくなる。
上述の出力手段(図示せず)は、例えば、プログラムに従って動作するCPUによって実現される。このCPUは、データ状態推定部21などとして動作するCPUと同一であってもよい。
実施形態3.
図17は、本発明の顧客状態推定システムの第3の実施形態の構成例を示すブロック図である。第2の実施形態と同様の構成要素については、図15と同一の符号を付し、詳細な説明を省略する。第3の実施形態の顧客状態推定システムは、売上データを記憶する売上DB1と、売上データを用いて顧客の状態を推定する顧客状態推定装置4とを備える。
売上DB1が記憶する売上データは、第1の実施形態や第2の実施形態と同様である。
顧客状態推定装置4は、制御部31と、データ状態推定部21と、分類器生成部22と、初期顧客状態推定部23と、データクラス予測部24と、顧客状態推定部25と、補正部41とを備え、個別の顧客の時系列的な顧客状態を推定する。
本実施の形態では、第2の実施形態と同様に、顧客状態を推定する対象となる期間(以下、第1および第2の実施形態と同様に「一定期間」と記す。)として、複数の一定期間を用いる。制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25は、第2の実施形態と同様に動作し、複数の一定期間が与えられると、個々の一定期間についてそれぞれ個別の顧客の顧客状態を推定する。
補正部41は、顧客状態毎の顧客数を一定期間毎にカウントし、顧客状態毎の顧客数の推移を時系列解析し、その時系列解析の結果に基づいて、特定の顧客状態の顧客数の推定結果を補正する。
制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、顧客状態推定部25、および補正部41は、例えば、プログラムに従って動作するCPUによって実現される。すなわち、CPUが、プログラムを読み込み、そのプログラムに従って、制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、顧客状態推定部25、および補正部41として動作してもよい。
次に、動作について説明する。第2の実施形態と同様に、与えられた一定期間数をT個とし、それぞれの一定期間を、一定期間1、一定期間2、・・・、一定期間Tと記すこととする。また、ここでは、説明を簡単にするために、一定期間の長さがいずれも同じであるとする。すなわち、一定期間tの開始時刻から一定期間t+1の開始時刻までの間隔は、tによらず一定とする。
まず、制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25が処理を行い、それぞれの一定期間毎に、個別の顧客の顧客状態を推定する。この動作は、第2の実施形態で説明したステップF1〜F4の動作と同様である。
一定期間1から一定期間Tまでの各一定期間について個別の顧客の顧客状態が推定された後、補正部41は、特定の顧客状態の顧客数の推定結果を補正する。ここでは、顧客状態が「潜在」となっている顧客数の推移を補正する場合について説明するが、他の顧客状態の顧客数の推移を補正してもよい。また、複数の顧客状態について、それぞれの顧客数の推移を補正してもよい。さらに、各顧客状態毎に、それぞれの顧客数の推移を補正してもよい。なお、顧客数をカウントするときには、少なくとも顧客数の推移の補正対象となる顧客状態に関して顧客数をカウントすればよい。顧客数の推移を補正する対象となる顧客状態は、顧客状態推定システムにおいて予め設定されていてもよい。あるいは、顧客数の推移を補正する対象となる顧客状態を示す情報が、顧客状態推定システムのユーザによって入力装置(図示せず)などを介して入力されることによって、顧客状態が指定されてもよい。
図18は、補正部41の処理経過の例を示すフローチャートである。一定期間1から一定期間Tまでの各一定期間について個別の顧客の顧客状態が推定されると、補正部41は、変数tの値をt=1と初期化する(ステップG1)。tは、一定期間を指定するための変数である。次に、補正部41は、一定期間t(変数tによって特定される一定期間)において、顧客状態が「潜在」であると推定された顧客数をカウントする(ステップG2)。以下、一定期間tにおいて顧客状態が「潜在」であると推定された顧客数をN[t]と表す。
次に、補正部41は、変数tの値を1インクリメントし(ステップG3)、tが一定期間の数T以下であるか否かを判定する(ステップG4)。tがT以下であれば(ステップG4におけるYes)、ステップG2以降の処理を繰り返す。
tがTを超えていれば(ステップG4におけるNo)、補正部41は、時系列解析によって、ステップG2で求めた顧客数N[1]〜N[T]をそれぞれ補正する(ステップG5)。時系列解析では、例えば、以下に示す式(2)で表されるような自己回帰移動平均モデルなどを推定して、残差を除いた値としてt=1からt=Tまでの各N[t]を修正すればよい。
Figure 2010073189
式(2)において、N[t]は一定期間tにおける潜在状態の顧客数である。また、a[i]、b[j]は任意の定数パラメタであり、pは、自己回帰の次数、qは過去の残差の移動平均の次数、e[t]は、残差である。モデルの推定では、e[t]を平均0の正規分布と仮定して、N[t](t=1,・・・,T)に合うように各種パラメタを推定すればよい。
また、本実施形態において、処理終了前に(例えばステップG5の後)、潜在、トライアル、反復、離反などの顧客数をカウントし、「潜在」である顧客数の推移、「トライアル」である顧客数の推移、「反復」である顧客数の推移、「離反」顧客数の推移、普及数の推移などをグラフ化して、ディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりする出力手段(図示せず)を備えていてもよい。なお、普及数は、例えば、制御部31が、一定期間毎に、全体の顧客数Nから「潜在」と推定された顧客数を差し引くことにより求めればよい。
さらに、例えば、補正部41が、時系列解析の式を繰り返して起用することにより、入力された複数の一定期間よりも将来のそれぞれの状態の顧客数を求めてもよい。そして、出力手段が、その顧客数の変化をグラフとして、ディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりしてもよい。上述の出力手段(図示せず)は、例えば、プログラムに従って動作するCPUによって実現される。このCPUは、データ状態推定部21などとして動作するCPUと同一であってもよい。
また、例えば、顧客状態推定部25が、顧客状態毎の顧客数と実際のターゲットの販売数との関係を分析し、将来の販売数を予測してもよい。将来の販売数の予測方法の例をいかに示す。例えば、反復と推定された顧客数をR[t]、ターゲットの販売数をS[t]とし、一次関数を用いて近似すると、以下に示す式(3)のようになる。
S[t]=a・R[t]+b (t=1、・・・、T) 式(3)
この近似式の誤差を最小とするようなパラメタa、bを求め、この式を用いて将来の反復と推定された顧客数からターゲットの販売数を予測することができる。また、上記のパラメタa,bは、最小二乗法により、以下に示す式(4)、式(5)の計算を行って求めればよい。
Figure 2010073189
Figure 2010073189
式(4),(5)で求めたa,bを式(3)に代入することにより、反復と推定された顧客数R[t]からターゲット販売数S[t]を求める関数が得られる。例えば、顧客状態推定部25が、この関数を用いて、反復と推定された顧客数R[t]からターゲット販売数S[t]を計算してもよい。
本発明によれば、第2の実施形態と同様の効果を得ることができる。さらに、例えば、顧客状態が「潜在」となっている顧客数が一定期間毎に求められると、補正部41は、時系列解析によってその顧客数を補正する。従って、顧客状態が「潜在」となっている顧客数をより正確に推定することができる。また、上記の説明では、「潜在」を例にして説明したが、他の顧客状態の場合についても同様に、顧客数を推定することができる。さらに、本実施形態では、時系列解析の式を繰り返して起用することにより、入力された複数の一定期間よりも将来のそれぞれの状態の顧客数を求めることができる。従って、売上データのない将来の推移も予測することができるという効果がある。
実施形態4.
図19は、本発明の顧客状態推定システムの第4の実施形態の構成例を示すブロック図である。第3の実施形態と同様の構成要素については、図17と同一の符号を付し、詳細な説明を省略する。第4の実施形態の顧客状態推定システムは、売上データを記憶する売上DB1と、顧客の情報を含んだデータを記憶する顧客DB5と、顧客の顧客状態を予測する顧客状態推定装置6とを備える。
売上DB1が記憶する売上データは、第1から第3までの各実施形態と同様である。
顧客DB5は、顧客データを記憶する記憶手段であり、顧客データ記憶手段と呼ぶことができる。顧客データは、個別の顧客毎に定められたデータの集合である。図20は、顧客データの例を示す説明図である。個別の顧客毎に定められたデータ(以下、個別データと記す。)は、顧客の特性を表す1個以上の項目を含む。なお、図20における1行分のデータが個別データに相当する。顧客の特性を表す項目の例として、例えば、顧客の年齢、性別、住所の地域区分、勤務地の地域区分、職業などが挙げられる。これらは、例示であり、顧客の特定を表わす項目として他の項目が定められていてもよい。顧客の特性を表す項目の内容は、例えば、顧客が顧客カードに入会する時点にアンケートで収集するなどの方法で収集することができる。また、POSデータと連動することで、最も頻繁に購入する曜日・時刻や購入頻度、様々な商品またはサービスのカテゴリでの最も頻繁に購入する曜日・時刻や購入頻度など様々な情報を自動的に収集し、個別データに含めて、顧客DB5に記憶させておいてもよい。図20における「週3」などは、一週間当たりの購入頻度を意味している。ここで、顧客を区別しPOSデータと連動させるため、顧客ID(顧客の識別情報)を各個別データに含めることとする。また、図20では、図示を省略しているが、顧客データ中の各個別データには、後述の予測部61によって利用開始情報が追加される。利用開始情報とは、顧客が商品またはサービスを利用し始めている場合には、その商品またはサービスを利用し始めた時期を表し、顧客が商品またはサービスに関して「反復」状態である場合には「反復」に該当し始めた時期を表し、顧客が商品またはサービスに関して「離反」状態である場合には「離反」に該当し始めた時期を表し、顧客が商品またはサービスを未利用である(すなわち、まだ利用開始していない)場合には未利用である旨を表す情報である。
以下、顧客IDがnである顧客のことを、「顧客n」と記すこととする。なお、顧客DB5は必須ではなく、顧客DB5をなしとすることも可能である。
顧客状態推定装置6は、制御部31と、データ状態推定部21と、分類器生成部22と、初期顧客状態推定部23と、データクラス予測部24と、顧客状態推定部25と、予測部61とを備え、将来の個別顧客の顧客状態を予測する。制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25の動作は、第3の実施形態と同様である。
予測部61は、制御部31と、データ状態推定部21と、分類器生成部22と、初期顧客状態推定部23と、データクラス予測部24と、顧客状態推定部25とで推定した顧客の顧客状態の推移と顧客DB5とに基づいて、個別の顧客の顧客状態が予測対象状態に変化するか否かを予測する。
顧客状態は、「潜在」、「トライアル」、「反復」、「離反」の順に変化する。予測対象状態は、顧客状態がより前の顧客状態からその顧客状態に変化するか否かを予測する対象となる顧客状態である。予測部61は、具体的には、「トライアル」を予測対象状態として「潜在」であった顧客が「トライアル」になるかを予測し、「反復」を予測対象状態として「トライアル」であった顧客が「反復」になるかを予測し、「離反」を予測対象状態として「反復」であった顧客が「離反」になるかを予測する。この予測により、ターゲットの普及の程度がわかる。
制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、顧客状態推定部25、および予測部61は、例えば、プログラムに従って動作するCPUによって実現される。すなわち、CPUが、プログラムを読み込み、そのプログラムに従って、制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、顧客状態推定部25、および予測部61として動作してもよい。
次に、動作について説明する。第3の実施形態と同様に、与えられた一定期間数をT個とし、それぞれの一定期間を、一定期間1、一定期間2、・・・、一定期間Tと記すこととする。そして、個々の一定期間の長さがいずれも同じであるとする。
まず、制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25が処理を行い、それぞれの一定期間毎に、個別の顧客の顧客状態を推定する。この動作は、第2の実施形態で説明したステップF1〜F4の動作と同様である。
一定期間1から一定期間Tまでの各一定期間について個別の顧客の顧客状態が推定された後、予測部61は、ある顧客状態となっている個々の顧客が他の顧客状態に変化するか否かを顧客状態毎に予測する処理を行う。以下の説明では、「トライアル」を予測対象状態として、「潜在」であった顧客が「トライアル」になるか、「トライアル」にならずに「潜在」のままとなるかを予測する場合を例にして説明する。図21は、予測部61の処理経過の例を示すフローチャートである。
予測部61は、変数iの値をi=1と初期化する(ステップH1)。変数iは、顧客を指定するための変数である。次に、予測部61は、顧客iの利用開始情報を「未利用」と初期化する(ステップH2)。すなわち、顧客iの個別データに対して、「未利用」を示す利用開始情報を追加する。
次に、予測部61は、変数tの値をt=1と初期化する(ステップH3)。変数tは、一定期間を指定するための変数である。続いて、予測部61は、顧客iが一定期間tにおいて予測対象状態より前の顧客状態であると推定されていたか否かを判定する(ステップH4)。ここでは、「トライアル」を予測対象状態として、「潜在」であった顧客が「トライアル」になるかを予測する場合を例にしているので、ステップH4では、顧客iが一定期間tにおいて「潜在」と推定されていたか否かを判定する。一定期間tにおいて顧客iの顧客状態が「潜在」以外の状態と推定されていれば(ステップH4におけるNo)、予測部61は、顧客iの利用開始情報をtとする(ステップH7)。すなわち、顧客iの利用開始情報の内容を初期値の「未利用」から、一定期間tの時期を示す時期情報に更新する。この結果、顧客iがその時期からターゲットの使用を開始したということを利用開始情報が表わすことになる。ステップH7の後、ステップH8に移行する。
また、一定期間tにおいて顧客iの顧客状態が「潜在」と推定されていれば(ステップH4におけるYes)、予測部61は、変数tの値を1インクリメントし(ステップH5)、tが一定期間の数T以下であるか否かを判定する(ステップH6)。tがT以下であれば(ステップH6におけるYes)、ステップH4以降の処理を繰り返す。また、tがTを超えていれば(ステップH6におけるNo)、予測部61は、ステップH8に移行する。
ステップH8では、予測部61は、変数iの値を1インクリメントする。すなわち、指定する顧客を変える。顧客iに関して、一定期間Tまで「潜在」となっていた場合には、ステップH6からステップH8に移行し、その顧客iの利用開始情報が「未利用」のまま、次の顧客について処理を進める。一方、一定期間Tまでの間に「潜在」以外となった場合には、ターゲットの購入を行ったことになるので、ステップH7で利用開始情報を初期値(「未利用」)から、一定期間tの時期を示す時期情報に更新する。
ステップH8の後、予測部61は、iが全顧客数N以下であるか否かを判定し(ステップH9)、iがN以下であれば(ステップH9におけるYes)、ステップH3以降の処理を繰り返す。iがNを超えていれば(ステップH9におけるNo)、予測部61は、利用開始情報を用いて、予測対象状態より前の状態の顧客が予測対象状態に変化するか否かを予測し(ステップH10)、処理を終了する。本例では、「潜在」となっている顧客が「トライアル」に変化するか否かを予測する。
以下、ステップH10の処理について説明する。まず、予測部61の詳細について説明する。
図22は、予測部61の構成例を示すブロック図である。予測部61は、利用開始情報付加部89と、影響度(ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合い)を推定する影響度推定部80と、影響度を用いて、個々の顧客毎に、予測対象の時刻において、予測対象状態より前の状態の顧客が予測対象状態に変化するか否かを判定する普及予測部90とを備える。利用開始情報付加部89は、前述のステップH1〜H9を実行し、顧客データ内の各個別データに利用開始情報を追加する。ステップH1〜H9については、説明したので、利用開始情報付加部89の動作の説明は省略する。影響度推定部80および普及予測部90が、ステップH10を実行する部分である。
まず、影響度推定部80について説明する。影響度推定部80は、現時刻データ生成部81と、前時刻データ群生成部82と、前時刻分類器群生成部83と、誤差群算出部84と、影響度算出部85とを備える。
現時刻データ生成部81は、現時刻と、その現時刻の一定時間前を指定するための時刻間隔と、複数の仮影響度とが入力される。時刻間隔や複数の仮影響度は、影響度推定部80において予め定められていてもよい。影響度推定部80における現時刻とは、影響度の推定対象時刻(影響度推定対象時刻)として用いられる時刻であり、時刻間隔は、影響度を推定しようとする期間である。この時刻間隔は、既に述べた一定期間と同一の長さであっても、異なっていてもよい。そして、影響度推定部80は、過去のある時点を影響度推定対象時刻として、その時点から時刻間隔分遡った時刻からその影響度推定対象時刻までの期間における影響度を推定する。従って、過去のある時点での時刻が現時刻として入力される。現時刻から時刻間隔前の時刻(現時刻から時刻間隔分遡った時刻)を、前時刻と記す。現時刻データ生成部81は、現時刻から時刻間隔を減算して前時刻を計算する。
また、入力される仮影響度は、求めようとしている影響度の候補であり、影響度推定部80は、複数の仮影響度から影響度を求める。仮影響度として現時刻データ生成部81に入力される数値は、0以上の数値である。例えば、影響度推定システムのユーザが、0以上から50程度までの値の中から影響度の候補を複数選択し、仮影響度として入力する。候補として仮影響度を多く入力すれば、影響度の推定精度が高くなる。
また、現時刻データ生成部81は、現時刻と顧客DB5とに基づいて、1つの現時刻データを生成する。現時刻データは、現時刻において予測対象状態よりも前の段階の顧客状態に該当する顧客の個別データに第2ラベルをラベル付け、現時刻において予測対象状態以降の段階の顧客状態に該当する顧客の個別データに第1ラベルをラベル付けたデータである。第1ラベルは、予測対象状態以降の段階の顧客状態を示す情報であり、第2ラベルは、予測対象状態よりも前の段階の顧客状態を示す情報である。以下、第1ラベルを正(または+)と記し、第2ラベルを負(または−)と記す。現時刻データ生成部81は、顧客DB5を用いて(すなわち、顧客データDB2に記憶された顧客データに基づいて)、現時刻データを生成する。
例えば、本例では、予測対象状態は「トライアル」として、「潜在」であった顧客が「トライアル」になるか否かを予測する。この場合、予測対象状態(トライアル)より前の段階は「潜在」のみである。従って、この予測を行う場合に生成する現時刻データにおいては、現時刻で「潜在」に該当する顧客の個別データに第2ラベルを付し、現時刻で「トライアル」以降に該当する顧客の個別データに第1ラベルを付す。
前時刻データ群生成部82は、前時刻と複数の仮影響度と顧客DB5に記憶されている顧客データとに基づいて、複数の前時刻データを生成する。前時刻データは、前時刻で予測対象状態よりも前の段階の顧客状態に該当している顧客の個別データに第2ラベル(負)をラベル付け、前時刻で予測対象状態以降の段階の顧客状態に該当している顧客の個別データに第1ラベル(正)をラベル付け、仮影響度に応じて重み付けを行ったデータである。重み付けとは、第2ラベルをラベル付けた個別データ数に対して、第1ラベルをラベル付けた個別データ数を相対的に変動させることである。前時刻データ群生成部82は、仮影響度毎に前時刻データを生成する。仮影響度は複数あるので、複数の前時刻データを生成することになる。
前時刻分類器群生成部83は、前時刻データ群生成部82によって生成された各前時刻データ毎に1つずつ分類器を生成する。従って、前時刻分類器群生成部83は、複数の分類器を生成することになる。前時刻分類器群生成部83が生成する分類器は、顧客の属性を表す項目からその顧客の個別データに正(第1ラベル)と負(第2ラベル)のいずれをラベル付けるかを判定するルールである。換言すれば、顧客の属性を表す項目を独立変数として、従属変数のとり得る値を正または負とし、その独立変数から従属変数を定めるルールである。以下、前時刻分類器群生成部83が生成する分類器を、前述の分類器生成部22が生成する分類器と区別して、前時刻分類器と記す。
誤差群算出部84は、前時刻分類器群生成部83で生成された各前時刻分類器を用いて、現時刻データのラベルを予測する。すなわち、誤差群算出部84は、前時刻分類器と、現時刻データ内の各個別データの項目(顧客の属性を示す項目)と照合し、現時刻データ内の各個別データ毎に、その個別データにラベル付けられるラベルを予測する。また、その現時刻データ内の各個別データには既に実際にラベル付けが行われている。誤差群算出部84は、前時刻分類器と項目とから予測したラベルと、実際に現時刻データでラベル付けられているラベルとの誤差を算出する。誤差群算出部84は、この処理を前時刻分類器毎に行う。したがって、誤差群算出部84は複数の誤差を算出する。
影響度算出部85は、個々の前時刻分類器毎に算出された誤差のうちの最小の誤差を特定し、最小の誤差に対応する仮影響度を影響度として定める。具体的には、最小の誤差に対応する仮影響度の数が一つである場合、影響度算出部85は、その仮影響度を影響度として定める。また、最小の誤差に対応する仮影響度が複数個存在する場合には、その複数の仮影響度に基づいて影響度を定める。例えば、最小の誤差に対応する仮影響度が複数個存在する場合、その複数の仮影響度の平均値を計算し、その平均値を影響度として定める。以下、最小の誤差に対応する仮影響度が複数個存在する場合、その仮影響度の平均値を影響度と定める場合を例にして説明する。
次に、影響度推定部80が影響度を推定する動作について説明する。図23は、影響度推定部80の処理経過の例を示すフローチャートである。ここでは、「潜在」であるそれぞれの顧客が「トライアル」に変化するか「潜在」のままとなるかを予測する場合(すなわち予測対象状態が「トライアル」である場合)を例にして説明する。
まず、現時刻データ生成部81は、前時刻を計算し、現時刻データを作成する(ステップS1)。さらに、ステップS1において、現時刻データ生成部81は、誤差群算出部84が計算する誤差のうちの最小値を示す変数(ErrorMinとする。)の初期値を設定し、変数i,pに対して、i=1,p=0という初期値を設定する。ErrorMinの初期値は、誤差群算出部84が計算する誤差のとり得る値の最大値、あるいは、その誤差のとり得る値に比べて十分に大きな値であればよい。影響度推定部80が用いる変数iは、複数の仮影響度を順番に指定するための変数である。例えば、i=1であれば、1番目の仮影響度を指定していることを意味する。また、pは、最小の誤差に対応する仮影響度を指定するための変数である。例えば、最小の誤差に対応する仮影響度がp個あったとすると、その最小誤差に対応する仮影響度の1番目からp番目までをそれぞれ、Imp[1],・・・,Imp[p]とする。
ステップS1において、現時刻データ生成部81は、前時刻を、現時刻−時刻間隔と設定する。すなわち、現時刻から時刻間隔を減算した時刻を前時刻とする。
また、ステップS1において、現時刻データ生成部81は、顧客DB5に記憶された顧客データを読み込む。そして、現時刻で予測対象状態よりも前の段階の顧客状態に該当している顧客の個別データに負をラベル付け、現時刻で予測対象状態以降の段階の顧客状態に該当している顧客の個別データに正をラベル付けた現時刻データを生成する。本例では、現時刻で「潜在」に該当する顧客の個別データに負をラベル付け、現時刻で「トライアル」以降に該当する顧客の個別データに正をラベル付けた現時刻データを生成する。現時刻データ生成部81は、ラベル付けの際、現時刻と、個別データに付加された利用開始情報とを比較し、利用開始情報が現時刻以前の時期となっている個別データに正をラベル付け、利用開始情報が現時刻以前の時期でない個別データに負をラベル付ければよい。
このとき、現時刻データ生成部81は、顧客DB5に記憶されている顧客データに属する個別データのうち、前時刻でターゲットの利用を開始していた顧客の個別データを除外した個別データの集合から現時刻データを生成してもよい。すなわち、利用開始情報が前時刻以前の時刻となっている個別データを除外し、残りの個別データに対して正または負のラベル付けを行ってもよい。
ステップS1の後、前時刻データ群生成部82は、i番目の仮影響度(以下、False[i]と記す。)を用いて、仮影響度False[i]に対応する前時刻データを生成する(ステップS2)。前時刻データ群生成部82は、顧客DB5に記憶された顧客データを読み込み、前時刻で予測対象状態よりも前の段階の顧客状態に該当している顧客の個別データに第2ラベル(負)をラベル付け、前時刻で予測対象状態以降の段階の顧客状態に該当している顧客の個別データに第1ラベル(正)をラベル付けたデータを生成する。本例では、前時刻と、個別データに付加された利用開始情報とを比較し、利用開始情報が前時刻以前の時期となっている個別データに正をラベル付け、利用開始情報が前時刻以前の時期でない個別データに負をラベル付ければよい。この時点では、まだ仮影響度[i]に応じた重み付けは行っていない。なお、前時刻データを生成する際には、個別データを除外しない。
そして、前時刻データ群生成部82は、仮影響度False[i]に応じた重み付けを行う。すなわち、仮影響度False[i]に応じて、正とした個別データの数を、負とした個別データの数に対して相対的に変動させる。本例では、仮影響度False[i]の関数の関数値を計算し、正をラベル付けた個別データをその関数値倍に増加させる場合を例にする。
仮影響度False[i]の関数として、例えば、前時刻で正がラベル付けられた顧客数と前時刻で未だ正がラベル付けられていない顧客数との比率を仮影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
False[i]×(前時刻で正がラベル付けられていない顧客数)/(前時刻で正がラベル付けられた顧客数)
このように、「前時刻で正がラベル付けられていない顧客数」を「前時刻で正がラベル付けられた顧客数」で除算して得た比率をFalse[i]の係数とする関数を用いてもよい。
また、仮影響度False[i]の関数として、例えば、前時刻で正がラベル付けられた顧客数と全顧客数との比率を仮影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
False[i]×(顧客人数)/(前時刻で正がラベル付けられた顧客数)
上記の関数において、「顧客人数」は、全顧客数(顧客データ内の全個別データ数)である。このように、「顧客人数」を「前時刻で正がラベル付けられた顧客数」で除算して得た比率をFalse[i]の係数とする関数を用いてもよい。
前時刻データ群生成部82は、このような関数の関数値倍に、正をラベル付けた個別データを増加させる。例えば、仮影響度がFalse[i]のときの関数値が5であるとする。この場合、正をラベル付けた個別データの数が5倍になるように、正をラベル付けた個別データの複製を生成すればよい。この結果得られるデータが前時刻データである。例えば、顧客ID=1の個別データが正となっている場合、その個別データと同内容のデータの数を5倍に増やせばよい。なお、複製した個別データの顧客IDは、それぞれ区別してもよい。
なお、正とラベル付けた個別データのコピーだけを生成する場合には、正とラベル付けた個別データに対する重み付けを行ってから、他の個別データに対して負のラベル付けを行ってもよい。
また、例示した2つの関数における仮影響度の係数の値は、いずれも時間が経過して各顧客の顧客状態の遷移が進むに従って減少する。仮影響度の係数は、このような係数に限定されない。また、仮影響度False[i]の値をそのまま関数値として用いてもよい。この場合係数を1としていることになる。
また、上記の例では、正とラベル付けた個別データを関数値倍に増加させる場合を示しているが、重み付けでは、正とラベル付けた個別データ数を、負とラベル付けた個別データ数に対して相対的に変化させればよい。例えば、重み(関数値)が5で、正とラベル付けた個別データ数を10倍とするならば、負とラベル付けた個別データ数を2倍にすればよい。また、重みが0.5で、正とラベル付けた個別データ数を1倍とするならば、負とラベル付けた個別データ数を2倍にすればよい。なお、ここでは、個別データ数を10倍とする等の例を挙げたが、このように、個別データ数をk倍にする等の条件を定める場合、そのk等は予め外部から入力しておけばよい。
また、ここでは、実際に個別データの複製を作成することで個別データを増加させていたが、次のステップで前時刻分類器を作成する際に、仮影響度False[i]の関数値を重み付けパラメタとして用いてもよい。すなわち、正とラベル付けた個別データを何倍に増やすかということを決めておき、その結果をパラメタとして前時刻分類器を生成してもよい。
ステップS2で前時刻データ群生成部82がFalse[i]に応じた前時刻データを生成した後、前時刻分類器群生成部83は、その前時刻データを用いて、その前時刻データに対応する前時刻分類器(前時刻分類器iと記す。)を生成する(ステップS3)。顧客IDは前時刻分類器作成に不要であり、前時刻分類器群生成部83は、顧客IDを削除してよい。前時刻分類器群生成部83は、データマイニングの様々な手法により前時刻分類器を生成すればよい。例えば、重回帰分析、決定木、ニューラルネットワーク、サポートベクタマシン、ベイジアンネットワークなどの手法のいずれかあるいはその組合せなどにより分類器を生成すればよい。
前時刻分類器群生成部83は、前時刻分類器として決定木を作成してもよい。決定木の作成は、既に説明した決定木作成動作と同様に行えばよい。すなわち、前時刻分類器群生成部83は、前時刻データが与えられると、どの項目で最初に分割させるかを決定する。このとき、前時刻分類器群生成部83は、項目1〜Nの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択すればよい。評価値として、例えば、分割前のノードのエントロピーと、分割後のエントロピーの差を用いればよい。分割前のノードのエントロピー、および分割後のエントロピーの計算方法は、既に説明した計算方法と同様であり、説明を省略する。前時刻分類器群生成部83は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次繰り返し、所定の条件が満たされたときには、ノードの分割を停止する。そして、前時刻分類器群生成部83は、このようにして得た木構造の決定木に対して、枝刈りを行うことにより、分類器となる決定木を生成する。上記の所定の条件や枝刈りの処理も、第1の実施形態で示した所定の条件や枝刈り処理と同様であり、説明を省略する。
ステップS3でFalse[i]に応じた前時刻データから前時刻分類器iを生成すると、誤差群算出部84は、その前時刻分類器iを用いて、現時刻データのラベルを予測する(ステップS4)。すなわち、誤差群算出部84は、現時刻データ内の各個別データ毎に、その個別データにおける顧客の属性を示す項目と、前時刻分類器iとを照合し、その個別データにラベル付けられるラベルを予測する。
例えば、分類器が決定木である場合、誤差群算出部84は、そのルートのノードの項目に関して現時刻データ内の個別データの項目値を参照し、その項目値に応じて子ノードを辿る。誤差群算出部84は、葉のノードまで辿ったならば、葉のノードでカウント数の多い方のラベルを予測結果とすればよい。例えば、葉のノードで、「正:3,負:0」となっていれば、「正」と予測すればよい。
ステップS4の後、誤差群算出部84は、現時刻データ内の各個別データにラベル付けられるラベルの予測結果と、現時刻データとの誤差を算出する(ステップS5)。すなわち、現時刻データ内の各個別データには、現時刻データ生成時に正または負のラベルがラベル付けられているので、ステップS4での予測結果と、実際の現時刻データでラベル付けされているラベルとの誤差を予測する。この誤差をErr[i]と記す。
誤差群算出部84は、ステップS5において、例えば、現時刻データ内の個別データ毎に予測したラベルと、実際に現時刻データの各個別データにラベル付けられているラベルとを比較し、両者が異なっている個別データ数をカウントして、そのカウント値をErr[i]として求めてもよい。
あるいは、誤差群算出部84は、現時刻データ内の個別データ毎に予測したラベルのうち、正がラベル付けられると予測した個別データの数と、現時刻データの中で実際に正がラベル付けられた個別データの数との差を計算して、その差をErr[i]として求めてもよい。すなわち、正のラベルの予測数と、実際に現時刻データの中で正がラベル付けられた個別データ数との差の絶対値をErr[i]としてもよい。
ステップS5の後、影響度算出部85は、誤差Err[i]と最小誤差値ErrorMinとを比較し、Err[i]がErrorMin未満であるか否かを判定する(ステップS6)。Err[i]がErrorMin未満であるならば(ステップS6におけるYes)、影響度算出部85は、pを0に初期化し、ErrorMinにErr[i]を代入する(ステップS11)。Err[i]がErrorMin未満ということは、これまで最小としていた誤差よりもさらに小さい最小値が見つかったことを意味する。この場合、ステップS11において、その最小値でErrorMinを更新し、また、その誤差に対応する仮影響度が複数ある場合に各仮影響度を個別に指定するための変数pを初期化している。
ステップS11の後、影響度算出部85は、pの値を1インクリメントし、Imp[p]にFalse[i]を代入する(ステップS12)。また、ステップS6において、Err[i]がErrorMin以上であると判定した場合(ステップS6におけるNo)、影響度算出部85は、Err[i]がErrorMinと等しいか否かを判定する(ステップS7)。ここで等しいと判定した場合(ステップS7におけるYes)にも、影響度算出部85は、pの値を1インクリメントし、Imp[p]にFalse[i]を代入する(ステップS12)。
ステップS11からステップS12に移行した場合、p=1であり、現在着目している仮影響度False[i]を、誤差が最小となる1番目の仮影響度とする。また、ステップS7において、着目しているFalse[i]に対応するErr[i]がErrorMinと等しく、ステップS12に移行した場合、pは2以上の値になる。この場合、既に最小の誤差に対応する仮影響度は1つ以上見つかっていて、影響度算出部85は、現在着目している仮影響度False[i]を、誤差が最小となるp番目の仮影響度と定めることになる。
ステップS12の後、あるいは、ステップS7でErr[i]がErrorMinと等しくないと判定した場合(ステップS7におけるNo)、影響度算出部85は、iの値をインクリメントする(ステップS8)。次に、影響度算出部85は、iの値が、最初に入力された仮影響度の個数(Mとする。)以下であるか否かを判定する(ステップS9)。iが仮影響度数M以下であるならば(ステップS9におけるYes)、ステップS8でインクリメントされたiによって定まる仮影響度False[i]に関してステップS2以降の処理を行う。すなわち、着目する仮影響度を変更してステップS2以降の処理を行う。
iの値が仮影響度数Mよりも大きければ(ステップS9におけるNo)、ステップS10に移行する。ここで、iは、誤差算出が終了した仮影響度の数を表している。ステップS10において、影響度算出部85は、最小誤差に対応する各仮影響度の平均値を計算し、その平均値を影響度として出力する(ステップS10)。最小誤差に対応する仮影響度が1つしかなければ、p=1となっている。このとき、影響度算出部85は、Imp[1]を影響度として出力すればよい。また、最小誤差に対応する仮影響度が複数ある場合、pは2以上の値となっている。このとき、影響度算出部85は、Imp[1]からImp[p]までの各影響度の平均値を計算し、その平均値を影響度として出力すればよい。以上の処理によって、影響度推定部80は、影響度を定める。
次に、普及予測部90について説明する。普及予測部90には、現時刻が入力され、影響度推定部80が定めた影響度を用いて、個々の顧客毎に、予測対象の時刻において、予測対象状態の前の段階の顧客状態が予測対象状態に変化するか否かを判定する。普及予測部90に入力される現時刻は、顧客がターゲットを利用し始めたか否かの判定対象時刻を定めるための時刻であり、将来の時刻であってもよい。
普及予測部90は、テストデータ生成部91と、学習データ生成部92と、予測用分類器生成部93と、テストデータラベル判定部94とを備える。
テストデータ生成部91は、現時刻と顧客DB5とに基づいて、現時刻において予測対象状態よりも前段階の顧客状態に該当している顧客の個別データを含むテストデータを生成する。
テストデータは、現時刻において、予測対象状態よりも前段階の顧客状態に該当している顧客の個別データを含むデータである。テストデータは、そのような顧客の個別データのみを含むことが好ましいが、他の顧客の個別データを含んでいてもよい。以下、テストデータが、現時刻において予測対象状態よりも前段階の顧客状態に該当している顧客の個別データのみを含む場合を例にして説明する。
学習データ生成部92は、影響度と、入力された現時刻と、顧客DB5に記憶されている顧客データとに基づいて、学習データを生成する。学習データは、現時刻で予測対象状態以降の段階の顧客状態に該当している顧客の個別データに第1ラベルをラベル付け、現時刻で予測対象状態よりも前の段階の顧客状態に該当している顧客の個別データに第2ラベルをラベル付け、入力された影響度に応じて重み付けを行ったデータである。既に述べたように、重み付けとは、第2ラベルをラベル付けた個別データ数に対して、第1ラベルをラベル付けた個別データ数を相対的に変動させることである。また、影響度推定部80で説明した場合と同様に、第1ラベルを正(または+)と記し、第2ラベルを負(または−)と記す。なお、学習データ生成部92が生成する学習データは、前述の分類器生成部22が生成する学習用データとは別のデータである。
予測用分類器生成部93は、学習データ生成部92が生成した学習データを用いて分類器を生成する。以下、この分類器を、前述の分類器生成部22が生成する分類器や、前時刻分類器と区別して、予測用分類器と記す。
テストデータラベル判定部94は、テストデータ内の各個別データのラベルを予測用分類器によって予測する。すなわち、テストデータ内の各個別データの項目と予測用分類器とを照合して、正または負のいずれにラベル付けられるかという判定を行う。正と判定された個別データの顧客は、現時刻の次の時刻で予測対象状態よりも前の段階から予測対象状態に変化したと予測されることになる。例えば、予測対象状態が「トライアル」である場合、「潜在」から「トライアル」に変化すると予測されることになる。負と判定された個別データの顧客は、現時刻の次の時刻ではまだ予測対象状態より前の状態であると予測されることになる。なお、現時刻の次の時刻とは、現時刻に、定められた一定時間を加算した時刻である。
また、テストデータ生成部91および学習データ生成部92は、外部から現時刻を入力されてもよい。あるいは、影響度算出部85が現時刻をテストデータ生成部91および学習データ生成部92に渡してもよい。また、図22に例示する構成では、影響度算出部85が、影響度を学習データ生成部92に渡せばよいが、予測部61が影響度推定部80を備えず、外部から学習データ生成部92に影響度が入力されてもよい。
次に、普及予測部90の動作について説明する。図24は、普及予測部90の処理経過の例を示すフローチャートである。
まず、テストデータ生成部91は、テストデータを生成する(ステップT1)。テストデータ生成部91は、顧客データDB2に記憶されている顧客データの中から、現時刻において予測対象状態よりも前段階の顧客状態に該当している顧客の個別データのみを抜き出して、その個別データの集合をテストデータとすればよい。具体的には、利用開始情報が現時刻以前の時期となっていない個別データのみを抜き出して、その個別データの集合をテストデータとすればよい。
ステップT1の後、学習データ生成部92は、学習データを生成する(ステップT2)。学習データ生成部92は、顧客DB5に記憶された顧客データを読み込み、現時刻で予測対象状態以降の段階の顧客状態に該当している顧客の個別データに正をラベル付け、現時刻で予測対象状態よりも前の段階の顧客状態に該当している顧客の個別データに負をラベル付ける。「トライアル」に変化するかを予測する場合には、ラベル付けの際、現時刻と、個別データに付加された利用開始情報とを比較し、利用開始情報が現時刻以前の時期となっている個別データに正をラベル付け、利用開始情報が現時刻以前の時期でない個別データに負をラベル付ければよい。そして、学習データ生成部92は、影響度に応じて、正とした個別データの数を、負とした個別データの数に対して相対的に変動させる。本例では、影響度の関数の関数値を計算し、その関数値倍に、正をラベル付けた個別データを増加させる場合を例にする。
影響度の関数として、例えば、正がラベル付けられた顧客数と現時刻で未だ正がラベル付けられていない顧客数との比率を影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
影響度×(現時刻で正がラベル付けられていない顧客数)/(現時刻で正がラベル付けられた顧客数)
このように、「現時刻で正がラベル付けられていない顧客数」を「現時刻で正がラベル付けられた顧客数」で除算して得た比率を影響度の係数とする関数を用いてもよい。
また、影響度の関数として、例えば、現時刻で正がラベル付けられた顧客数と全顧客数との比率を影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
影響度×(顧客人数)/(現時刻で正がラベル付けられた顧客数)
上記の関数において、「顧客人数」は、全顧客数(顧客データ内の全個別データ数)である。このように、「顧客人数」を「現時刻で正がラベル付けられた顧客数」で除算して得た比率を影響度の係数とする関数を用いてもよい。
学習データ生成部92は、このような関数の関数値倍に、正をラベル付けた個別データを増加させる。例えば、入力された影響度を関数に代入して得た値がjであるとする。この場合、正をラベル付けた個別データの数がj倍になるように、正をラベル付けた個別データの複製を生成すればよい。
また、例示した2つの関数における影響度の係数の値は、いずれも時間が経過して各顧客の顧客状態の遷移が進むに従って減少する。影響度の係数は、このような係数に限定されない。また、影響度の値をそのまま関数値として用いてもよい。この場合、係数を1としていることになる。
また、上記の例では、正とラベル付けた個別データを関数値倍に増加させる場合を示しているが、重み付けでは、正とラベル付けた個別データ数を、負とラベル付けた個別データ数に対して相対的に変化させればよい。この点は、前述の前時刻データ群生成部82が行う重み付けと同様である。
ステップT2の後、予測用分類器生成部93は、学習データを用いて予測用分類器を生成する(ステップT3)。予測用分類器生成部93は、重回帰分析、決定木、ニューラルネットワーク、サポートベクタマシン、ベイジアンネットワークなどのデータマイニングによる手法のいずれかあるいはその組合せにより予測用分類器を生成すればよい。
予測用分類器生成部93は、予測用分類器として決定木を生成してもよい。すなわち、予測用分類器生成部93は、学習データが与えられると、どの項目で最初に分割させるかを決定する。このとき、予測用分類器生成部93は、項目1〜Nの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択すればよい。評価値として、例えば、分割前のノードのエントロピーと、分割後のエントロピーの差を用いればよい。分割前のノードのエントロピー、および分割後のエントロピーの計算方法は、既に説明した計算方法と同様であり、説明を省略する。予測用分類器生成部93は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次繰り返し、所定の条件が満たされたときには、ノードの分割を停止する。そして、予測用分類器生成部93は、このようにして得た木構造の決定木に対して、枝刈りを行うことにより、予測用分類器となる決定木を生成する。上記の所定の条件や枝刈りの処理も、第1の実施形態で示した所定の条件や枝刈り処理と同様であり、説明を省略する。このようにして生成した決定木(予測用分類器)は、学習データ内で第1ラベルをラベル付けられた個別データの割合が高くなるほど、テストデータ内で第2ラベルをラベル付けられている個別データのうち、第1ラベルをラベル付けられた個別データの項目値と類似する項目値を持つ個別データに対して、第1ラベルをラベル付けると判定する頻度が高くなるという性質を有している。なお、予測用分類器は決定木に限定されず、予測用分類器生成部93は、上記以外の動作で予測用分類器を生成してもよい。
ステップT3の後、テストデータラベル判定部94は、ステップT3で生成された予測用分類器を用いて、テストデータのラベルを予測する(ステップT4)。すなわち、テストデータラベル判定部94は、テストデータ内の各個別データ毎に、その個別データにおける顧客の属性を示す項目と、ステップT3で生成された予測用分類器とを照合し、その個別データに対するラベルが正であるか負であるかを判定する。例えば、予測用分類器が決定木である場合、テストデータラベル判定部94は、そのルートのノードの項目に関してテストデータ内の個別データの項目値を参照し、その項目値に応じて子ノードを辿る。テストデータラベル判定部94は、葉のノードまで辿ったならば、葉のノードでカウント数の多い方のラベルを判定結果とすればよい。そして、テストデータラベル判定部94は、判定結果が正であれば、予測対象状態より前の段階から予測対象状態に変化すると予測する。また、判定結果が負であれば、予測対象状態より前の段階の顧客状態のままであると予測する。例えば、本例のように予測対象状態が「トライアル」である場合、ステップT4の判定結果が正となった顧客については「トライアル」に変化すると予測する。また、ステップT4の判定結果が負となった顧客については、まだ「潜在」のままで変化しないと判定する。
普及予測部90は、顧客の属性を示す項目を含む個別データの集合に対してラベル付けを行い、さらに重み付けをして得た学習データから予測用分類器を生成する。そして、テストデータラベル判定部94がテストデータ内の各個別データ毎に、その項目と予測用分類器とを照合して、正または負のいずれかを判定することによって、予測対象の時刻において予測対象状態より前の段階から予測対象状態に変化するか否かを判定する。従って、顧客の属性を利用して、顧客状態の変化を予測することができる。
ステップH10(図21参照)では、以上のような予測処理を行えばよい。
以上の例では、予測対象状態が「トライアル」であり、「潜在」から「トライアル」に変化するか否かを予測する場合を例にして説明したが、さらに、予測部61は、予測対象状態を「反復」として、「トライアル」から「反復」に変化するか否かを予測し、さらに、予測対象状態を「離反」として、「反復」から「離反」に変化するか否かを予測してもよい。
予測対象状態を「反復」として、「トライアル」から「反復」に変化するか否かを予測する場合には、以下のように処理を行えばよい。この場合、利用開始情報付加部89は、ステップH1(図21参照)以降の処理を行い、「潜在」から「トライアル」に変化するか否かを予測する際に各個別データに付加した利用開始情報を更新する。ただし、この場合、ステップH2の処理は行わず、ステップH1の後、ステップH3に移行する。さらに、ステップH4では、顧客iが一定期間tにおいて「トライアル」と推定されていたか否かを判定し、その期間tで「トライアル」と推定されていれば、ステップH5に移行し、「トライアル」と推定されていなければステップH7に移行する。ステップH7では、顧客iの個別データに付加された利用開始情報の内容を、「反復に変化した時期が一定期間tの時期である」という内容に更新する。以下、この内容が示す、反復に変化した時期を「反復t」と記す。ステップH1,H3〜H9におけるその他の動作は、既に説明した動作と同様である。この処理により、「潜在」の顧客の利用開始情報は「未利用」のままであり、「トライアル」の顧客の利用開始情報は「利用開始時期」のままであり、「反復」に変化した顧客の利用開始情報は「反復t」となる。
ステップH10において、正または負をラベル付ける場合、着目している時刻までに「反復」になっている個別データを正とラベル付け、そうでない個別データには負をラベル付ければよい。
例えば、ステップH10内のステップS1(図23参照)において現時刻データを生成する場合、利用開始情報の内容が「反復」になった時期を表していて、その時期が現時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。従って、利用開始情報の内容が「未利用」や、利用開始時期となっている個別データには負をラベル付ける。
また、ステップH10内のステップS2(図23参照)において前時刻データを生成する場合、利用開始情報の内容が「反復」になった時期を表していて、その時期が前時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。従って、現時刻データの場合と同様に、利用開始情報の内容が「未利用」や、利用開始時期となっている個別データには負をラベル付ける。
また、ステップH10内のステップT1(図24参照)においてテストデータを生成する場合、現時刻において「反復」になっていない個別データを抜き出して、その個別データの集合をテストデータとすればよい。
また、ステップH10内のステップT2において学習データを生成する場合、利用開始情報の内容が「反復」になった時期を表していて、その時期が現時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。従って、利用開始情報の内容が「未利用」や、利用開始時期となっている個別データには負をラベル付ける。
なお、上記の例では、着目している時刻において「トライアル」および「潜在」の個別データについて負をラベル付けるが、負をラベル付ける対象を、着目している時刻において「トライアル」である個別データのみとしてもよい。なお、負をラベル付ける場合を、「トライアル」のみとするのか、「トライアル」および「潜在」とするのかは、予め定められていてもよい。あるいは、ユーザによって指定されてもよい。
ステップT4では、予測用分類器を用いてテストデータに関して判定したラベルが「正」であるならば、「トライアル」から「反復」に変化すると予測し、「負」であるならば、「トライアル」のままであると予測すればよい。その他の動作については、上記の説明と同様である。
予測対象状態を「離反」として、「反復」から「離反」に変化するか否かを予測する場合には、以下のように処理を行えばよい。この場合、利用開始情報付加部89は、ステップH1(図21参照)以降の処理を行い、「トライアル」から「反復」に変化するか否かを予測する際に定めた利用開始情報を更新する。ただし、この場合、ステップH2の処理は行わず、ステップH1の後、ステップH3に移行する。さらに、ステップH4では、顧客iが一定期間tにおいて「トライアル」または「反復」と推定されていたか否かを判定し、その期間tで「トライアル」または「反復」と推定されていればステップH5に移行し、「トライアル」および「反復」のいずれにも推定されていなければステップH7に移行する。ステップH7では、顧客iの個別データに付加された利用開始情報の内容を、「離反に変化した時期が一定期間tの時期である」という内容に更新する。以下、この内容が示す、離反に変化した時期を「離反t」と記す。ステップH1,H3〜H9におけるその他の動作は、既に説明した動作と同様である。この処理により、「潜在」の顧客の利用開始情報は「未利用」のままであり、「トライアル」の顧客の利用開始情報は「利用開始時期」のままであり、「反復」の顧客の利用開始情報は「反復t」であり、「離反」に変化した顧客の利用開始情報は「離反t」となる。
ステップH10において、正または負をラベル付ける場合、着目している時刻までに「離反」になっている個別データを正とラベル付け、そうでない個別データには負をラベル付ければよい。
例えば、ステップH10内のステップS1(図23参照)において現時刻データを生成する場合、利用開始情報の内容が「離反」になった時期を表していて、その時期が現時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。ただし、利用開始情報が「未利用」となっている個別データについては、負をラベル付ける対象から除外する。従って、利用開始情報の内容が利用開始時期や、反復に変化した時期となっている個別データに負をラベル付ける。
また、ステップH10内のステップS2(図23参照)において前時刻データを生成する場合、利用開始情報の内容が「離反」になった時期を表していて、その時期が前時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。従って、現時刻データの場合と同様に、利用開始情報の内容が「未利用」や、利用開始時期や、反復に変化した時期となっている個別データには負をラベル付ける。
また、ステップH10内のステップT1(図24参照)においてテストデータを生成する場合、現時刻において「離反」になっていない個別データを抜き出して、その個別データの集合をテストデータとすればよい。ただし、用開始情報が「未利用」となっている個別データについては、テストデータに含める対象から除外する。
また、ステップH10内のステップT2において学習データを生成する場合、利用開始情報の内容が「離反」になった時期を表していて、その時期が現時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。従って、利用開始情報の内容が「未利用」や、利用開始時期や、反復に変化した時期となっている個別データには負をラベル付ける。
なお、上記の例では、前時刻データや学習データを生成する場合、着目している時刻において「反復」、「トライアル」および「潜在」の個別データについて負をラベル付けるが、負をラベル付ける対象を、着目している時刻において「反復」および「トライアル」の個別データのみとしてもよい。なお、負をラベル付ける場合を、「反復」と「トライアル」のみにするのか、「反復」と「トライアル」と「潜在」とするのかは、予め定められていてもよい。あるいは、ユーザによって指定されてもよい。
ステップT4では、予測用分類器を用いてテストデータに関して判定したラベルが「正」であるならば、「反復」から「離反」に変化すると予測し、「負」であるならば、「離反」のままであると予測すればよい。その他の動作については、上記の説明と同様である。
予測部61は、上記のように、「潜在」から次の段階(トライアル)に変化するか否か、「トライアル」から次の段階(反復)に変化するか否か、および、「反復」から次の段階(離反)に変化するか否かをそれぞれ予測すればよい。また、テストデータラベル判定部94は、予測の結果、「潜在」と予測された個別データの数、「トライアル」と予測された個別データの数、「反復」と予測された個別データの数、「離反」と予測された個別データの数をカウントし、各顧客状態に該当する顧客の予測数をそれぞれ求めてもよい。このように、各顧客状態の顧客数をカウントすることで、ターゲットの販売数を予測することができる。すなわち、ある時点で「トライアル」や「反復」に該当する顧客数を、その時点におけるターゲットの販売数と予測することができる。また、「離反」に該当する顧客数の変化から、「離反」の推移を予測することができる。
また、普及予測部90は、テストデータラベル判定部94が「潜在」、「トライアル」、「反復」の各顧客状態から次の段階の顧客状態に変化するか否かを予測した後、現時刻を一定の時間(Lと記す。)分増加した時刻を新たな現時刻となるように現時刻を更新する手段(図示せず。以下、現時刻更新部と記す。)を備え、現時刻を更新して上記の予測を行うことを繰り返して、ターゲットの普及の推移を予測してもよい。この場合、テストデータラベル判定部94は、予測結果を用いて、同様の処理を繰り返す。
「潜在」、「トライアル」、「反復」の各顧客状態から次の段階の顧客状態に変化するか否かを予測した後、現時刻更新部(図示せず)が現時刻を更新して、更新後の現時刻を用いて、再度同様の処理を行うことを繰り返すことで、将来の期間までに渡って、個々の顧客の顧客状態を予測することができ、各顧客状態に該当する顧客の数を予測することができる。すなわち、ターゲットの普及の推移を予測することができる。
なお、利用開始情報付加部89、現時刻データ生成部81、前時刻データ群生成部82、前時刻分類器群生成部83、誤差群算出部84、影響度算出部85、テストデータ生成部91、学習データ生成部92、予測用分類器生成部93、テストデータラベル判定部94、現時刻更新部(図示せず)は、例えば、プログラムに従って動作するCPUによって実現される。
また、処理終了前(例えば、ステップH10の後)、個別の顧客に対する顧客状態の時系列変化を、例えば、ディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりする出力手段(図示せず)を備えていてもよい。また、出力手段は、処理終了時に、顧客状態毎に顧客数をカウントし、「潜在」である顧客数の推移、「トライアル」である顧客数の推移、「反復」である顧客数の推移、「離反」である顧客数の推移などのグラフで表示してもよい。また、例えば、制御部31が、全体の顧客数Nから「潜在」と推定された顧客数を差し引くことにより、ターゲットの普及数を計算してもよい。そして、出力手段は、普及数の推移を表示してもよい。上述の出力手段(図示せず)は、例えば、プログラムに従って動作するCPUによって実現される。このCPUは、データ状態推定部21などとして動作するCPUと同一であってもよい。
また、第4の実施形態における顧客状態推定装置6が、第3の実施形態と同様に補正部41を備えていてもよい。そして、予測部61の処理の後、補正部41が各顧客状態毎に人数を補正してもよい。さらに、予測部61が、顧客状態毎の顧客数と実際のターゲットの販売数とを分析し、将来の販売数を予測してもよい。
本実施形態によれば、予測部61が、予測対象状態より前の段階の状態に該当する顧客が予測対象状態に変化するか否かを予測する。変動要因を考慮しながら、ターゲットに対して、個別顧客の売上データのない将来の顧客状態を予測することができる。また、顧客状態毎の将来の顧客数を予測することができる。この結果、時間の経過とともに変化する将来の需要を予測することができる。また、売上データなどあれば、将来の顧客数予測を行うことができるので、顧客状態推定システムのユーザは、専門的な知見がなくても将来の需要予測結果を得ることができる。
さらに、普及予測部90が備える現時刻更新部(図示せず)が現時刻を更新し、予測対象状態より前の段階の状態に該当する顧客が予測対象状態に変化するか否かを予測する処理を繰り返すことによって、ターゲットの利用を開始する顧客の推移を予測することができる。また、需要の推移を予測することができる。
実施形態5.
図25は、本発明の顧客状態推定システムの第5の実施形態の構成例を示すブロック図である。第4の実施形態と同様の構成要素については、図19と同一の符号を付し、詳細な説明を省略する。第5の実施形態の顧客状態推定システムは、売上データを記憶する売上DB1と、顧客の情報を含んだデータを記憶する顧客DB5と、販売促進情報を示すデータを記憶する販売促進特徴データベース(以下、販促DBと記す)7と、売上実績を用いて顧客の状態を推定する顧客状態推定装置9とを備える。
売上DB1が記憶する売上データは、第1から第4までの各実施形態と同様である。また、顧客DB5が記憶する顧客データは、第4の実施形態と同様である。
販促DB7は、販売促進データを記憶する記憶手段であり、販売促進データ記憶手段と呼ぶことができる。販売促進データは、個別の販売促進活動毎に定められた販売促進活動の内容を示すデータの集合である。販売促進活動の例として、広告を行う、値引きをする、などが挙げられるが、販売促進活動の内容は特に限定されない。販売促進データの例を図26に示す。販売促進データは、販売活動毎に、その販売促進活動の特性を表わす項目を1つ以上含む。この項目は、例えば、販売を促進しようとするターゲット、値引価格、元価格、競合商品またはサービスの価格、広告の種類、販売促進活動を行うのが休日であるかどうか、天気などである。これらの項目は、販売促進活動を識別するID(以下、販促IDと記す)に対応づけられている。販売促進データは、さらに、個別顧客毎に、販売促進活動を行なわなかった時(販促なし)、行なった時点(販促時点)、および販売促進活動が終了した以降の時点(販促後)における顧客状態を表わす項目を含む(図26参照)。なお、複数の店舗がある場合には、販促IDに、販売促進活動を実施した店舗の特徴などを含めてもよい。以降、販売促進IDがkである販売促進活動のことを、販促kと省略して記す。
顧客状態推定装置9は、制御部31と、データ状態推定部21と、分類器生成部22と、初期顧客状態推定部23と、データクラス予測部24と、顧客状態推定部25と、予測部61と、販促効果推定部71と、販促状態変化予測部72とを備え、販売促進の効果により、個別の顧客の顧客状態がどのように変化するかを予測する。
制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、顧客状態推定部25、および予測部61の動作は、第4の実施形態と同様である。
販促効果推定部71は、販売促進活動の特徴(販売促進活動の内容を表わす項目)が、キーボードなどの入力装置(図示せず)を介して、顧客状態推定システムのユーザから入力されると、その販売促進活動の項目を販促DB7に記憶させる。また、予測部61が求めたターゲットの普及の推定結果に基づいて、個別顧客の販促なしの顧客状態を販促DB7に記憶する。また、顧客状態推定部25による推定結果に基づいて、販促時点の顧客状態と販促後の顧客状態とを、それぞれ販促DB7に記憶する。
販促状態変化予測部72は、新たな販売促進活動の特徴が、キーボードなどの入力装置を介して、顧客状態推定システムのユーザから入力されると、販促DB7が記憶している販促データに基づいて、顧客状態推定部25で推定された個別顧客の顧客状態の変化を予測する。
次に、動作について説明する。図27は、販促効果推定部71の処理経過の例を示すフローチャートである。ここでは、説明のため、一定期間pの開始時点から販売促進活動を開始し、一定期間pの終了時点で販売促進活動が終了したとする。
販促効果推定部71は、販売促進活動の特徴が、例えばキーボードなどの入力装置(図示せず)を介して、顧客状態推定システムのユーザから入力されると、次のように動作する。まず、販促効果推定部71は、入力された販売促進活動の特徴を販促DB7に記憶させる(図27のステップI1)。販売促進活動の特徴は、例えば、値引き価格などのような販売促進活動の内容を表わす各項目である。販促効果推定部71は、新たに販促IDを定めて、入力された販売促進活動の特徴に対応づけて販促DB7に記憶させてもよい。
ステップI1の後、販促効果推定部71は、一定期間pにおける売上データを未知として、一定期間pにおける予測部61で予測された各顧客の顧客状態を、販促なしの顧客状態として販売促進データに追加して販促DB7に記憶させる(ステップI2)。具体的には、制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、顧客状態推定部25、および予測部61は、販売促進活動を行った一定期間pより前の売上データ(一定期間p−1以前の売上データ)を用いて、第4の実施形態と同様の動作を行い、予測部61は、一定期間pにおける顧客状態を予測する。販促効果推定部71は、その予測結果を販促なしの顧客状態として販促DB7に記憶させる。
ここでは、説明のために、一定期間pのみで販売促進活動を行なったと仮定したが、複数の一定期間で販売促進活動を行なった場合には、個別顧客に対し、複数の一定期間で最も多く予測された顧客状態などとすればよい。
次に、売上実績として実際に売上DB1に蓄積された売上データを用いて、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25が、一定期間pを顧客状態推定対象期間として、第1の実施形態と同様の処理を行う。この結果、顧客状態推定部25が、一定期間pにおける各顧客の顧客状態を推定すると、顧客状態推定部25は、その推定結果を各顧客の販促時点の顧客状態として販売促進データに追加して販促DB7に記憶させる(ステップI3)。ここでは、説明のために、一定期間pのみで販売促進活動を行なったと仮定したが、複数の一定期間で販売促進活動を行なった場合には、個別顧客に対し、複数の一定期間で最も多く推定された顧客状態などとすればよい。
次に、売上実績として実際に売上DB1に蓄積された売上データを用いて、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25が、一定期間p+1を顧客状態推定対象期間として、第1の実施形態と同様の処理を行う。この結果、顧客状態推定部25が、一定期間p+1における各顧客の顧客状態を推定すると、顧客状態推定部25は、その推定結果を各顧客の販促後の顧客状態として販売促進データに追加して販促DB7に記憶させる(ステップI4)。
この結果、図26に例示するように、販売促進活動の特徴と、各顧客毎の「販促なし」、「販促時点」、「販促後」の顧客状態が販促DB7に記憶される。
販促状態変化予測部72は、上記のように販売促進データが販促DB7に蓄積された後に、新たな販売促進活動の特徴が入力されると、顧客状態推定部25で推定された個別顧客の顧客状態の変化を予測する。図28は、販促状態変化予測部72の処理経過の例を示すフローチャートである。ここでは、説明のため、一定期間q+1の開始時点に新たな販売促進活動を行った場合における一定期間q+1での顧客状態を予測するものとする。また、販促DB7には、販促1、販促2、・・・販促KというK個の販売促進データが記憶されているものとし、新たな販促K+1の特徴が、例えばキーボードなどの入力装置を介して、顧客状態推定システムのユーザにより入力されたとする。
販促状態変化予測部72は、まず、i=1と初期化する(ステップJ1)。iは、顧客を指定するための変数である。次に、販促状態変化予測部72は、変数k、SimA、およびSimMaxについて、k=1、SimA=0、SimMax=0と初期化する(ステップJ2)。kは、販促データを指定するための変数である。SimAは、販促Kに最も類似した販売促進データを定めるための変数である。SimMaxは、販促Kと、その販促Kに最も類似した販売促進データとの類似度を表わす変数である。
販促状態変化予測部72は、顧客iの一定期間qにおける顧客状態と、販促kの顧客iの「販促なし」の顧客状態とを比較し、一致しているか否かを判定する(ステップJ3)。「顧客iの一定期間qにおける顧客状態」は、例えば、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25が一定期間qについて推定した顧客iの顧客状態である。
一致しているならば(ステップJ3におけるYes)、販促状態変化予測部72は、入力された新たな販促K+1と販促kとの類似度を計算する。この類似度をSim(K+1,k)と表す。さらに販促状態変化予測部72は、Sim(K+1,k)とSimMaxとを比較し、Sim(K+1,k)がSimMaxよりも大きいか否かを判定する(ステップJ4)。類似度の計算方法は、顧客状態推定システムに予め設定されていてもよい。あるいは、類似度の計算方法を指定する情報が顧客状態推定システムのユーザによって入力され、指定された計算方法で類似度を計算してもよい。例えば、販売促進データ(販促K+1,k)同士の特徴を表わす項目(例えば、値引価格など)を比較して、内容が一致する項目の数をカウントし、そのカウント結果を類似度としてもよい。
Sim(K+1,k)がSimMaxより大きければ、販促状態変化予測部72は、SimAの値をkの値に更新し、SimMaxの値をSim(K+1,k)の値に更新する(ステップJ5)。すなわち、これまでの類似度を超える類似度が得られたので、販促K+1に最も類似する販促データ、およびその類似度を更新する。
ステップJ3において一致していないと判定した場合(ステップJ3におけるNo)、およびステップJ4においてSim(K+1,k)がSimMax以下であると判定した場合、販促状態変化予測部72は、kの値を1インクリメントする(ステップJ6)。すなわち、販促K+1との類似度を求める販売促進データを変更する。
次に、販促状態変化予測部72は、kの値が、K(販促DB7に記憶された販売促進データの数)以下であるか否かを判定する(ステップJ7)。kの値がK以下である場合(ステップJ7におけるYes)、ステップJ3以降の処理を繰り返す。ステップJ3以降の処理を繰り返すことで、販促DB7に記憶された販売促進データの中から販促K+1に最も類似するものを特定する。
kの値がKを超えていれば(ステップJ7におけるNo)、販促状態変化予測部72は、SimAの値が0であるか否かを判定する(ステップJ8)。
SimA=0である場合(ステップJ8におけるYes)、ステップJ5を通過しておらず、販促K+1に類似する販売促進データが存在しなかったことを意味する。この場合、販促状態変化予測部72は、顧客iの一定期間q+1における顧客状態を予測部61を用いて予測した結果を、顧客iの一定期間q+1における顧客状態と定める(ステップJ9)。すなわち、ステップJ9では、顧客iの一定期間q+1における顧客状態を予測部61が予測し、販促状態変化予測部72は、その予測結果を、顧客iの一定期間q+1における顧客状態と定める。
SimAの値が0でない場合(ステップJ8におけるNo)、販促状態変化予測部72は、一定期間q+1での顧客iの顧客状態は販促SimAにおける顧客iの販促時点(図26参照)の顧客状態であると定める(ステップJ10)。
次に、販促状態変化予測部72は、変数iの値を1インクリメントする(ステップJ11)。すなわち、一定期間q+1における顧客状態を推定する対象となる顧客を切り替える。次に、販促状態変化予測部72は、iが全顧客数N以下であるか否かを判定し(ステップJ12)、iがN以下であればステップJ2以降の処理を繰り返す。iがNより大きければ、全ての顧客についてステップJ2以降の処理を完了したことになるので、処理を終了する。
また、例えば、ステップJ12でiがNを超えたと判定した後に、第4の実施形態で示した各種出力態様で、情報を出力する出力手段(図示せず)を備えていてもよい。
また、図28に示す処理では、ステップJ10において、販促状態変化予測部72は、一定期間q+1での顧客iの顧客状態は販促SimAにおける顧客iの販促時点(図26参照)の顧客状態であると定める。この処理にあわせて、新たな販売促進活動を行った一定期間q+1の次の一定期間q+2におけるその顧客iの顧客状態が、販促DB7に記憶された販促SimAにおける顧客iの販売後(図26参照)の顧客状態になっていると定めてもよい。すなわち、販売促進活動を行う一定期間q+1における顧客iの顧客状態については、販促DB7に記憶されたその顧客の「販促時点」の顧客状態であるとし、販売促進活動後の一定期間q+2における顧客iの顧客状態については、販促DB7に記憶されたその顧客の「販促後」の顧客状態であると予測してもよい。また、ステップJ10において、販売促進活動を行っている時点での顧客状態のみを予測し、その販売促進活動後の顧客状態を予測対象外とする場合には、販促効果推定部71は、図27に示すステップI4の処理を行わずに、「販促後」の顧客状態を販促DB7に記憶させておかなくてもよい。
本実施形態によれば、販促DB7に記憶させる販売促進データが入力された場合、販促効果推定部71が、その販売促進データに対して、各顧客の「販促なし」、「販促時点」、「販促後」の顧客状態を追加して顧客DB7に記憶させる。そして、販売促進活動後の顧客の顧客状態変化を調べる対象となる販売促進データが入力されると、販促状態変化予測部72が、顧客DB7に蓄積された販売促進データを用いて、その販売促進活動後の各顧客の顧客状態を推定する。従って、本実施形態では、ターゲットに対して、新たな販売促進を行った場合の顧客状態を予測することができる。
実施形態6.
図29は、本発明の顧客状態推定システムの第6の実施形態の構成例を示すブロック図である。第4の実施形態と同様の構成要素については、図19と同一の符号を付し、詳細な説明を省略する。第6の実施形態の顧客状態推定システムは、売上データを記憶する売上DB1と、顧客の情報を含んだデータを記憶する顧客DB5と、顧客の顧客状態を予測する顧客状態推定装置10とを備える。
売上DB1が記憶する売上データは、第1から第5までの各実施形態と同様である。また、顧客DB5が記憶する顧客データは、第4および第5の実施形態と同様である。
顧客状態推定装置10は、制御部31と、データ状態推定部21と、分類器生成部22と、初期顧客状態推定部23と、データクラス予測部24と、顧客状態推定部25と、予測部111とを備え、将来の個別顧客の顧客状態を予測する。制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25の動作は、第4の実施形態と同様である。
予測部111は、制御部31と、データ状態推定部21と、分類器生成部22と、初期顧客状態推定部23と、データクラス予測部24と、顧客状態推定部25とで推定した顧客の顧客状態の推移と顧客DB5とに基づいて、個別の顧客の顧客状態が予測対象状態に変化するか否かを予測する。
予測部111は、スコアを定めることが可能な分類器を用いてスコアを計算し、そのスコアが閾値以上であるか否かを判定することにより、個別の顧客の顧客状態が予測対象状態に変化するか否かを予測する。このスコアは、ラベルが正となる確からしさであり、顧客状態予測用スコアと呼ぶことができる。予測部111は、まず、最適な閾値を求める処理を行い、その閾値を用いて顧客状態が予測対象状態に変化するか否かを予測する。
図30は、第6の実施形態の予測部の例を示すブロック図である。予測部111は、利用開始情報付加部89と、普及率計算部121と、閾値計算部140と、閾値関数計算部126と、閾値確定部127と、状態判定用分類器生成部129と、顧客状態判定部130とを備える。
利用開始情報付加部89は、第4の実施形態における利用開始情報付加部89と同様である。すなわち、顧客DB5に記憶された各顧客の個別データに利用開始情報を付加する。利用開始情報は、顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表す。また、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す。本実施形態では、予測対象状態に変化していないことを、第4の実施形態と同様に、「未利用」という文字列で表すこととする。
普及率計算部121は、期間毎の普及率を計算する。第6の実施形態においても、第4の実施形態等と同様に、与えられた一定期間数をT個とし、それぞれの一定期間を、一定期間1、一定期間2、・・・、一定期間Tと記すこととする。そして、個々の一定期間の長さがいずれもΔtで同じであるものとする。普及率計算部121は、より具体的には、それぞれの一定期間1〜Tの開始時刻における普及率を計算する。普及率とは、既に予測対象状態に変化済みとなった顧客の割合である。
閾値計算部140は、閾値推定用分類器生成部124と閾値推定部125とを有し、一定期間1〜Tに関して、それぞれ最適な閾値を推定する。
閾値推定用分類器生成部124は、一定期間の開始時刻で既に予測対象状態に変化済みになっている顧客の個別データに第1ラベルをラベル付け、まだ予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付けたデータを生成する。このデータを、閾値推定用学習データと記す。第4の実施形態で説明したように、第1ラベルは、予測対象状態以降の段階の顧客状態を示す情報であり、第2ラベルは、予測対象状態よりも前の段階の顧客状態を示す情報である。なお、この閾値推定用学習データと、前述の分類器生成部22が生成する学習データと、学習データ生成部92が生成する学習データとは、それぞれ別のデータである。閾値推定用分類器生成部124は、閾値推定用学習データに基づいて、閾値を推定するための分類器を生成する。この分類器を、他の分類器と区別して、閾値推定用分類器と記す。閾値推定用分類器は、顧客状態予測スコアと同様のスコアを定めることが可能な分類器である。閾値推定用分類器の具体例については後述する。閾値推定用分類器生成部124は、一定期間1〜Tについて、それぞれ閾値推定用学習データおよび閾値推定用分類器を生成する。
以下、第4の実施形態と同様に、第1ラベルを正と記し、第2ラベルを負と記す。
閾値推定部125は、一定期間の終了時刻で既に予測対象状態に変化済みになっている顧客の個別データに正をラベル付け、まだ予測対象状態に変化していない顧客の個別データに負をラベル付けたデータを生成する。このデータを、閾値推定用予測データと記す。閾値推定部125は、閾値推定用予測データと閾値推定用分類器とを用いて、閾値推定用予測データ内の各顧客の個別データのスコアを計算する。そして、閾値推定部125は、閾値を変動させ、各閾値について、閾値推定用予測データ内の各個別データに対するラベルを予測する。すなわち、スコアが閾値以上であれば正であると予測し、スコアが閾値未満であれば負と予測する。さらに、閾値推定部125は、閾値推定用予測データで正がラベル付けられた顧客数(具体的には顧客の個別データの数)と、正と予測された顧客数との差が最小となるときの閾値を、最適な閾値として推定する。閾値推定部125は、一定期間1〜Tについて、閾値推定用予測データを生成し、最適な閾値を推定する。値を変動させた各閾値は、閾値の候補ということができ、閾値推定部125は、その閾値の候補から、最適な閾値を推定する。
閾値関数計算部126は、一定期間1〜Tについてそれぞれ推定された最適な閾値と、その一定期間1〜Tについてそれぞれ計算された普及率とに基づいて、普及率を変数とする閾値の関数を求める。すなわち、普及率を与えたときに閾値が確定する関数を推定する。
閾値確定部127は、上記の関数を用いて、設定された時刻における最適な閾値を計算する。
状態判定用分類器生成部129は、設定された時刻において、既に予測対象状態に変化済みになっている顧客の個別データに正をラベル付け、まだ予測対象状態に変化していない顧客の個別データに負をラベル付けたデータを生成する。このデータを、状態判定用学習データと記す。状態判定用学習データと、前述の閾値推定用学習データと、前述の分類器生成部22が生成する学習データと、学習データ生成部92が生成する学習データとは、それぞれ別のデータである。状態判定用分類器生成部129は、状態判定用学習データに基づいて、分類器を生成する。この分類器は、次に説明する状態判定用予測データに含まれる顧客の個別データに対するラベルを判定するための分類器であり、他の分類器と区別して、状態判定用分類器と記す。状態判定用分類器は、スコア(顧客状態予測用スコア)を定めることが可能な分類器である。
顧客状態判定部130は、状態判定用学習データのうちで、負とラベル付けられた顧客の個別データを抽出する。この個別データの集合を、状態判定用予測データと記す。さらに、顧客状態判定部130は、状態判定用予測データに含まれる各顧客の個別データに対するスコアを、状態判定用分類器によって定め、そのスコアと閾値確定部127によって計算された閾値とにより、各顧客のラベルを判定する。顧客状態判定部130は、このラベル判定により、顧客の状態が予測対象状態に変化するか否かを判定する。すなわち、状態判定用予測データに含まれる顧客の個別データに対する判定結果が正であれば、その顧客は予測対象状態に変化すると判定(予測)することになる。一方、状態判定用予測データに含まれる顧客の個別データに対する判定結果が負であれば、その顧客はまだ予測対象状態に変化しないと判定(予測)することになる。
制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、顧客状態推定部25、および予測部111は、例えば、プログラムに従って動作するCPUによって実現される。すなわち、CPUが、プログラムを読み込み、そのプログラムに従って、制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、顧客状態推定部25、および予測部111として動作してもよい。
次に、動作について説明する。まず、制御部31、データ状態推定部21、分類器生成部22、初期顧客状態推定部23、データクラス予測部24、および顧客状態推定部25が処理を行い、それぞれの一定期間毎に、個別の顧客の顧客状態を推定する。この動作は、第2の実施形態で説明したステップF1〜F4の動作と同様である。
図31は、第6の実施形態における予測部111の処理経過の例を示すフローチャートである。以下の説明では、「トライアル」を予測対象状態として、「潜在」であった顧客が「トライアル」に変化するか、あるいは、「トライアル」に変化せずに「潜在」のままとなるかを予測する場合を例にして説明する。
予測部111の利用開始情報付加部89は、顧客DB5に記憶された全顧客の個別データに対して、それぞれ利用開始情報を付加する(ステップU1)。この動作は、第4の実施形態における利用開始情報付加部89と同様である。本例では、「トライアル」が予測対象状態であるので、第4の実施形態で説明したステップH1〜H9(図21参照)と同様の動作を行えばよい。
次に、普及率計算部121は、一定期間1、一定期間2、・・・、一定期間Tについて、一定期間の開始時刻における普及率を計算する(ステップU2)。本例では、一定期間の開始時刻と、顧客の個別データにおける利用開始情報を比較する。そして、利用開始情報の示す時刻が一定期間の開始時刻以前となっている顧客の個別データの数をカウントし、顧客の個別データ数(すなわち顧客数)に対するそのカウント結果の割合を普及率として計算すればよい。
次に、閾値計算部140は、一定期間1、一定期間2、・・・、一定期間Tについて、一定期間の開始時刻における最適な閾値を推定する(ステップU3)。図32は、ステップU3の処理経過の例を示すフローチャートである。
ここでは、一定期間1、一定期間2、・・・、一定期間Tのうち、閾値を推定しようとしている一定期間を一定期間iと記す。まず、閾値推定用分類器生成部124は、顧客DB5に記憶された顧客データを読み込み、一定期間iの開始時刻に基づいて、その顧客データに含まれる各顧客の個別データそれぞれに対して、正または負をラベル付けることによって閾値推定用学習データを作成する(ステップV1)。ステップV1において、閾値推定用分類器生成部124は、顧客の個別データの利用開始情報が示す時刻が、一定期間iの開始時刻以前であるならば、その個別データに正をラベル付ける。また、顧客の個別データの利用開始情報が示す時刻が、一定期間iの開始時刻よりも後であるか、または、利用開始情報が「未利用」であるならば、その個別データに負をラベル付ける。ステップV1の処理は、一定期間iの開始時刻において、予測対象状態(「トライアル」)になっている顧客の個別データに正をラベル付け、予測対象状態になっていない顧客の個別データに負をラベル付けたデータを生成する処理であるということができる。
次に、閾値推定部125は、顧客DB5に記憶された顧客データを読み込み、一定期間iの終了時刻に基づいて、その顧客データに含まれる各顧客の個別データそれぞれに対して、正または負をラベル付けることによって閾値推定用予測データを作成する(ステップV2)。ステップV2において、閾値推定部125は、顧客の個別データの利用開始情報が示す時刻が、一定期間iの終了時刻以前であるならば、その個別データに正をラベル付ける。また、顧客の個別データの利用開始情報が示す時刻が、一定時刻iの終了時刻よりも後であるか、または、利用開始情報が「未利用」であるならば、その個別データに負をラベルづける。ステップV2の処理は、一定期間iの終了時刻において、予測対象状態(「トライアル」)になっている顧客の個別データに正をラベル付け、予測対象状態になっていない顧客の個別データに負をラベル付けたデータを生成する処理であるということができる。
次に、閾値推定用分類器生成部124は、ステップV1で作成した閾値推定用学習データを用いて、閾値推定用分類器を生成する(ステップV3)。閾値推定用分類器は、スコアを定めることが可能な分類器であり、具体的には、閾値の候補と比較されるスコアを定めるために用いられる。
スコアを定めることが可能な分類器の例を説明する。このような分類器として、複数の決定木の組が挙げられる。このように複数の決定木の組を分類器とした場合、その決定木毎にラベルが正であるか負であるかを判定し、決定木の総数に対して、判定結果として正が得られた決定木の数の割合をスコアとすることができる。このような分類器は、アンサンブル学習の一種であるバギングを決定木に適用した分類器であると言える。本実施形態では、閾値推定用分類器生成部124が閾値推定用分類器として複数の決定木を生成する場合を例にして説明する。ただし、閾値推定用分類器は、複数の決定木の組に限定されず、重回帰分析、回帰木、ニューラルネットワーク、サポートベクタマシン、ベイジアンネットワーク等の出力が連続値となるデータマイニング手法のいずれか、あるいはその組み合わせ等により分類器を生成してもよい。
閾値推定用分類器生成部124は、ステップV3において、閾値推定用学習データから重複を許して一部の顧客の個別データを取り出して、その個別データの集合を用いて決定木を生成する。閾値推定用分類器生成部124は、この処理を複数回繰り返すことにより、複数の決定木を生成し、その複数の決定木の組み合わせを一つの閾値推定用分類器とする。例えば、閾値推定用学習データから取り出す顧客の個別データ数をK個とすると、閾値推定用分類器生成部124は、閾値推定用学習データから重複を許してK個の個別データを取り出し、K個の個別データから決定木を生成することを繰り返せばよい。例えば、この繰り返しを500回行えば、500個の決定木が作成される。
取り出した顧客の個別データから決定木を作成する処理は、既に説明した決定木作成動作と同様に行えばよい。すなわち、閾値推定用分類器生成部124は、閾値推定用学習データから顧客の個別データを複数個取り出すと、どの項目(本実施形態では顧客の属性を表す項目)で最初に分割するのかを決定する。このとき、閾値推定用分類器生成部124は、項目1〜Nの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択すればよい。評価値として、例えば、分割前のノードのエントロピーと、分割後のエントロピーの差を用いればよい。分割前のノードのエントロピー、および分割後のエントロピーの計算方法は、既に説明した計算方法と同様であり、説明を省略する。閾値推定用分類器生成部124は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次繰り返し、所定の条件が満たされたときには、ノードの分割を停止する。そして、閾値推定用分類器生成部124は、このようにして得た木構造の決定木に対して、枝刈りを行うことにより、決定木を生成する。上記の所定の条件や枝刈りの処理も、第1の実施形態で示した所定の条件や枝刈り処理と同様であり、説明を省略する。
閾値推定用分類器生成部124は、閾値推定用学習データから取り出す顧客の個別データの組を変えて、決定木を生成する処理を繰り返し、その決定木の集合を閾値推定用分類器とする。また、閾値推定用分類器生成部124は、一定期間1〜Tそれぞれについて、閾値推定用分類器を生成する。
ステップV3で閾値推定用分類器が生成された後、閾値推定部125は、閾値推定用予測データと閾値推定用分類器とを用いて、閾値推定用予測データに含まれる各顧客の個別データに対するスコアを計算する(ステップV4)。ここでは、一定期間iの閾値推定用分類器を用いてスコアを計算する場合を例にして説明するが、一定期間1〜Tそれぞれについて、同様にスコアを計算する。
ステップV4において、閾値推定部125は、閾値推定用予測データに含まれる個々の顧客の個別データ毎に閾値推定用分類器を用いてスコアを求める場合、例えば、以下のように処理を行えばよい。本例では、閾値推定用分類器は複数の決定木の組であり、閾値推定部125は、個々の決定木毎に、顧客の個別データに対するラベルの判定を行い、正と判定された回数を、判定回数で除算することによって、スコアを計算する。換言すれば、正という判定が得られた決定木の数を、閾値推定用分類器をなす決定木の総数で除算した値をスコアとする。例えば、閾値推定用分類器として500個の決定木を生成した場合、閾値推定部125は、顧客の個別データに対して、それぞれの決定木を用いてラベル判定を行う。その結果、正と判定された回数をX回とすると、スコアとしてX/500を求める。
閾値推定部125は、閾値推定用予測データに含まれる個別データ毎にそれぞれスコアを求める。さらに、ステップV4において、閾値推定部125は、個別データ毎にスコアを求める処理を、一定期間1〜Tそれぞれに関して行う。
続いて、閾値推定部125は、一定期間1〜Tそれぞれに関して、以下の処理を実行して、最適な閾値を推定する(ステップV5)。閾値推定部125は、スコアが取りうる範囲内で、閾値を変動させて、閾値の候補とする。以下、閾値の候補を単に閾値候補と記す。例えば、上記のようにスコアを求める場合、スコアの取り得る最小値は0であり、最大値は1である。この場合、閾値候補を0から1までの範囲で変動させればよい。閾値推定部125は、一つの閾値推定用分類器により求めた各個別データのスコアと閾値候補とを比較して、スコアが閾値以上となった顧客の個別データに対して、ラベルが正であると予測し、スコアが閾値未満となった顧客の個別データに対して、ラベルが負であると予測する。そして、閾値推定部125は、正であると予測した個別データの数と、閾値推定用予測データにおいて正とラベル付けられていた顧客の個別データの数との差を、閾値候補毎に計算し、正であると予測した個別データの数と、閾値推定用予測データにおいて正とラベル付けられていた顧客の個別データの数との差が最小となる閾値候補を、最適な閾値(一定期間の開始時刻における最適な閾値)として推定する(ステップV5)。閾値推定部125は、同様の処理を行って、一定期間1〜T毎に最適な閾値を推定する。
図32に示すステップU3では、閾値計算部140が上記のステップV1〜V5を行うことによって、それぞれの一定期間の開始時刻における最適な閾値を推定する。
ステップU3の後、閾値関数計算部126は、ステップU3で一定期間1〜Tについてそれぞれ推定された最適な閾値と、その一定期間1〜Tについてそれぞれ計算された普及率とから、普及率を変数とする閾値の関数を推定する(ステップU4)。閾値関数計算部126は、普及率をxとし、閾値をyとしたときに、y=f(x)となる閾値関数fを推定する。例えば、関数fが、以下に示す式(6)で表されるとみなし、式(6)におけるパラメタa,bを推定すればよい。
y=f(x)=a×x+b 式(6)
式(6)において、a,bは推定すべきパラメタである。ステップU2,U3の結果、普及率xおよび閾値yの組み合わせがT組求められている。閾値関数計算部126は、この組み合わせから、最小二乗法により、式(6)のa,bを計算してもよい。この計算は、式(3)におけるa,bを最小二乗法で求める場合の計算と同様であり、式(4)、式(5)におけるR[t]をxに置き換え、S[t]をyに置き換えて、a,bを計算すればよい。パラメタa,bを求めることにより、閾値関数が特定される。
なお、式(6)におけるパラメタaの値は、商品またはサービスの普及率が時間の経過とともに急激に上昇するなら低くなり、普及率の上昇が緩やかならば高くなる。aは、例えば、0.5等の値となる。パラメタbは、普及開始段階での普及率が急激に上昇するなら低く、普及率がほとんど上昇しないなら低くなる値であり、0以上1以下で、例えば0.05等の小さな値となる。
次に、普及の推移に周期変動がある場合における閾値関数の例を示す。例えば、普及の推移に1週間(7日間)毎の周期があるとする。この場合、一定期間iの開始時刻(普及率xとなる時刻)をt日目とし、閾値yは、普及率xおよび時刻tによって、以下の式(7)で表されるとみなして、式(7)のパラメタa,b,cを推定してもよい。
y=f(x)=a×x+b+c×sin(2π×(t−t)/7) 式(7)
式(7)におけるtは、0日目が周期内のどの日に相当するかを調整するための値である。例えば、1週間のうちで土曜日に、最も閾値が低くなるとする。この場合、0日目が土曜日であるならば、t=0とし、0日目が金曜日であるならば、t=1と設定する。
ここでは、閾値関数が式(6)や式(7)で表される場合を例にして説明したが、閾値関数は、式(6),(7)に限定されない。推定すべきパラメタを含む閾値関数は、キーボード等の入力装置(図示略)等を介して、顧客状態推定システムのユーザに入力されてもよい。
ステップU4で閾値関数を推定した後、閾値確定部127は、閾値を確定しようとする時刻を設定する(ステップU5)。ステップU5で設定する時刻を、以下、時刻tと記す。この時刻tは、利用開示情報で示された時刻との前後関係を判定できる時刻(すなわち、予測対象状態に変化したか否かを判定できる時刻)であればよい。本例では、閾値確定部127が、一定期間Tの終了時刻を、時刻tに設定する場合を例にして説明するが、他の態様で時刻tを設定してもよい。例えば、キーボード等の入力装置(図示略)等を介して指定された時刻を、時刻tに設定してもよい。
次に、閾値確定部127は、時刻tにおける普及率を求め、その普及率と閾値関数とから、時刻tにおける閾値を計算する(ステップU6)。ステップU6において、閾値確定部127は、利用開始情報の示す時刻が時刻t以前となっている顧客の個別データの数をカウントし、顧客の個別データ数(すなわち顧客数)に対するそのカウント結果の割合を普及率として計算すればよい。さらに、閾値確定部127は、その普及率を閾値関数に代入して、時刻tにおける閾値を計算すればよい。
ステップU6の次に、状態判定用分類器生成部129は、状態判定用学習データを作成し、顧客状態判定部130は、状態判定用予測データを作成する(ステップU7)。
ステップU7において、状態判定用分類器生成部129は、顧客DB5に記憶された顧客データを読み込み、時刻tで、既に予測対象状態に変化済みになっている顧客の個別データに正をラベル付け、まだ予測対象状態に変化していない顧客の個別データに負をラベル付けることによって、状態判定用学習データを作成する。具体的には、状態判定用分類器生成部129は、顧客の個別データの利用開始情報が示す時刻が時刻t以前であるならば、その個別データに正をラベル付け、顧客の個別データの利用開始情報が示す時刻が時刻tよりも後であるか、または、利用開始情報が「未利用」であるならば、その個別データに負をラベル付ける。
また、顧客状態判定部130は、上記のように生成された状態判定用学習データから、負とラベル付けられた顧客の個別データを抽出し、抽出したデータの集合を状態判定用予測データとする。
次に、状態判定用分類器生成部129は、状態判定用学習データに基づいて状態判定用分類器を生成する(ステップU8)。ステップU8の動作は、ステップV3(図32参照)で閾値推定用分類器を生成する動作と同様である。例えば、状態判定用分類器生成部129は、状態判定用学習データから重複を許して一部の顧客の個別データを取り出し、その個別データの集合を用いて決定木を生成することを繰り返して、複数の決定木を生成する。この複数の決定木を状態判定用分類器とすればよい。取り出した顧客の個別データから決定木を作成する処理は、既に説明した決定木作成動作と同様であり、説明を省略する。
ステップU8の後、顧客状態判定部130は、状態判定用予測データに含まれている個々の個別データ毎に、状態判定用分類器を用いてスコアを計算する(ステップU9)。ステップU9の動作は、ステップV4(図32参照)でスコアを計算する動作と同様である。本例では、状態判定用分類器は複数の決定木の組であり、顧客状態判定部130は、個々の決定木毎に、顧客の別データに対するラベルの判定を行い、正と判定された回数を、判定回数で除算することによって、スコアを計算する。すなわち、正という判定が得られた決定木の数を、状態判定用分類器をなす決定木の総数で除算した値をスコアとする。顧客状態判定部130は、状態判定用予測データ内の各個別データについて、同様にそれぞれスコアを計算する。
次に、顧客状態判定部130は、ステップU6で求めた閾値と、ステップU9で顧客の個別データ毎に求めたスコアとを比較して、顧客の状態が予測対象状態(トライアル)に変化するかを予測する(ステップU10)。顧客状態判定部130は、スコアが閾値以上である顧客については、時刻t+Δtに予想対象状態に変化すると予測し、スコアが閾値未満である顧客については現状の状態(すなわち「潜在」)のままで、時刻t+Δtにおいて状態が変化しないと予測する。
また、利用開始情報付加部89は、時刻t+Δtにおいて状態が「トライアル」に変化すると判定した顧客の利用開始情報を更新してもよい。すなわち、「潜在」であった顧客の利用開始情報は「未利用」となっているが、時刻t+Δtに「トライアル」に変化すると予測された場合、その利用開始情報を、商品またはサービスの利用開始時期「t+Δt」に更新してもよい。予測部111は、顧客DB5に記憶された顧客の個別データにおける利用開始情報を更新した後、t+Δtを新たな設定時刻とし、その設定時刻に関してステップU6〜U10を、同様に行ってもよい。この動作を繰り返すことで、「潜在」状態の顧客が「トライアル」に変化するかをΔt刻みで予測することができる。
ここでは、「潜在」から次の段階(トライアル)に変化するか否かを予測する場合を例にして説明したが、「トライアル」から次の段階(反復)に変化するか否か、および、「反復」から次の段階(離反)に変化するか否かについても、同様の処理で予測してもよい。また、顧客状態判定部130は、予測の結果、「潜在」と予測された個別データの数、「トライアル」と予測された個別データの数、「反復」と予測された個別データの数、「離反」と予測された個別データの数をカウントし、各顧客状態に該当する顧客の予測数をそれぞれ求めてもよい。この点は、第4の実施形態と同様である。
また、第5の実施形態における予測部61(図25)として、第6の実施形態における予測部111を用いてもよい。
第6の実施形態によれば、予測部111が、予測対象状態より前の段階の状態に該当する顧客が予測対象状態に変化するか否かを予測する。よって、第4の実施形態と同様に、ターゲットに対して、個別顧客の売上データのない将来の顧客状態を予測することができる。また、顧客状態毎の将来の顧客数を予測することができ、その結果、時間の経過とともに変化する将来の需要を予測することができる。また、売上データ等があれば、将来の顧客数予想を行うことができるので、顧客状態推定システムのユーザは、専門的な知見がなくても将来の需要予測結果を得ることができる。
また、顧客状態の変化に、1週間や1日などの周期変動がある場合にも、式(7)に例示するように、周期変動を含む関数を定めることで、周期変動を考慮して顧客状態を予測することができる。
次に、本発明の概要について説明する。図33は、本発明の概要を示すブロック図である。本発明の顧客状態推定システムは、売上データ記憶手段100と、データ毎状態推定手段101と、分類器生成手段102と、初期顧客状態推定手段103と、ラベル予測手段104と、顧客状態推定手段105とを備える。
売上データ記憶手段100(例えば、売上DB1)は、商品またはサービスの販売時における販売条件(例えば、販売年、月、日など)と、商品またはサービスの販売数または販売の有無を示す販売数情報と、商品またはサービスを購入した顧客を示す顧客識別情報(例えば、顧客ID)とを対応づけた売上データを記憶する。
データ毎状態推定手段101(例えば、データ毎状態推定手段101)は、個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定する。
分類器生成手段102(例えば、分類器生成部22)は、各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する。
初期顧客状態推定手段103(例えば、初期顧客状態推定部23)は、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段101が判定した顧客状態が反復または離反である場合、その最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段101が判定した顧客状態が反復または離反以外である場合、その最後の売上データが示す顧客の顧客状態を、データ毎状態推定手段101が推定した顧客状態とする。
ラベル予測手段104(例えば、データクラス予測部24)は、売上データのうち、初期顧客状態推定手段103に顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測する。
顧客状態推定手段105(例えば、顧客状態推定部25)は、予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定手段103に顧客状態が未定とされた顧客の顧客状態を推定する。
以上のような構成により、顧客が商品やサービスを購入した実績に基づいて、ターゲットについて、顧客毎に所定期間における顧客状況を推定することができる。
また、上記の実施形態には、複数の顧客状態推定対象期間を指定する期間指定手段(例えば、制御部31)を備え、初期顧客状態推定手段103が、指定された顧客状態推定対象期間毎に顧客状態を推定し、ラベル予測手段104が、指定された顧客状態推定対象期間毎に予測用データを作成して、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測し、顧客状態推定手段105が、指定された顧客状態推定対象期間毎に、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態を推定する構成が開示されている。
そのような構成によれば、個別の顧客の顧客状態の時系列変化を推定することができる。
また、上記の実施形態には、少なくとも一の顧客状態についてその顧客状態に該当する顧客の数を顧客状態推定対象期間毎にカウントし、その顧客状態に該当する顧客数の推移に応じて、各顧客状態推定対象期間における顧客数を補正する補正手段(例えば、補正部41)を備える構成が開示されている。
そのような構成によれば、その顧客状態に該当する顧客数をより正確に推定することができる。
また、上記の実施形態には、顧客の属性を表わす1つ以上の項目を顧客毎に記憶する顧客データ記憶手段(例えば、顧客DB5)と、各顧客の顧客状態と、顧客データ記憶手段に記憶された各顧客毎の属性とを参照して、より前の顧客状態から変化するか否かを予測する対象となる予測対象状態に関して、当該予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測する予測手段(例えば、予測部61)を備える構成が開示されている。そのような構成によれば、将来の顧客状況を予測することができる。
また、上記の実施形態には、予測手段(例えば、予測部61が備えるテストデータラベル判定部94)が、予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測した場合に、予測結果となる各顧客状態毎に、該当する顧客数をカウントする構成が開示されている。そのような構成によれば、ターゲットの需要を予測することができる。
また、上記の実施形態には、販売促進活動の内容を示すデータである販促データを記憶する販促データ記憶手段(例えば、販促DB7)と、販促データが与えられたときに、顧客状態推定手段105によって推定された販売促進活動の期間における顧客状態(例えば、図26に示す「販促時点」の顧客状態)を販促データに対応づけて販促データ記憶手段に記憶させる(例えば、ステップI3の動作を行う)販促データ登録手段(例えば、販促効果推定部71)と、顧客状態を予測すべき販売促進活動期間における販促データが与えられたときに、与えられたその販促データに最も類似する販促データを販促データ記憶手段から特定し、その販促データに対応づけられた顧客状態を、予測すべき販売促進活動期間における顧客状態であると予測する販促期間顧客状態予測手段(販促状態変化予測部72)とを備える構成が開示されている。そのような構成によれば、販売促進活動を行う場合に、その販売促進活動時点の顧客状態を予測することができる。
また、上記の実施形態には、予測手段が、顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す1つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加手段(例えば、利用開始情報付加部89)と、顧客が予測対象状態に変化するか否かの判定対象時刻を定める時刻として用いられるとともに、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻としても用いられる現時刻と、現時刻の一定時間前を指定するための時間間隔と、影響度の候補である複数の仮影響度とが入力され、現時刻から時間間隔前の時刻である前時刻を計算し、現時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付けた現時刻データを生成する現時刻データ生成手段(例えば、現時刻データ生成部81)と、個々の仮影響度毎に、前時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付け、第1ラベルをラベル付けた顧客の個別データ数を仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成手段(例えば、前時刻データ群生成部82)と、個々の前時刻データ毎に、顧客の属性を表す項目から当該顧客の個別データに第1ラベルと第2ラベルのいずれをラベル付けるかを判定するルールである前時刻分類器を前時刻に基づいて生成する前時刻分類器群生成手段(例えば、前時刻分類器群生成部83)と、前時刻データ毎に生成された個々の前時刻分類器毎に、当該前時刻分類器と現時刻データ内の各顧客の個別データの項目とから現時刻データ内の顧客の個別データにラベル付けられるラベルを予測し、予測結果と現時刻データとの誤差を算出する誤差群算出手段(例えば、誤差群算出部84)と、個々の前時刻分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が1つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、複数の仮影響度に基づいて影響度を定める影響度算出手段(例えば、影響度算出部85)と、現時刻で予測対象状態に変化していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成手段(例えば、テストデータ生成部91)と、現時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付け、第1ラベルをラベル付けた顧客の個別データ数を影響度に応じて変動させたデータである学習データを生成する学習データ生成手段(例えば、学習データ生成部92)と、顧客の属性を表す項目から当該顧客の個別データに第1ラベルと第2ラベルのいずれをラベル付けるかを判定するルールである予測用分類器を生成する予測用分類器生成手段(例えば、予測用分類器生成部93)と、予測用分類器と、テストデータ内の各顧客の個別データの項目とから、テストデータ内の個別データに対するラベルを判定するテストデータラベル判定手段(例えば、テストデータラベル判定部94)とを有する構成が開示されている。
また、上記の実施形態には、予測手段が、顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す1つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加手段(例えば、利用開始情報付加部89)と、予測対象状態に変化済みの顧客の割合である普及率を期間毎に計算する普及率計算手段(例えば、普及率計算部121)と、顧客が予測対象状態より前の状態から予測対象状態に変化するか否かを判定するための状態判定用分類器であって、予測対象状態に変化する確からしさであるスコアを導出可能な状態判定用分類器を、各顧客の属性と利用開始情報とから生成する状態判定用分類器生成手段(例えば、状態判定用分類器生成部129)と、状態判定用分類器により導出されるスコアと比較される閾値の最適値を、期間毎に計算する閾値計算手段(例えば、閾値計算部140)と、期間毎の普及率および期間毎の閾値の最適値とから、普及率を変数とする閾値の関数を求める関数計算手段(例えば、閾値関数計算部126)と、指定された時刻における普及率を関数に代入することにより、指定された時刻における閾値を特定する閾値特定手段(例えば、閾値確定部127)と、指定された時刻で予測対象状態より前の状態の顧客の属性と、状態判定用分類器とからスコアを導出し、当該スコアが、閾値特定手段によって特定された閾値以上であれば、顧客が予測対象状態に変化すると判定する顧客状態判定手段(例えば、顧客状態判定部130)とを有する構成が開示されている。
本発明は、商品またはサービスの購入に関する顧客の状態を推定する顧客状態推定システムや、商品またはサービスの需要を予測する需要予測システムに好適に適用される。
1 売上DB
2,3,4,6,8 顧客状態推定装置
5 顧客DB
7 販促DB
21 データ状態推定部
22 分類器生成部
23 初期顧客状態推定部
24 データクラス予測部
25 顧客状態推定部
31 制御部
41 補正部
61,111 予測部
71 販促効果推定部
72 販促状態変化予測部
100 売上データ記憶手段
101 データ毎状態推定手段
102 分類器生成手段
103 初期顧客状態推定手段
104 ラベル予測手段
105 顧客状態推定手段

Claims (24)

  1. 商品またはサービスの販売時における販売条件と、前記商品またはサービスの販売数または販売の有無を示す販売数情報と、前記商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを記憶する売上データ記憶手段と、
    個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、前記商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定手段と、
    各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成手段と、
    顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反である場合、前記最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反以外である場合、前記最後の売上データが示す顧客の顧客状態を、データ毎状態推定手段が推定した顧客状態とする初期顧客状態推定手段と、
    売上データのうち、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測手段と、
    予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定手段とを備える
    ことを特徴とする顧客状態推定システム。
  2. 複数の顧客状態推定対象期間を指定する期間指定手段を備え、
    初期顧客状態推定手段は、指定された顧客状態推定対象期間毎に顧客状態を推定し、
    ラベル予測手段は、指定された顧客状態推定対象期間毎に予測用データを作成して、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測し、
    顧客状態推定手段は、指定された顧客状態推定対象期間毎に、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態を推定する
    請求項1に記載の顧客状態推定システム。
  3. 少なくとも一の顧客状態について当該顧客状態に該当する顧客の数を顧客状態推定対象期間毎にカウントし、前記顧客状態に該当する顧客数の推移に応じて、各顧客状態推定対象期間における顧客数を補正する補正手段を備える
    請求項2に記載の顧客状態推定システム。
  4. 顧客の属性を表わす1つ以上の項目を顧客毎に記憶する顧客データ記憶手段と、
    各顧客の顧客状態と、顧客データ記憶手段に記憶された各顧客毎の属性とを参照して、より前の顧客状態から変化するか否かを予測する対象となる予測対象状態に関して、当該予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測する予測手段を備える
    請求項2または請求項3に記載の顧客状態推定システム。
  5. 予測手段は、予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測した場合に、予測結果となる各顧客状態毎に、該当する顧客数をカウントする
    請求項4に記載の顧客状態推定システム。
  6. 販売促進活動の内容を示すデータである販促データを記憶する販促データ記憶手段と、
    販促データが与えられたときに、顧客状態推定手段によって推定された販売促進活動の期間における顧客状態を前記販促データに対応づけて販促データ記憶手段に記憶させる販促データ登録手段と、
    顧客状態を予測すべき販売促進活動期間における販促データが与えられたときに、与えられた前記販促データに最も類似する販促データを販促データ記憶手段から特定し、当該販促データに対応づけられた顧客状態を、前記予測すべき販売促進活動期間における顧客状態であると予測する販促期間顧客状態予測手段とを備える
    請求項4または請求項5に記載の顧客状態推定システム。
  7. 予測手段は、
    顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す1つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加手段と、
    顧客が予測対象状態に変化するか否かの判定対象時刻を定める時刻として用いられるとともに、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻としても用いられる現時刻と、前記現時刻の一定時間前を指定するための時間間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時間間隔前の時刻である前時刻を計算し、現時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付けた現時刻データを生成する現時刻データ生成手段と、
    個々の仮影響度毎に、前時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付け、第1ラベルをラベル付けた顧客の個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成手段と、
    個々の前時刻データ毎に、顧客の属性を表す項目から当該顧客の個別データに第1ラベルと第2ラベルのいずれをラベル付けるかを判定するルールである前時刻分類器を前時刻に基づいて生成する前時刻分類器群生成手段と、
    前時刻データ毎に生成された個々の前時刻分類器毎に、当該前時刻分類器と前記現時刻データ内の各顧客の個別データの項目とから前記現時刻データ内の顧客の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出する誤差群算出手段と、
    個々の前時刻分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が1つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める影響度算出手段と、
    現時刻で予測対象状態に変化していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成手段と、
    前記現時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付け、第1ラベルをラベル付けた顧客の個別データ数を前記影響度に応じて変動させたデータである学習データを生成する学習データ生成手段と、
    顧客の属性を表す項目から当該顧客の個別データに第1ラベルと第2ラベルのいずれをラベル付けるかを判定するルールである予測用分類器を生成する予測用分類器生成手段と、
    前記予測用分類器と、前記テストデータ内の各顧客の個別データの項目とから、前記テストデータ内の個別データに対するラベルを判定するテストデータラベル判定手段とを有する
    請求項4から請求項6のうちのいずれか1項に記載の顧客状態推定システム。
  8. 予測手段は、
    顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す1つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加手段と、
    予測対象状態に変化済みの顧客の割合である普及率を期間毎に計算する普及率計算手段と、
    顧客が予測対象状態より前の状態から予測対象状態に変化するか否かを判定するための状態判定用分類器であって、予測対象状態に変化する確からしさであるスコアを導出可能な状態判定用分類器を、各顧客の属性と利用開始情報とから生成する状態判定用分類器生成手段と、
    前記状態判定用分類器により導出されるスコアと比較される閾値の最適値を、前記期間毎に計算する閾値計算手段と、
    期間毎の普及率および期間毎の閾値の最適値とから、普及率を変数とする閾値の関数を求める関数計算手段と、
    指定された時刻における普及率を前記関数に代入することにより、前記指定された時刻における閾値を特定する閾値特定手段と、
    前記指定された時刻で予測対象状態より前の状態の顧客の属性と、前記状態判定用分類器とからスコアを導出し、当該スコアが、閾値特定手段によって特定された閾値以上であれば、前記顧客が予測対象状態に変化すると判定する顧客状態判定手段とを有する
    請求項4から請求項6のうちのいずれか1項に記載の顧客状態推定システム。
  9. 商品またはサービスの販売時における販売条件と、前記商品またはサービスの販売数または販売の有無を示す販売数情報と、前記商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを売上データ記憶手段に記憶させておき、
    個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、前記商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定ステップと、
    各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成ステップと、
    顧客状態推定対象期間における最後の売上データからデータ毎状態推定ステップで判定した顧客状態が反復または離反である場合、前記最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定ステップで判定した顧客状態が反復または離反以外である場合、前記最後の売上データが示す顧客の顧客状態を、データ毎状態推定ステップで推定した顧客状態とする初期顧客状態推定ステップと、
    売上データのうち、初期顧客状態推定ステップで顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測ステップと、
    予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定ステップで顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定ステップとを含む
    ことを特徴とする顧客状態推定方法。
  10. 複数の顧客状態推定対象期間を指定する期間指定ステップを含み、
    初期顧客状態推定ステップで、指定された顧客状態推定対象期間毎に顧客状態を推定し、
    ラベル予測ステップで、指定された顧客状態推定対象期間毎に予測用データを作成して、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測し、
    顧客状態推定ステップで、指定された顧客状態推定対象期間毎に、初期顧客状態推定ステップで顧客状態が未定とされた顧客の顧客状態を推定する
    請求項9に記載の顧客状態推定方法。
  11. 少なくとも一の顧客状態について当該顧客状態に該当する顧客の数を顧客状態推定対象期間毎にカウントし、前記顧客状態に該当する顧客数の推移に応じて、各顧客状態推定対象期間における顧客数を補正する補正ステップを含む
    請求項10に記載の顧客状態推定方法。
  12. 顧客の属性を表わす1つ以上の項目を顧客毎に顧客データ記憶手段に記憶させておき、
    各顧客の顧客状態と、顧客データ記憶手段に記憶された各顧客毎の属性とを参照して、より前の顧客状態から変化するか否かを予測する対象となる予測対象状態に関して、当該予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測する予測ステップを含む
    請求項10または請求項11に記載の顧客状態推定方法。
  13. 予測ステップで、予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測した場合に、予測結果となる各顧客状態毎に、該当する顧客数をカウントする
    請求項12に記載の顧客状態推定方法。
  14. 販売促進活動の内容を示すデータである販促データが与えられたときに、顧客状態推定ステップで推定された販売促進活動の期間における顧客状態を前記販促データに対応づけて販促データ記憶手段に記憶させる販促データ登録ステップと、
    顧客状態を予測すべき販売促進活動期間における販促データが与えられたときに、与えられた前記販促データに最も類似する販促データを販促データ記憶手段から特定し、当該販促データに対応づけられた顧客状態を、前記予測すべき販売促進活動期間における顧客状態であると予測する販促期間顧客状態予測ステップとを含む
    請求項12または請求項13に記載の顧客状態推定方法。
  15. 予測ステップは、
    顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す1つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加ステップと、
    顧客が予測対象状態に変化するか否かの判定対象時刻を定める時刻として用いられるとともに、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻としても用いられる現時刻と、前記現時刻の一定時間前を指定するための時間間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時間間隔前の時刻である前時刻を計算し、現時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付けた現時刻データを生成する現時刻データ生成ステップと、
    個々の仮影響度毎に、前時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付け、第1ラベルをラベル付けた顧客の個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成ステップと、
    個々の前時刻データ毎に、顧客の属性を表す項目から当該顧客の個別データに第1ラベルと第2ラベルのいずれをラベル付けるかを判定するルールである前時刻分類器を前時刻に基づいて生成する前時刻分類器群生成ステップと、
    前時刻データ毎に生成された個々の前時刻分類器毎に、当該前時刻分類器と前記現時刻データ内の各顧客の個別データの項目とから前記現時刻データ内の顧客の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出する誤差群算出ステップと、
    個々の前時刻分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が1つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める影響度算出ステップと、
    現時刻で予測対象状態に変化していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成ステップと、
    前記現時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付け、第1ラベルをラベル付けた顧客の個別データ数を前記影響度に応じて変動させたデータである学習データを生成する学習データ生成ステップと、
    顧客の属性を表す項目から当該顧客の個別データに第1ラベルと第2ラベルのいずれをラベル付けるかを判定するルールである予測用分類器を生成する予測用分類器生成ステップと、
    前記予測用分類器と、前記テストデータ内の各顧客の個別データの項目とから、前記テストデータ内の個別データに対するラベルを判定するテストデータラベル判定ステップとを含む
    請求項12から請求項14のうちのいずれか1項に記載の顧客状態推定方法。
  16. 予測ステップは、
    顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す1つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加ステップと、
    予測対象状態に変化済みの顧客の割合である普及率を期間毎に計算する普及率計算ステップと、
    顧客が予測対象状態より前の状態から予測対象状態に変化するか否かを判定するための状態判定用分類器であって、予測対象状態に変化する確からしさであるスコアを導出可能な状態判定用分類器を、各顧客の属性と利用開始情報とから生成する状態判定用分類器生成ステップと、
    前記状態判定用分類器により導出されるスコアと比較される閾値の最適値を、前記期間毎に計算する閾値計算ステップと、
    期間毎の普及率および期間毎の閾値の最適値とから、普及率を変数とする閾値の関数を求める関数計算ステップと、
    指定された時刻における普及率を前記関数に代入することにより、前記指定された時刻における閾値を特定する閾値特定ステップと、
    前記指定された時刻で予測対象状態より前の状態の顧客の属性と、前記状態判定用分類器とからスコアを導出し、当該スコアが、閾値特定ステップで特定された閾値以上であれば、前記顧客が予測対象状態に変化すると判定する顧客状態判定ステップとを含む
    請求項12から請求項14のうちのいずれか1項に記載の顧客状態推定方法。
  17. 商品またはサービスの販売時における販売条件と、前記商品またはサービスの販売数または販売の有無を示す販売数情報と、前記商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを記憶する売上データ記憶手段を備えたコンピュータに搭載される顧客状態推定プログラムであって、
    前記コンピュータに、
    個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、前記商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定処理、
    各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成処理、
    顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反である場合、前記最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定処理で判定した顧客状態が反復または離反以外である場合、前記最後の売上データが示す顧客の顧客状態を、データ毎状態推定処理で推定した顧客状態とする初期顧客状態推定処理、
    売上データのうち、初期顧客状態推定処理で顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測処理、および、
    予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定処理で顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定処理
    を実行させるための顧客状態推定プログラム。
  18. コンピュータに、
    複数の顧客状態推定対象期間を指定する期間指定処理を実行させ、
    初期顧客状態推定処理で、指定された顧客状態推定対象期間毎に顧客状態を推定させ、
    ラベル予測処理で、指定された顧客状態推定対象期間毎に予測用データを作成して、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測させ、
    顧客状態推定処理で、指定された顧客状態推定対象期間毎に、初期顧客状態推定処理で顧客状態が未定とされた顧客の顧客状態を推定させる
    請求項17に記載の顧客状態推定プログラム。
  19. コンピュータに、
    少なくとも一の顧客状態について当該顧客状態に該当する顧客の数を顧客状態推定対象期間毎にカウントし、前記顧客状態に該当する顧客数の推移に応じて、各顧客状態推定対象期間における顧客数を補正する補正処理
    を実行させる請求項18に記載の顧客状態推定プログラム。
  20. 顧客の属性を表わす1つ以上の項目を顧客毎に記憶する顧客データ記憶手段を備えたコンピュータに搭載され、
    前記コンピュータに、
    各顧客の顧客状態と、顧客データ記憶手段に記憶された各顧客毎の属性とを参照して、より前の顧客状態から変化するか否かを予測する対象となる予測対象状態に関して、当該予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測する予測処理
    を実行させる請求項18または請求項19に記載の顧客状態推定プログラム。
  21. コンピュータに、
    予測処理で、予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測させた場合に、予測結果となる各顧客状態毎に、該当する顧客数をカウントさせる
    請求項20に記載の顧客状態推定プログラム。
  22. コンピュータに、
    販売促進活動の内容を示すデータである販促データが与えられたときに、顧客状態推定処理で推定された販売促進活動の期間における顧客状態を前記販促データに対応づけて販促データ記憶手段に記憶させる販促データ登録処理、および、
    顧客状態を予測すべき販売促進活動期間における販促データが与えられたときに、与えられた前記販促データに最も類似する販促データを販促データ記憶手段から特定し、当該販促データに対応づけられた顧客状態を、前記予測すべき販売促進活動期間における顧客状態であると予測する販促期間顧客状態予測処理
    を実行させる請求項20または請求項21に記載の顧客状態推定プログラム。
  23. コンピュータに、
    予測処理で、
    顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す1つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加処理、
    顧客が予測対象状態に変化するか否かの判定対象時刻を定める時刻として用いられるとともに、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻としても用いられる現時刻と、前記現時刻の一定時間前を指定するための時間間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時間間隔前の時刻である前時刻を計算し、現時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付けた現時刻データを生成する現時刻データ生成処理、
    個々の仮影響度毎に、前時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付け、第1ラベルをラベル付けた顧客の個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成処理、
    個々の前時刻データ毎に、顧客の属性を表す項目から当該顧客の個別データに第1ラベルと第2ラベルのいずれをラベル付けるかを判定するルールである前時刻分類器を前時刻に基づいて生成する前時刻分類器群生成処理、
    前時刻データ毎に生成された個々の前時刻分類器毎に、当該前時刻分類器と前記現時刻データ内の各顧客の個別データの項目とから前記現時刻データ内の顧客の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出する誤差群算出処理、
    個々の前時刻分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が1つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める影響度算出処理、
    現時刻で予測対象状態に変化していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成処理、
    前記現時刻で予測対象状態に変化済みである顧客の個別データに第1ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第2ラベルをラベル付け、第1ラベルをラベル付けた顧客の個別データ数を前記影響度に応じて変動させたデータである学習データを生成する学習データ生成処理、
    顧客の属性を表す項目から当該顧客の個別データに第1ラベルと第2ラベルのいずれをラベル付けるかを判定するルールである予測用分類器を生成する予測用分類器生成処理、および、
    前記予測用分類器と、前記テストデータ内の各顧客の個別データの項目とから、前記テストデータ内の個別データに対するラベルを判定するテストデータラベル判定処理を実行させる
    請求項20から請求項22のうちのいずれか1項に記載の顧客状態推定プログラム。
  24. コンピュータに、
    予測処理で、
    顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す1つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加処理、
    予測対象状態に変化済みの顧客の割合である普及率を期間毎に計算する普及率計算処理、
    顧客が予測対象状態より前の状態から予測対象状態に変化するか否かを判定するための状態判定用分類器であって、予測対象状態に変化する確からしさであるスコアを導出可能な状態判定用分類器を、各顧客の属性と利用開始情報とから生成する状態判定用分類器生成処理、
    前記状態判定用分類器により導出されるスコアと比較される閾値の最適値を、前記期間毎に計算する閾値計算処理、
    期間毎の普及率および期間毎の閾値の最適値とから、普及率を変数とする閾値の関数を求める関数計算処理、
    指定された時刻における普及率を前記関数に代入することにより、前記指定された時刻における閾値を特定する閾値特定処理、
    前記指定された時刻で予測対象状態より前の状態の顧客の属性と、前記状態判定用分類器とからスコアを導出し、当該スコアが、閾値特定処理で特定された閾値以上であれば、前記顧客が予測対象状態に変化すると判定する顧客状態判定処理を実行させる
    請求項20から請求項22のうちのいずれか1項に記載の顧客状態推定プログラム。
JP2009119131A 2008-08-19 2009-05-15 顧客状態推定システム、顧客状態推定方法および顧客状態推定プログラム Expired - Fee Related JP5304429B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009119131A JP5304429B2 (ja) 2008-08-19 2009-05-15 顧客状態推定システム、顧客状態推定方法および顧客状態推定プログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008211046 2008-08-19
JP2008211046 2008-08-19
JP2009119131A JP5304429B2 (ja) 2008-08-19 2009-05-15 顧客状態推定システム、顧客状態推定方法および顧客状態推定プログラム

Publications (2)

Publication Number Publication Date
JP2010073189A true JP2010073189A (ja) 2010-04-02
JP5304429B2 JP5304429B2 (ja) 2013-10-02

Family

ID=42204855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009119131A Expired - Fee Related JP5304429B2 (ja) 2008-08-19 2009-05-15 顧客状態推定システム、顧客状態推定方法および顧客状態推定プログラム

Country Status (1)

Country Link
JP (1) JP5304429B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017068483A (ja) * 2015-09-29 2017-04-06 株式会社エヌ・ティ・ティ・データ 情報処理装置、情報処理方法、およびプログラム
JPWO2016121432A1 (ja) * 2015-01-28 2017-09-28 Necソリューションイノベータ株式会社 技能承継支援装置、技能承継支援方法、及びコンピュータ読み取り可能な記録媒体
US10579933B2 (en) 2014-12-18 2020-03-03 International Business Machines Corporation Processing apparatus, processing method, estimating apparatus, estimating method, and program
CN111260176A (zh) * 2018-11-30 2020-06-09 西门子股份公司 用于排除技术设施中的故障状况的方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000099575A (ja) * 1998-09-18 2000-04-07 Intec Inc 有望顧客抽出方法及び装置
JP2001109733A (ja) * 1999-10-12 2001-04-20 Hitachi Ltd 識別モデルの評価方法及び閾値調整方法
JP2002117212A (ja) * 2000-10-10 2002-04-19 Dainippon Printing Co Ltd 顧客分析システムおよび顧客管理方法
JP2008152321A (ja) * 2006-12-14 2008-07-03 Internatl Business Mach Corp <Ibm> 顧客セグメント推定装置
JP2009238193A (ja) * 2008-03-07 2009-10-15 Nec Corp 普及予測システム、方法およびプログラム、並びに影響度推定システム、方法およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000099575A (ja) * 1998-09-18 2000-04-07 Intec Inc 有望顧客抽出方法及び装置
JP2001109733A (ja) * 1999-10-12 2001-04-20 Hitachi Ltd 識別モデルの評価方法及び閾値調整方法
JP2002117212A (ja) * 2000-10-10 2002-04-19 Dainippon Printing Co Ltd 顧客分析システムおよび顧客管理方法
JP2008152321A (ja) * 2006-12-14 2008-07-03 Internatl Business Mach Corp <Ibm> 顧客セグメント推定装置
JP2009238193A (ja) * 2008-03-07 2009-10-15 Nec Corp 普及予測システム、方法およびプログラム、並びに影響度推定システム、方法およびプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10579933B2 (en) 2014-12-18 2020-03-03 International Business Machines Corporation Processing apparatus, processing method, estimating apparatus, estimating method, and program
US11227228B2 (en) 2014-12-18 2022-01-18 International Business Machines Corporation Processing apparatus, processing method, estimating apparatus, estimating method, and program
JPWO2016121432A1 (ja) * 2015-01-28 2017-09-28 Necソリューションイノベータ株式会社 技能承継支援装置、技能承継支援方法、及びコンピュータ読み取り可能な記録媒体
JP2017068483A (ja) * 2015-09-29 2017-04-06 株式会社エヌ・ティ・ティ・データ 情報処理装置、情報処理方法、およびプログラム
CN111260176A (zh) * 2018-11-30 2020-06-09 西门子股份公司 用于排除技术设施中的故障状况的方法和系统
CN111260176B (zh) * 2018-11-30 2023-11-03 西门子股份公司 用于排除技术设施中的故障状况的方法和系统

Also Published As

Publication number Publication date
JP5304429B2 (ja) 2013-10-02

Similar Documents

Publication Publication Date Title
CN110222272B (zh) 一种潜在客户挖掘与推荐方法
JP4707797B2 (ja) 消費者の財政的挙動の予測モデル化方法及びシステム
US9165270B2 (en) Predicting likelihood of customer attrition and retention measures
CN110288484B (zh) 一种基于大数据平台的保险分类的用户推荐方法及系统
Machuca et al. A review of forecasting models for new products
JP5104496B2 (ja) 普及予測システム、方法およびプログラム、並びに影響度推定システム、方法およびプログラム
CN115053240A (zh) 使用库存数据来测量和预测产品的可用性并优化配搭的系统和方法
Jain et al. Sales forecasting for retail chains
Sakib Restaurant sales prediction using machine learning
JP5251217B2 (ja) 販売数予測システム、販売数予測システムの動作方法および販売数予測プログラム
CN115544242B (zh) 基于大数据的同类商品选型推荐方法
JP5304429B2 (ja) 顧客状態推定システム、顧客状態推定方法および顧客状態推定プログラム
CN111861679A (zh) 一种基于人工智能的商品推荐方法
Olson et al. Comparison of customer response models
Tarokh et al. A new model to speculate CLV based on Markov chain model
Rifat et al. An end-to-end machine learning system for mitigating checkout abandonment in E-commerce
Henzel et al. Gradient boosting and deep learning models approach to forecasting promotions efficiency in fmcg retail
Ganhewa et al. Sales Optimization Solution for Fashion Retail
Hariyadi et al. Prediction of Consumer Purchase Intention on Green Product
Kaneko et al. Bayesian hidden Markov model for evaluating the influence of in-store stationary time of customers on their purchase behavior
Purnamasari et al. Consumer Behavior Analysis of Leathercraft Small and Medium-Sized Enterprises (SME) Using Market Basket Analysis and Clustering Algorithms
Khodabandehlou et al. Improving customer loyalty evaluation methods in the grocery retail industry: a data mining approach
Asadi Ejgerdi et al. A stacked ensemble learning method for customer lifetime value prediction
Tabak Kizgin et al. Random Forest Based Hybrid Approaches to Analysis of Retail Stores
US20230394512A1 (en) Methods and systems for profit optimization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120412

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130523

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: 20130528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130610

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees