(57)【要約】【課題】ある商品またはサービスの購入に関する種種の顧客状態を推定することができる顧客状態推定システムを提供する。【解決手段】初期顧客状態推定手段１０３は、顧客状態推定対象期間における最後の売上データから、その顧客状態推定対象期間における顧客の顧客状態を推定する。ラベル予測手段１０４は、初期顧客状態推定手段１０３に顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件からラベルを予測する。顧客状態推定手段１０５は、予測用データに含まれるラベルと、予測用データと分類器とから予測された予測結果とから、顧客状態推定対象期間における顧客の顧客状態を推定する。【選択図】図３３
2010073189.tif 000002
【特許請求の範囲】
【請求項１】
商品またはサービスの販売時における販売条件と、前記商品またはサービスの販売数または販売の有無を示す販売数情報と、前記商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを記憶する売上データ記憶手段と、
個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、前記商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定手段と、
各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成手段と、
顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反である場合、前記最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反以外である場合、前記最後の売上データが示す顧客の顧客状態を、データ毎状態推定手段が推定した顧客状態とする初期顧客状態推定手段と、
売上データのうち、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測手段と、
予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定手段とを備える
ことを特徴とする顧客状態推定システム。
【請求項２】
複数の顧客状態推定対象期間を指定する期間指定手段を備え、
初期顧客状態推定手段は、指定された顧客状態推定対象期間毎に顧客状態を推定し、
ラベル予測手段は、指定された顧客状態推定対象期間毎に予測用データを作成して、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測し、
顧客状態推定手段は、指定された顧客状態推定対象期間毎に、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態を推定する
請求項１に記載の顧客状態推定システム。
【請求項３】
少なくとも一の顧客状態について当該顧客状態に該当する顧客の数を顧客状態推定対象期間毎にカウントし、前記顧客状態に該当する顧客数の推移に応じて、各顧客状態推定対象期間における顧客数を補正する補正手段を備える
請求項２に記載の顧客状態推定システム。
【請求項４】
顧客の属性を表わす１つ以上の項目を顧客毎に記憶する顧客データ記憶手段と、
各顧客の顧客状態と、顧客データ記憶手段に記憶された各顧客毎の属性とを参照して、より前の顧客状態から変化するか否かを予測する対象となる予測対象状態に関して、当該予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測する予測手段を備える
請求項２または請求項３に記載の顧客状態推定システム。
【請求項５】
予測手段は、予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測した場合に、予測結果となる各顧客状態毎に、該当する顧客数をカウントする
請求項４に記載の顧客状態推定システム。
【請求項６】
販売促進活動の内容を示すデータである販促データを記憶する販促データ記憶手段と、
販促データが与えられたときに、顧客状態推定手段によって推定された販売促進活動の期間における顧客状態を前記販促データに対応づけて販促データ記憶手段に記憶させる販促データ登録手段と、
顧客状態を予測すべき販売促進活動期間における販促データが与えられたときに、与えられた前記販促データに最も類似する販促データを販促データ記憶手段から特定し、当該販促データに対応づけられた顧客状態を、前記予測すべき販売促進活動期間における顧客状態であると予測する販促期間顧客状態予測手段とを備える
請求項４または請求項５に記載の顧客状態推定システム。
【請求項７】
予測手段は、
顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す１つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加手段と、
顧客が予測対象状態に変化するか否かの判定対象時刻を定める時刻として用いられるとともに、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻としても用いられる現時刻と、前記現時刻の一定時間前を指定するための時間間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時間間隔前の時刻である前時刻を計算し、現時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付けた現時刻データを生成する現時刻データ生成手段と、
個々の仮影響度毎に、前時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた顧客の個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成手段と、
個々の前時刻データ毎に、顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである前時刻分類器を前時刻に基づいて生成する前時刻分類器群生成手段と、
前時刻データ毎に生成された個々の前時刻分類器毎に、当該前時刻分類器と前記現時刻データ内の各顧客の個別データの項目とから前記現時刻データ内の顧客の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出する誤差群算出手段と、
個々の前時刻分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が１つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める影響度算出手段と、
現時刻で予測対象状態に変化していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成手段と、
前記現時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた顧客の個別データ数を前記影響度に応じて変動させたデータである学習データを生成する学習データ生成手段と、
顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである予測用分類器を生成する予測用分類器生成手段と、
前記予測用分類器と、前記テストデータ内の各顧客の個別データの項目とから、前記テストデータ内の個別データに対するラベルを判定するテストデータラベル判定手段とを有する
請求項４から請求項６のうちのいずれか１項に記載の顧客状態推定システム。
【請求項８】
予測手段は、
顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す１つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加手段と、
予測対象状態に変化済みの顧客の割合である普及率を期間毎に計算する普及率計算手段と、
顧客が予測対象状態より前の状態から予測対象状態に変化するか否かを判定するための状態判定用分類器であって、予測対象状態に変化する確からしさであるスコアを導出可能な状態判定用分類器を、各顧客の属性と利用開始情報とから生成する状態判定用分類器生成手段と、
前記状態判定用分類器により導出されるスコアと比較される閾値の最適値を、前記期間毎に計算する閾値計算手段と、
期間毎の普及率および期間毎の閾値の最適値とから、普及率を変数とする閾値の関数を求める関数計算手段と、
指定された時刻における普及率を前記関数に代入することにより、前記指定された時刻における閾値を特定する閾値特定手段と、
前記指定された時刻で予測対象状態より前の状態の顧客の属性と、前記状態判定用分類器とからスコアを導出し、当該スコアが、閾値特定手段によって特定された閾値以上であれば、前記顧客が予測対象状態に変化すると判定する顧客状態判定手段とを有する
請求項４から請求項６のうちのいずれか１項に記載の顧客状態推定システム。
【請求項９】
商品またはサービスの販売時における販売条件と、前記商品またはサービスの販売数または販売の有無を示す販売数情報と、前記商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを売上データ記憶手段に記憶させておき、
個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、前記商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定ステップと、
各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成ステップと、
顧客状態推定対象期間における最後の売上データからデータ毎状態推定ステップで判定した顧客状態が反復または離反である場合、前記最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定ステップで判定した顧客状態が反復または離反以外である場合、前記最後の売上データが示す顧客の顧客状態を、データ毎状態推定ステップで推定した顧客状態とする初期顧客状態推定ステップと、
売上データのうち、初期顧客状態推定ステップで顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測ステップと、
予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定ステップで顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定ステップとを含む
ことを特徴とする顧客状態推定方法。
【請求項１０】
複数の顧客状態推定対象期間を指定する期間指定ステップを含み、
初期顧客状態推定ステップで、指定された顧客状態推定対象期間毎に顧客状態を推定し、
ラベル予測ステップで、指定された顧客状態推定対象期間毎に予測用データを作成して、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測し、
顧客状態推定ステップで、指定された顧客状態推定対象期間毎に、初期顧客状態推定ステップで顧客状態が未定とされた顧客の顧客状態を推定する
請求項９に記載の顧客状態推定方法。
【請求項１１】
少なくとも一の顧客状態について当該顧客状態に該当する顧客の数を顧客状態推定対象期間毎にカウントし、前記顧客状態に該当する顧客数の推移に応じて、各顧客状態推定対象期間における顧客数を補正する補正ステップを含む
請求項１０に記載の顧客状態推定方法。
【請求項１２】
顧客の属性を表わす１つ以上の項目を顧客毎に顧客データ記憶手段に記憶させておき、
各顧客の顧客状態と、顧客データ記憶手段に記憶された各顧客毎の属性とを参照して、より前の顧客状態から変化するか否かを予測する対象となる予測対象状態に関して、当該予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測する予測ステップを含む
請求項１０または請求項１１に記載の顧客状態推定方法。
【請求項１３】
予測ステップで、予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測した場合に、予測結果となる各顧客状態毎に、該当する顧客数をカウントする
請求項１２に記載の顧客状態推定方法。
【請求項１４】
販売促進活動の内容を示すデータである販促データが与えられたときに、顧客状態推定ステップで推定された販売促進活動の期間における顧客状態を前記販促データに対応づけて販促データ記憶手段に記憶させる販促データ登録ステップと、
顧客状態を予測すべき販売促進活動期間における販促データが与えられたときに、与えられた前記販促データに最も類似する販促データを販促データ記憶手段から特定し、当該販促データに対応づけられた顧客状態を、前記予測すべき販売促進活動期間における顧客状態であると予測する販促期間顧客状態予測ステップとを含む
請求項１２または請求項１３に記載の顧客状態推定方法。
【請求項１５】
予測ステップは、
顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す１つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加ステップと、
顧客が予測対象状態に変化するか否かの判定対象時刻を定める時刻として用いられるとともに、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻としても用いられる現時刻と、前記現時刻の一定時間前を指定するための時間間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時間間隔前の時刻である前時刻を計算し、現時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付けた現時刻データを生成する現時刻データ生成ステップと、
個々の仮影響度毎に、前時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた顧客の個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成ステップと、
個々の前時刻データ毎に、顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである前時刻分類器を前時刻に基づいて生成する前時刻分類器群生成ステップと、
前時刻データ毎に生成された個々の前時刻分類器毎に、当該前時刻分類器と前記現時刻データ内の各顧客の個別データの項目とから前記現時刻データ内の顧客の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出する誤差群算出ステップと、
個々の前時刻分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が１つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める影響度算出ステップと、
現時刻で予測対象状態に変化していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成ステップと、
前記現時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた顧客の個別データ数を前記影響度に応じて変動させたデータである学習データを生成する学習データ生成ステップと、
顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである予測用分類器を生成する予測用分類器生成ステップと、
前記予測用分類器と、前記テストデータ内の各顧客の個別データの項目とから、前記テストデータ内の個別データに対するラベルを判定するテストデータラベル判定ステップとを含む
請求項１２から請求項１４のうちのいずれか１項に記載の顧客状態推定方法。
【請求項１６】
予測ステップは、
顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す１つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加ステップと、
予測対象状態に変化済みの顧客の割合である普及率を期間毎に計算する普及率計算ステップと、
顧客が予測対象状態より前の状態から予測対象状態に変化するか否かを判定するための状態判定用分類器であって、予測対象状態に変化する確からしさであるスコアを導出可能な状態判定用分類器を、各顧客の属性と利用開始情報とから生成する状態判定用分類器生成ステップと、
前記状態判定用分類器により導出されるスコアと比較される閾値の最適値を、前記期間毎に計算する閾値計算ステップと、
期間毎の普及率および期間毎の閾値の最適値とから、普及率を変数とする閾値の関数を求める関数計算ステップと、
指定された時刻における普及率を前記関数に代入することにより、前記指定された時刻における閾値を特定する閾値特定ステップと、
前記指定された時刻で予測対象状態より前の状態の顧客の属性と、前記状態判定用分類器とからスコアを導出し、当該スコアが、閾値特定ステップで特定された閾値以上であれば、前記顧客が予測対象状態に変化すると判定する顧客状態判定ステップとを含む
請求項１２から請求項１４のうちのいずれか１項に記載の顧客状態推定方法。
【請求項１７】
商品またはサービスの販売時における販売条件と、前記商品またはサービスの販売数または販売の有無を示す販売数情報と、前記商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを記憶する売上データ記憶手段を備えたコンピュータに搭載される顧客状態推定プログラムであって、
前記コンピュータに、
個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、前記商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定処理、
各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成処理、
顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反である場合、前記最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定処理で判定した顧客状態が反復または離反以外である場合、前記最後の売上データが示す顧客の顧客状態を、データ毎状態推定処理で推定した顧客状態とする初期顧客状態推定処理、
売上データのうち、初期顧客状態推定処理で顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測処理、および、
予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定処理で顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定処理
を実行させるための顧客状態推定プログラム。
【請求項１８】
コンピュータに、
複数の顧客状態推定対象期間を指定する期間指定処理を実行させ、
初期顧客状態推定処理で、指定された顧客状態推定対象期間毎に顧客状態を推定させ、
ラベル予測処理で、指定された顧客状態推定対象期間毎に予測用データを作成して、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測させ、
顧客状態推定処理で、指定された顧客状態推定対象期間毎に、初期顧客状態推定処理で顧客状態が未定とされた顧客の顧客状態を推定させる
請求項１７に記載の顧客状態推定プログラム。
【請求項１９】
コンピュータに、
少なくとも一の顧客状態について当該顧客状態に該当する顧客の数を顧客状態推定対象期間毎にカウントし、前記顧客状態に該当する顧客数の推移に応じて、各顧客状態推定対象期間における顧客数を補正する補正処理
を実行させる請求項１８に記載の顧客状態推定プログラム。
【請求項２０】
顧客の属性を表わす１つ以上の項目を顧客毎に記憶する顧客データ記憶手段を備えたコンピュータに搭載され、
前記コンピュータに、
各顧客の顧客状態と、顧客データ記憶手段に記憶された各顧客毎の属性とを参照して、より前の顧客状態から変化するか否かを予測する対象となる予測対象状態に関して、当該予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測する予測処理
を実行させる請求項１８または請求項１９に記載の顧客状態推定プログラム。
【請求項２１】
コンピュータに、
予測処理で、予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測させた場合に、予測結果となる各顧客状態毎に、該当する顧客数をカウントさせる
請求項２０に記載の顧客状態推定プログラム。
【請求項２２】
コンピュータに、
販売促進活動の内容を示すデータである販促データが与えられたときに、顧客状態推定処理で推定された販売促進活動の期間における顧客状態を前記販促データに対応づけて販促データ記憶手段に記憶させる販促データ登録処理、および、
顧客状態を予測すべき販売促進活動期間における販促データが与えられたときに、与えられた前記販促データに最も類似する販促データを販促データ記憶手段から特定し、当該販促データに対応づけられた顧客状態を、前記予測すべき販売促進活動期間における顧客状態であると予測する販促期間顧客状態予測処理
を実行させる請求項２０または請求項２１に記載の顧客状態推定プログラム。
【請求項２３】
コンピュータに、
予測処理で、
顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す１つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加処理、
顧客が予測対象状態に変化するか否かの判定対象時刻を定める時刻として用いられるとともに、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻としても用いられる現時刻と、前記現時刻の一定時間前を指定するための時間間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時間間隔前の時刻である前時刻を計算し、現時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付けた現時刻データを生成する現時刻データ生成処理、
個々の仮影響度毎に、前時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた顧客の個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成処理、
個々の前時刻データ毎に、顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである前時刻分類器を前時刻に基づいて生成する前時刻分類器群生成処理、
前時刻データ毎に生成された個々の前時刻分類器毎に、当該前時刻分類器と前記現時刻データ内の各顧客の個別データの項目とから前記現時刻データ内の顧客の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出する誤差群算出処理、
個々の前時刻分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が１つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める影響度算出処理、
現時刻で予測対象状態に変化していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成処理、
前記現時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた顧客の個別データ数を前記影響度に応じて変動させたデータである学習データを生成する学習データ生成処理、
顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである予測用分類器を生成する予測用分類器生成処理、および、
前記予測用分類器と、前記テストデータ内の各顧客の個別データの項目とから、前記テストデータ内の個別データに対するラベルを判定するテストデータラベル判定処理を実行させる
請求項２０から請求項２２のうちのいずれか１項に記載の顧客状態推定プログラム。
【請求項２４】
コンピュータに、
予測処理で、
顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す１つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加処理、
予測対象状態に変化済みの顧客の割合である普及率を期間毎に計算する普及率計算処理、
顧客が予測対象状態より前の状態から予測対象状態に変化するか否かを判定するための状態判定用分類器であって、予測対象状態に変化する確からしさであるスコアを導出可能な状態判定用分類器を、各顧客の属性と利用開始情報とから生成する状態判定用分類器生成処理、
前記状態判定用分類器により導出されるスコアと比較される閾値の最適値を、前記期間毎に計算する閾値計算処理、
期間毎の普及率および期間毎の閾値の最適値とから、普及率を変数とする閾値の関数を求める関数計算処理、
指定された時刻における普及率を前記関数に代入することにより、前記指定された時刻における閾値を特定する閾値特定処理、
前記指定された時刻で予測対象状態より前の状態の顧客の属性と、前記状態判定用分類器とからスコアを導出し、当該スコアが、閾値特定処理で特定された閾値以上であれば、前記顧客が予測対象状態に変化すると判定する顧客状態判定処理を実行させる
請求項２０から請求項２２のうちのいずれか１項に記載の顧客状態推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、商品またはサービスの需要を予測する顧客状態推定システム、顧客状態推定方法および顧客状態推定プログラムに関する。
【背景技術】
【０００２】
小売店では、ＰＯＳ（Ｐｏｉｎｔ  ｏｆ  Ｓａｌｅｓ）システムが用いられており、収集した商品の売上データは様々に活用されている。その中で、売上データに基づいて商品の需要を予測し、発注に活用するシステムがある。
【０００３】
例えば、特許文献１には、商品の売上実績から、売価や天気などの各種変動要因による売上の変動を考慮して商品の需要を予測するシステムが記載されている。
【０００４】
特許文献２には、新商品を構成するユニット仕様毎に販売予測を行う方法が記載されている。特許文献２に記載された方法では、商品の商品特性などをニューラルネットワーク式で表現した販売構成比モデル関数に代入することによって、ユニット仕様別の販売構成比を算出し、販売構成比に基づいてユニット仕様毎の販売数を算出する。
【０００５】
また、特許文献３には、過去の売上実績数量から販売量を予測する装置が記載されている。専門家が持っている経験則をルールとして体系化し、そのルールを使って販売予測をする方法であり、特許文献３には、調整した結果を検証するために、手入力による仮想データでシミュレーションを行い、アラームを表示する手段も記載されている。
【０００６】
特許文献４には、ＰＯＳデータの分析から消費者の併売傾向を把握するシステムが記載されている。
【０００７】
また、特許文献５には、来店日時、来店頻度、利用額の区分で顧客データを分析する顧客管理システムが記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−３３４３２６号公報
【特許文献２】特開２００３−１２２８９５号公報
【特許文献３】特開平７−１７５７８７号公報
【特許文献４】特開２００７−０９４５９２号公報
【特許文献５】特開２００２−２５９６６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
商品やサービスは、時間の経過とともに価値が変化し、それに伴って需要が変化するが、特許文献１に記載されている需要予測では、時間の経過とともに変化する需要を予測することができない。その理由は、時間の経過とともに需要が変化しないことを前提として、長期間の売上実績を各種変動要因による影響で調整して、需要を予測するからである。
【００１０】
特許文献２，３に記載されている需要予測システムは、専門家による知見無しに自動的に販売数を予測することができない。その理由は、特許文献２では、商品特性を自動的に推定する方法は開示されておらず、実施の形態では、現行車、新車共に開発者が特性値を百分率で指定するよう構成されているためである。従って、開発者という専門家による商品特性の数値化が必要であり、自動的に販売数を予測することはできない。特許文献３でもまた、専門家による経験則なしに自動的に販売量を予測する方法は開示されていない。特許文献３に記載の装置ではファジイ・ニューロデータテーブルにプロダクションルールとメンバシップ関数が予め登録されており、そのプロダクションルールとメンバシップ関数を自動的に生成する方法は特許文献３に開示されていない。従って、時間の経過とともに変化する需要を予測するためのプロダクションルールは、専門家が与える必要があり、専門家による既知のルールの範囲内でしか分析することができない。
【００１１】
特許文献４に記載されているマーケティングデータ収集分析システムは、販売数を分析することはできるが、予測することはできない。
【００１２】
また、商品やサービスの価値は、個別の顧客の特性に応じて異なるが、特許文献１，２，３に記載された技術では、売上数に基づいて処理するため、個別の顧客の違いは総和され相殺されてしまう。そのため、個別の顧客の特性の違いを考慮できない。特許文献４に記載されているシステムでは、顧客特性を考慮するが、顧客特性を指定するのはシステムのユーザであり、自動的に分類した顧客特性に応じた需要を分析することはできない。
【００１３】
また、顧客が、ある商品またはサービスの購入に関して、反復的に購入しているのか、あるいは、反復的に購入していたが離反して購入しなくなったかなどの顧客状態を推定できることが、好ましい。
【００１４】
そこで、本発明は、顧客がある商品またはサービスの購入に関して、反復的に購入しているのか、あるいは、反復的に購入していたが離反して購入しなくなったかなどの種種の顧客状態を推定することができる顧客状態推定システム、顧客状態推定方法および顧客状態推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明による顧客状態推定システムは、商品またはサービスの販売時における販売条件と、商品またはサービスの販売数または販売の有無を示す販売数情報と、商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを記憶する売上データ記憶手段と、個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定手段と、各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成手段と、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反である場合、最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反以外である場合、最後の売上データが示す顧客の顧客状態を、データ毎状態推定手段が推定した顧客状態とする初期顧客状態推定手段と、売上データのうち、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測手段と、予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定手段とを備えることを特徴とする。
【００１６】
本発明による顧客状態推定方法は、商品またはサービスの販売時における販売条件と、商品またはサービスの販売数または販売の有無を示す販売数情報と、商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを売上データ記憶手段に記憶させておき、個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定ステップと、各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成ステップと、顧客状態推定対象期間における最後の売上データからデータ毎状態推定ステップで判定した顧客状態が反復または離反である場合、最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定ステップで判定した顧客状態が反復または離反以外である場合、最後の売上データが示す顧客の顧客状態を、データ毎状態推定ステップで推定した顧客状態とする初期顧客状態推定ステップと、売上データのうち、初期顧客状態推定ステップで顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測ステップと、予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定ステップで顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定ステップとを含むことを特徴とする。
【００１７】
本発明による顧客状態推定プログラムは、商品またはサービスの販売時における販売条件と、商品またはサービスの販売数または販売の有無を示す販売数情報と、商品またはサービスを購入した顧客を示す顧客識別情報とを対応づけた売上データを記憶する売上データ記憶手段を備えたコンピュータに搭載される顧客状態推定プログラムであって、コンピュータに、個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定するデータ毎状態推定処理、各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する分類器生成処理、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反である場合、最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段が判定した顧客状態が反復または離反以外である場合、最後の売上データが示す顧客の顧客状態を、データ毎状態推定処理で推定した顧客状態とする初期顧客状態推定処理、売上データのうち、初期顧客状態推定処理で顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測するラベル予測処理、および、予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定処理で顧客状態が未定とされた顧客の顧客状態を推定する顧客状態推定処理を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、顧客がある商品またはサービスの購入に関して、反復的に購入しているのか、あるいは、反復的に購入していたが離反して購入しなくなったかなどの種種の顧客状態を推定できる。
【図面の簡単な説明】
【００１９】
【図１】本発明の顧客状態推定システムの第１の実施形態の構成例を示すブロック図である。
【図２】売上データの例を示す説明図である。
【図３】データ推定部２１の処理経過の例を示すフローチャートである。
【図４】ある顧客ｎのデータに関する推定例を示す説明図である。
【図５】分類器生成部２２の処理経過の例を示すフローチャートである。
【図６】学習用データの例を示す説明図である。
【図７】既知の属性およびクラスの組み合わせの例を示す説明図である。
【図８】分類器の例を示す説明図である。
【図９】分類器から予測されるクラスの例を示す説明図である。
【図１０】初期顧客状態推定部２３の処理経過の例を示すフローチャートである。
【図１１】データクラス予測部２４の処理経過の例を示すフローチャートである。
【図１２】顧客状態推定部２５の処理経過の例を示すフローチャートである。
【図１３】分割表の例を示す説明図である。
【図１４】最初に求めた分割表における周辺の合計を固定したときの各分割表およびＳａの値を示す説明図である。
【図１５】本発明の顧客状態推定システムの第２の実施形態の構成例を示すブロック図である。
【図１６】第２の実施形態の顧客状態推定システムの処理経過の例を示すフローチャートである。
【図１７】本発明の顧客状態推定システムの第３の実施形態の構成例を示すブロック図である。
【図１８】補正部４１の処理経過の例を示すフローチャートである。
【図１９】本発明の顧客状態推定システムの第４の実施形態の構成例を示すブロック図である。
【図２０】顧客データの例を示す説明図である。
【図２１】予測部６１の処理経過の例を示すフローチャートである。
【図２２】予測部６１の構成例を示すブロック図である。
【図２３】影響度推定部８０の処理経過の例を示すフローチャートである。
【図２４】普及予測部９０の処理経過の例を示すフローチャートである。
【図２５】本発明の顧客状態推定システムの第５の実施形態の構成例を示すブロック図である。
【図２６】販売促進データの例を示す説明図である。
【図２７】販促効果推定部７１の処理経過の例を示すフローチャートである。
【図２８】販促状態変化予測部７２の処理経過の例を示すフローチャートである。
【図２９】本発明の顧客状態推定システムの第６の実施形態の構成例を示すブロック図である。
【図３０】第６の実施形態の予測部の例を示すブロック図である。
【図３１】第６の実施形態における予測部の処理経過の例を示すフローチャートである。
【図３２】ステップＵ３の処理経過の例を示すフローチャートである。
【図３３】本発明の概要を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について図面を参照して説明する。本発明では、個別の顧客の、潜在（未購入）、トライアル（１度購入）、反復、離反という顧客状態を予測する。また、商品またはサービスの需要を予測することを可能とする。なお、有料で商品やサービスを利用する者だけでなく、無料で商品やサービスを利用する人や、今後商品やサービスを利用すると思われる人も顧客と呼ぶ。無料で商品やサービスを利用可能とする場合における売価は０とすればよい。また、商品またはサービスの概念には、製品などの完成品だけでなく、製品の機能を維持するための最小単位も含まれる。さらに、ある商品またはサービスのカテゴリを１つの商品または１つのサービスとしてもよい。
【００２１】
実施形態１．
図１は、本発明の顧客状態推定システムの第１の実施形態の構成例を示すブロック図である。本発明の顧客状態推定システムは、売上実績のデータである売上データを記憶する売上データベース（以下、売上ＤＢと記す）１と、売上データを用いて顧客の状態を推定する顧客状態推定装置２とを備える。
【００２２】
売上ＤＢ１は、商品またはサービスを購入した顧客の顧客ＩＤと、１個以上の販売条件と、ターゲットの過去の売上とを示す売上データを記憶する記憶手段であり、売上データ記憶手段と呼ぶことができる。ターゲットとは、顧客状態推定の対象とする商品またはサービスのことである。図２は、売上データの例を示す説明図である。以下に示す例では、商品Ａがターゲットである場合を例として説明する。図２に示す例では、個々の売上データは、購入者を示す顧客ＩＤと、ターゲットを販売したときの販売条件（販売状況）と、ターゲットの販売数（本例では商品Ａの販売数）とを対応づけている。図２に示す例では、ターゲットの販売年、月、日、曜日、時刻、天気、ターゲットの売価、供給の有無などを販売条件として示している。販売条件として、販売年、月、日、曜日、時刻、天気、ターゲットの売価、供給の有無などの様々な項目の少なくとも１つ以上の項目を含む。図２において「○」は供給ありを表わし、「×」は供給なしを表わしている。また、売上データは、ターゲット以外の商品またはサービスの販売条件や販売数を含んでいてもよい。図２では、ターゲット以外の商品である商品Ｂに関する販売条件（売価、供給の有無）および販売数を例示している。顧客ＩＤは、個別の顧客を同定するための番号である。顧客の顧客ＩＤは、例えば、顧客が購入時に利用するカードなどから収集すればよいが、顧客ＩＤの収集方法は、特に限定されない。なお、商品またはサービスを購入した顧客の顧客ＩＤを収集できなかった場合になどには、顧客ＩＤを不明として売上データを登録すればよい。個々の顧客がある時点で商品やサービスを購入する毎に１つの売上データが定められる。図２に示す各行がそれぞれ売上データである。また、売上ＤＢ１は、個々の売上データに、売上データを識別するＩＤを付して記憶してもよい。以下、ＩＤがｍである売上データをデータｍと省略して記す。ここでは、商品またはサービスが購入された時間順にＩＤが番号で付されている場合を例にする。
【００２３】
顧客状態推定装置２は、データ状態推定部２１と、分類器生成部２２と、初期顧客状態推定部２３と、データクラス予測部２４と、顧客状態推定部２５とを備え、一定期間における個別の顧客の顧客状態を推定する。なお、一定期間は、キーボードなどの入力装置（図示せず）を介して、顧客状態推定システムのユーザから入力されることによって指定されてもよい。あるいは、顧客状態推定システムが売上ＤＢ１における最近の所定期間などとするよう予め設定しておいてもよい。例えば、最後の売上データが示す日時から所定期間遡った期間を一定期間としてもよい。
【００２４】
データ推定部２１は、売上ＤＢ１に基づいて、売上ＤＢ１に記憶された各売上データ毎に顧客状態を推定する。顧客状態は、ターゲット購入に関する顧客の状態である。以下の説明では、顧客状態が、不明、潜在、トライアル、反復、離反のいずれかとなる場合を例にして説明する。「潜在」とは、顧客が未だターゲットを購入していない状態である。「トライアル」とは、顧客がターゲットを１度購入している状態である。「反復」とは、顧客がターゲットを繰り返し購入している状態である。「離反」とは、ターゲットを購入していた顧客がターゲットの購入を止めた状態である。「不明」とは、顧客を識別できない状態である。例えば、顧客が商品などの購入時にカードを利用しなかったことにより、顧客ＩＤが不明である場合の顧客状態などが「不明」に該当する。
【００２５】
分類器生成部２２は、データ推定部２１で反復と推定された全ての売上データに基づいて学習用データを生成し、学習用データに含まれる個々のデータが示す顧客に関して「購入する」、「購入しない」を分類するルールである分類器を生成する。分類器は、換言すれば、学習用データに含まれる個々のデータが示す販売条件に対応するラベルが、ターゲットを購入することを示す購入ラベルか、ターゲットを購入しないことを示す非購入ラベルかを判定するルールである。学習用データについては後述する。分類器は、決定木やサポートベクタマシンなどでよく、どのような分類器を用いるかは予めシステムで設定しておいてもよい。あるいは、顧客状態推定システムのユーザからキーボードなどの入力装置を介して入力されることで指定されてもよい。
【００２６】
初期顧客状態推定部２３は、データ推定部２１で推定された各売上データ毎の顧客状態に基づいて、個別の顧客に対し、一定期間中における状態を、不明、潜在、トライアル、または未定と推定する。ここで、「未定」とは、一定期間における顧客状態が「反復」であるいのか「離反」であるのか未定である状態を意味する。
【００２７】
データクラス予測部２４は、初期顧客状態推定部２３で顧客状態が未定と推定された顧客の一定期間における売上データに基づいて予測用データを生成し、予測用データと分類器生成部２２で生成された分類器とに基づいて、予測用データの各データのクラスを予測する。ここで、クラスとは、「購入する」、「購入しない」のいずれかである。予測用データについては後述する。
【００２８】
顧客状態推定部２５は、初期顧客状態推定部２３で顧客状態が未定と推定された各顧客に対し、データクラス予測部２４によって購入すると予測された回数、および購入しないと予測された回数をカウントする。そして、予測された購入回数と実際の購入回数とに基づいて、個別顧客の状態が反復か離反かを推定する。
【００２９】
デ−タ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、顧客状態推定部２５は、例えば、プログラムに従って動作するＣＰＵによって実現される。例えば、プログラムが、顧客状態推定システムが備えるプログラム記憶装置（図示せず）に記憶され、ＣＰＵがそのプログラムを読み込み、プログラムに従って、デ−タ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５として動作してもよい。
【００３０】
次に、動作について説明する。
図３は、データ推定部２１の処理経過の例を示すフローチャートである。データ推定部２１は、まず、全ての顧客ｉに対し、ターゲットの購入累計数Ｒ［ｉ］を０に初期化し、データのインデックスｊを１に初期化する（ステップＡ１）。ｊは、売上データを指定するための変数である。ｉは、顧客を指定するための変数である。なお、既に説明したように、ここでは、売上データに対して、商品またはサービスの購入時間順に番号が付されているものとする。また、売上データの数はデータ１からデータＭまでのＭ個であるとする。
【００３１】
データ推定部２１は、売上ＤＢ１を参照して、データｊに該当する顧客の状況が不明であるか否かを調べる（ステップＡ２）。本例では、データｊに含まれる顧客ＩＤが不明であれば、顧客状態が「不明」であるとすればよいが、他の方法で顧客状態が不明であるか否かを調べてもよい。
【００３２】
ステップＡ２でデータｊに該当する顧客が不明であるなら、データ推定部２１は、データｊにおける顧客状態を「不明」と推定する（ステップＡ６）。
【００３３】
ステップＡ２でデータｊに該当する顧客が不明でなかったならば、データ推定部２１は、データ推定部２１は、データｊにおける顧客ＩＤを変数ｉの値とし、変数ｉで特定される顧客（顧客ｉと記す。）の購入累計数Ｒ［ｉ］を、ターゲットの購入数分増加する（ステップＡ３）。すなわち、データ推定部２１は、データｊが示すターゲットの販売数分、Ｒ［ｉ］の値を増加させる。後述するようにステップＡ１０でｊを１インクリメントしならがらステップＡ２以降のループ処理を行うので、ステップＡ３で算出するＲ［ｉ］は、１番目の売上データからｊ番目の売上データまでの各売上データから求められる顧客ｉのターゲット購入累計数を表わす。
【００３４】
ステップＡ３の後、データ推定部２１は、Ｒ［ｉ］が０であるか否かを判定する（ステップＡ４）。０であるならば（ステップＡ４におけるＹｅｓ）、データ推定部２１は、データｊにおける顧客状態を「潜在」と推定する（ステップＡ７）。一方、０でなければ（ステップＡ４におけるＮｏ）、データ推定部２１は、Ｒ［ｉ］が１であるか否かを判定する（ステップＡ５）。１であるならば（ステップＡ５におけるＹｅｓ）、データ推定部２１は、データｊにおける顧客状態を「トライアル」と推定する（ステップＡ８）。１以外ならば（ステップＡ５におけるＮｏ）、データ推定部２１は、データｊにおける顧客状態を「購入」と推定する（ステップＡ９）。
【００３５】
ステップＡ６，Ａ７，Ａ８，Ａ９のいずれかで顧客状態を推定した後、データ推定部２１は、ｊを１インクリメントする（ステップＡ１０）。すなわち、変数ｊの値を１増加させる。そして、データ推定部２１は、インクリメント後のｊと、売上データ数Ｍとを比較し、ｊがＭ以下であるか否かを判定する（ステップＡ１１）。
【００３６】
ｊがＭ以下であるならば、データｊにおける顧客ＩＤを変数ｉの値としてステップＡ２以降の処理を繰り返す。一方、ｊの値がＭを超えていれば、データ推定部２１は、全ての顧客ｉに対し、ターゲットの購入累計数Ｒ［ｉ］を０に初期化し、データのインデックスｊを、売上データ数Ｍに初期化する（ステップＡ１２)。
【００３７】
続いて、データ推定部２１は、ステップＡ１２より前の処理で、データｊに関して「購入」と推定していたか否かを判定し（ステップＡ１３)、購入と推定していなければステップＡ１８に移行し、購入と推定してればステップＡ１４に移行する。
【００３８】
ステップＡ１４では、データ推定部２１は、データｊにおける顧客ＩＤを変数ｉの値とし、変数ｉで特定される顧客ｉの購入累計数購入累計数［ｉ］を、ターゲットの購入数分増加する（ステップＡ１４）。すなわち、データ推定部２１は、データｊが示すターゲットの販売数分、Ｒ［ｉ］の値を増加させる。後述するようにステップＡ１８でｊを１デクリメントしながらステップＡ１３以降のループ処理を行うので、ステップＡ１４で算出するＲ［ｉ］は、最後の売上データ（データＭ）から、最後からｊ番目までの売上データまでから求められる顧客ｉのターゲット購入累計数を表わす。換言すれば、売上データにおける時間的に後方のｊ個の売上データから求められる顧客ｉのターゲット購入累計数である。
【００３９】
ステップＡ１４の後、データ推定部２１は、Ｒ［ｉ］が０であるか否かを判定する（ステップＡ１５）。０であるならば（ステップＡ１５におけるＹｅｓ）、データ推定部２１は、データｊにおける顧客状態を「離反」と推定する（ステップＡ１７）。一方、０でなければ（ステップＡ１５におけるＮｏ）、データ推定部２１は、データｊにおける顧客状態を「反復」と推定する（ステップＡ１６）。
【００４０】
ステップＡ１３において、「購入」と推定していないと判定した場合（ステップＡ１３におけるＮｏ）、あるいは、ステップＡ１６，Ａ１７のいずれかの処理を行った後、データ推定部２１はｊを１デクリメントする（ステップＡ１８）。すなわち、変数ｊの値を１減じる。そして、データ推定部２１は、ｊの値が１以上であるか否かを判定し（ステップＡ１９）、ｊが１以上であるならば（ステップＡ１９におけるＹｅｓ）、ステップＡ１３以降の処理を繰り返し、ｊが１未満であるならば（ステップＡ１９におけるＮｏ）、処理を終了する。
【００４１】
図４は、ある顧客ｎのデータに関する推定例を示す。顧客ｎが商品またはサービスを購入した結果得られた売上データが、データｐ，ｑ，ｒ，ｓ，ｔ，ｕ，ｖ，ｗ，ｘ，ｙ，ｚであるとする。また、データｒ，ｔ，ｖは、その顧客ｎがターゲットとなる商品Ａを購入した結果生成された売上データであり、他のデータｐ，ｑ，ｓ，ｕ，ｗ，ｘ，ｙ，ｚは、ターゲット以外の商品またはサービスの購入の結果生成された売上データあるとする。図４に示す「時間順の購入累計数」は、ステップＡ３終了時における顧客ｎに関するＲ［ｎ］の値である。ステップＡ３で求めるＲ［ｎ］は、ターゲットの購入累計数を時間順にデータｊまでカウントした値を表わし、購入累計数が０回なら潜在、１個ならトライアル、２回以上になったら、その時点から以降は全て購入と推定する。従って、最初の推定状態（ステップＡ１２より前で求める推定状態）は、データｐ，ｑに関する処理後では「潜在」、データｒ，ｓに関する処理後では「トライアル」、データｔ以降の各データに関する処理後では「購入」となる（図４参照）。
【００４２】
また、図４に示す「時間と逆順の購入累計数」は、ステップＡ１４終了時における顧客ｎに関するＲ［ｎ］の値である。ステップＡ１４で求めるＲ［ｎ］は、ターゲットの累積購入数を、時間経過とは逆順に、最後のデータＭから、最後からｊ番目の売上データまでの範囲でカウントした値を表わしている。そして、「最初の推定状態」が「購入」である場合、その累計購入数が０回ならば「離反」と推定し、１回以上ならば「反復」と推定する。よって、データｚからデータｗまでは「離反」、データｖからデータｔまでは「反復」となる。データｐ，ｑに関しては「潜在」のままであり、データｒ，ｓに関しては「トライアル」のままである。
【００４３】
データ推定部２１が個々の売上データ毎に顧客状態を推定した後、分類器生成部２２が分類器を生成する。図５は、分類器生成部２２の処理経過の例を示すフローチャートである。分類器生成部２２は、まず、データ状態推定部２１で「反復」と推定された全ての売上データから学習用データを生成する（ステップＢ１）。学習用データは、「反復」と推定された各売上データに含まれる販売条件と、ターゲットが購入されたか否かを示すクラスとを対応づけたデータである。図６は、学習用データの例を示す説明図である。分類器生成部２２は、全ての売上データから「反復」と推定された各売上データを抽出し、ターゲット以外の商品およびサービスの販売数を削除する。そして、分類器生成部２２は、個々の売上データ毎に、ターゲットの販売数が１以上であれば、クラスを正（＋）に設定し、ターゲットの販売数が０であれば、クラスを負（−）に設定する。ここで、正（＋）は「購入する」を示し、負（―）は「購入しない」を示すものとする。さらに、分類器生成部２２は、個々の売上データに関して、売上データが示すターゲットの販売数が２以上であるならば、その売上データの数がそのターゲット数を等しくなるように複製を作成する。そして、同一データの数で、ターゲットの販売数を表わし、個々の売上データからターゲットの販売数の項目も除く。学習用データにおいて、販売条件（販売状況）を示す各項目を属性と呼んでもよい。
【００４４】
図６は、このようにして得られた学習用データの例を示している。図２に例示する売上データにおいて、データｍおよびデータｍ＋１に関して顧客状態が「反復」と推定されたとする。分類器生成部２２は、ターゲット（商品Ａ）以外の商品、サービスの販売数をデータｍおよびデータｍ＋１から除く。そして、データｍにおいて販売数は２であるので（図２参照）、クラスを正（＋）に設定する。さらに、そのデータｍの個数が２個になるようにそのデータｍを複製する。また、データｍ＋１に関しては、ターゲットの販売数が０であるので（図２参照）、分類器生成部２２は、クラスを負（−）に設定する。また、ターゲット販売数が０であるので複製は作成しない。
【００４５】
図６に例示する学習用データは、ターゲット商品が供給されない場合の売上データを含んでいるが、ターゲットが供給されない場合の売上データを除いてもよい。また、ターゲットの販売数が２以上のときに売上データの複製を作成するものとして説明したが、ターゲットの販売数でなく販売回数に注目する場合は、売上データを１個のままとして、複製を作成しなくてもよい。販売回数に着目して販売数を考慮しない場合、売上データにおいて、販売数の代わりに販売の有無のみを記述してもよい。
【００４６】
学習用データ作成後、分類器生成部２２は、学習用データを用いて、分類器を生成する（ステップＢ２）。分類器は、決定木やサポートベクタマシンなどでよく、何を用いるかは予めシステムで設定してもよいし、システムのユーザが指定してもよい。
【００４７】
以下、分類器として決定木を用いる場合を例にして、分類器の具体例を説明する。本例では、「購入する、しない」をクラスとし、「天気」、「天候」、「湿度」、「風が強いか否か」を属性とする場合を例にして説明する。図７は、既知の属性およびクラスの組み合わせの例を示す説明図である。図８は、分類器の例を示し、ここでは、決定木を分類器としている。図９は、分類器から予測されるクラスの例を示す説明図である。図７に示すように、既知の属性およびクラスの組み合わせがあれば、その既知の属性およびクラスから決定木を生成することができる。そして、その決定木と既知の属性からクラスを予測することができる。例えば、図８に示す決定木が得られていれば、図９に例示する属性から、図９に例示するクラスを予測することができる。項目の項目値に応じて枝分かれさせることを分割という。
【００４８】
図７に示す例では、各行が、「購入する／しない」とラベル付けられた学習用データ内の売上データに相当する。以下、図７に示す各行を学習用データ内の売上データとして説明し、以下、この売上データを、単に売上個別データと記す。また、「購入する」は、正（＋）のラベルに相当し、「購入しない」は、負（−）のラベルに相当する。決定木では、属性のとり得るラベル毎（例えば、「する（正）」、「しない（負）」というラベル毎）に売上個別データ数をまとめた情報をノードとする。例えば、図７に示すルートのノードでは、「する：９，しない：５」という情報をノードとしている。
【００４９】
分類器生成部２２は、学習用データを生成すると、どの項目で最初に分割させるかを決定する。このとき、分類器生成部２２は、項目１〜Ｎの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択する。ここでは、分割前のノードのエントロピーと、分割後のエントロピーの差を評価値とする場合を例にするが、他の計算方法で評価値を求めてもよい。ノードのエントロピーは、ラベルが正（＋）の売上個別データの割合をｑとし、ラベルが負（−）の売上個別データの割合を１−ｑとすると、−ｑｌｏｇｑ−（１−ｑ）ｌｏｇ（１−ｑ）で表される。分割後のノードのエントロピーは、分割後の各ノードのエントロピーの加重平均である。
【００５０】
例えば、学習用データにおいて、「正」が９データあり、「負」が５データあるとするとルートのノードは「正：９，負：５」となる。この場合、正（＋）のデータが９データあり、負（−）のデータが５データあるので、ルートのノードのエントロピーは、−（９／１４）×ｌｏｇ（９／１４）−（５／１４）×ｌｏｇ（５／１４）＝０．９４０となる。
【００５１】
分類器生成部２２は、一つの項目でルートのノードを分割して得られるノードを求める。すなわち、その項目の項目値毎に、正および負の売上個別データ数を表す情報（ノード）を生成する。例えば、その項目１のとり得る値が「０」または「１」であり、項目１の値が「０」のときには、正が５データあり、負が２データあるとし、項目１の値が「１」のときには、正が０データあり、負が７データあるとする。この場合、項目１の値が「０」か「１」かで分岐するノードとして、「正：５，負：２」というノードと、「正：０，負：７」というノードとを生成する。分類器生成部２２は、分割後の各ノードのエントロピーを計算し、分割後の各ノードにおける正または負としてカウントされる個別データ数に応じて各ノードのエントロピーの加重平均を求める。上記の例では「正：５，負：２」というノードにおいても、「正：０，負：７」というノードにおいても個別データの総数は７であるので、加重平均を行う際の重み付け係数は各ノードでいずれも（７／１４）となる。従って、本例の場合、分類器生成部２２は、分割後のエントロピーを以下のように計算する。
【００５２】
（７／１４）×｛−（５／７）×ｌｏｇ（５／７）−（２／７）×ｌｏｇ（２／７）｝
＋（７／１４）×｛−（０／７）×ｌｏｇ（０／７）−（７／７）×ｌｏｇ（７／７）｝
＝０．４３２
【００５３】
従って、本例の場合、分類器生成部２２は、項目１で分割した場合の評価値を、０．９４０−０．４３２＝０．５０８と計算する。
【００５４】
分類器生成部２２は、項目１だけでなく、他の項目についても同様に、その項目で分割したときの評価値を計算し、評価値が最大となる項目で分割すると決定する。このようにして、ルートのノードを分割する項目を決定する。
【００５５】
なお、上記の項目１の例では、項目１のとり得る値が「０」または「１」の二つだけである場合を示した。項目値が年齢であり、その値が２０，２１，２２のように連続する値の場合には、どの項目値で分割させるのかも決める。この場合、分類器生成部２２は、各項目値間の中間値をしきい値とし、各しきい値毎に、その「しきい値以下」および「そのしきい値より大」とに分割させた場合の評価値を求める。そして、評価値が最大となる場合を選択することによって、どの項目値で分割させるのかも決定する。例えば、項目値が２０，２１，２２，・・・と連続する場合では、「２０．５以下」および「２０．５より大」で分割した場合の評価値、「２１．５以下」および「２１．５より大」で分割した場合の評価値等をそれぞれ計算し、評価値が最も高くなるように分割すればよい。
【００５６】
分類器生成部２２は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次、繰り返す。また、分類器生成部３３は、所定の条件が満たされたときには、ノードの分割を停止する。所定の条件とは、例えば、「ノードにおける売上個別データのクラスが全て同じになる」という条件や、「ノードにおける正または負としてカウントされる売上個別データ数が所定数（例えば２）以下になる」という条件を用いてよい。前者の条件を採用すると、ノードにおける個別データが全て正または負になると、そのノードの分割を継続しない。このように、分類器生成部２２は、ルートのノードから順次、分割を繰り返し、木構造の決定木を生成する。
【００５７】
また、分類器生成部２２は、上記のように、木構造の決定木を生成した後、その決定木に対する枝刈りを行う。決定木において、分割されて生成された最終的なノードを葉と呼ぶ。ある葉に分類されたデータ数がＮであるとする（すなわち、正または負としてカウントされる個別データ数がＮであるとする）。この葉に分類されたＮデータ中、Ｅデータが誤りであるとする。この仮定では、Ｎ回の試行中、誤りという事象をＥ回観測したとみなし、大きさＮの標本で、誤りという事象が起きる確率がｒである二項分布と考えることができる。予め与えられた信頼度ＣＦに対して、ｒの上限をＵ＿ＣＦ（Ｅ，Ｎ）と表すことにすると、Ｎデータでの誤りの発生する期待値は、Ｎ×Ｕ＿ＣＦ（Ｅ，Ｎ）となる。分類器生成部２２は、子のノードが全て葉である親のノードに対し、親における誤りの期待値（誤りの発生する期待値）と、子である葉の誤りの期待値の合計とを比較する。そして、子での期待値の合計の方が親の誤りの期待値よりも大きければ、分類器生成部２２は、葉を縮退して、その親を葉とする。分類器生成部２２は、この処理を順次繰り返すことで、決定木全体の葉の枝刈りを行う。
【００５８】
葉を縮退する場合、分類器生成部２２は、葉を削除して、その削除した葉の親のノードを葉とすればよい。例えば、図８に例示する決定木において、「湿度」という項目の値に応じて分割したノードを縮退する場合、分類器生成部２２は、湿度の項目値が７０％以下となっている個別データ数を表すノード「する：２，しない：０」と、湿度の項目値が７０％より高くなっている個別データ数を表すノード「する：０，しない：３」とを削除して、その２つのノードの親ノード「する：２，しない：３」を葉とすればよい。
【００５９】
分類器として決定木を生成する場合、例えば、上記のように、決定木を定めて枝刈りを行うことで、決定木を生成すればよい。
【００６０】
分類器作成後、初期顧客状態推定部２３は、データ推定部２１で推定された各売上データ毎の顧客状態に基づいて、個別の顧客に対し、一定期間中における状態を推定する。図１０は、初期顧客状態推定部２３の処理経過の例を示すフローチャートである。以下、各顧客に対して、１から順番に番号を割り当て、その番号によって顧客を指定する場合を例にして説明する。
【００６１】
初期顧客状態推定部２３は、まず、ｉ＝１に初期化する（ステップＣ１）。図３に示す場合と同様に、ｉは、顧客を指定するための変数である。次に、初期顧客状態推定部２３は、顧客ｉに相当する売上データを一定期間の終了時刻から時間経過とは逆順に探索し、時間的に最後のデータの状態を調べる（ステップＣ２）。この一定期間とは、顧客状態を推定する対象となる期間であり、既に説明したように、ユーザに指定されていても、あるいは、売上ＤＢ１における最近の所定期間とするように予め設定されていてもよい。
【００６２】
一定期間内における売上データの最後の売上データに関する顧客状態が「潜在」であるならば、初期顧客状態推定部２３は、一定期間における顧客ｉの状態を「潜在」と推定し（ステップＣ３）、ステップＣ６に移行する。
【００６３】
一定期間内における売上データの最後の売上データに関する顧客状態が「トライアル」であるならば、初期顧客状態推定部２３は、一定期間における顧客ｉの状態を「トライアル」と推定し（ステップＣ４）、ステップＣ６に移行する。
【００６４】
一定期間内における売上データの最後の売上データに関する顧客状態が「反復」または「離反」であるならば、初期顧客状態推定部２３は、一定期間における顧客ｉの状態を「未定」と推定し（ステップＣ５）、ステップＣ６に移行する。
【００６５】
ステップＣ６において、初期顧客状態推定部２３は、ｉを１インクリメントする（ステップＣ６）。すなわち、ｉの値を１増加する。
【００６６】
ステップＣ６の後、初期顧客状態推定部２３は、ｉと、全顧客数（Ｎとする）とを比較し、ｉがＮ以下であるか否かを判定する（ステップＣ７）。ｉがＮ以下ならば（ステップＣ７におけるＹｅｓ）、ステップＣ２以降の処理を繰り返す。ｉがＮを超えていれば、処理を終了する。
【００６７】
初期顧客状態推定部２３の処理後、データクラス予測部２４は、初期顧客状態推定部２３で顧客状態が未定と推定された顧客の一定期間における売上データに基づいて予測用データを生成し、予測用データと分類器生成部２２で生成された分類器とに基づいて、予測用データの各データのクラスを予測する。図１１は、データクラス予測部２４の処理経過の例を示すフローチャートである。
【００６８】
データクラス予測部２４は、まず、初期顧客状態推定部２３によって未定と推定された顧客に対し、一定期間の売上データから予測用データを生成する（ステップＤ１）。予測用データは、初期顧客状態推定部２３によって「未定」と推定された顧客の各売上データに含まれる販売条件と、ターゲットが購入されたか否かを示すクラスとを対応づけたデータである。予測用データの作成手順は、全ての売上データから、初期顧客状態推定部２３によって「未定」と推定された顧客の一定期間における各売上データを抽出する点が学習用データと異なるが、その他の点については、学習用データの作成手順と同様である。すなわち、学習用データ生成時には、「反復」と推定された各売上データを抽出するが、予測用データ生成時には、初期顧客状態推定部２３によって「未定」と推定された顧客の一定期間における各売上データを抽出する。以降の動作は、学習用データ生成時と同様である。従って、予測用データも、学習用データと同様に、属性（販売条件）とクラスとの組を含んでいる。なお、予測用データとして、ターゲット商品が供給されない場合の売上データを含んでも、ターゲットが供給されない場合の売上データを除いていてもよい。
【００６９】
次に、データクラス予測部２４は、分類器生成部２２で生成された分類器に基づいて、予測用データのクラスを予測し（ステップＤ２）、終了する。データクラス予測部２４は、予測用データに含まれているクラスとは別に、予測用データにおける属性（販売条件）からクラスを予測する。
【００７０】
例えば、分類器が決定木である場合、データクラス予測部２４は、そのルートのノードの項目に関して予測用データ内の個々の売上データの項目値を参照し、この項目値に応じて子ノードを辿る。データクラス予測部２４は、同様にノードを辿っていき、葉のノードまで辿ったならば、葉のノードでカウント数の多い方のラベルを予測結果とすればよい。例えば、葉のノードで、「正：３，負：０」となっていれば、「正」と予測すればよい。
【００７１】
データクラス予測部２４が予測用データにおける属性からクラスを予測すると、顧客状態推定部２５は、初期顧客状態推定部２３で顧客状態が未定と推定された各顧客に対し、データクラス予測部２４によって購入すると予測された回数、および購入しないと予測された回数をカウントし、また、予測用データに含まれている実際のクラスにおける正（購入する）の数、および負（購入しない）の数をカウントする。そして、予測された購入回数と実際の購入回数とに基づいて、個別顧客の状態が反復か離反かを推定する。図１２は、顧客状態推定部２５の処理経過の例を示すフローチャートである。
【００７２】
顧客状態推定部２５は、まず、ｉ＝１に初期化する（ステップＥ１）。ｉは、顧客を指定するための変数である。次に、顧客状態推定部２５は、顧客ｉの顧客状態が初期顧客状態推定部２３によって「未定」と推定されていたか否かを判定する（ステップＥ２）。
【００７３】
顧客ｉの顧客状態が「未定」と推定されていなければ（ステップＥ２におけるＮｏ）、ステップＥ７に移行する。
【００７４】
顧客ｉの顧客状態が「未定」と推定されていたならば（ステップＥ２におけるＹｅｓ  ）、顧客状態推定部２５は、データクラス予測部２４によって生成された予測用データを参照し、顧客ｉが実際にターゲットを購入した回数、および、ターゲットを購入しなかった回数をカウントし、さらに、予測用データに基づいてデータクラス予測部２４によって購入すると予測された回数、および購入しないと予測された回数をカウントする（ステップＥ３）。
【００７５】
ステップＥ３の後、顧客状態推定部２５は、顧客ｉが実際にターゲットを購入した回数を観測値とし、予測用データの属性から分類器によって予測された購入回数を期待値とし、帰無仮説を「実際の購入確率は、反復顧客として予測された購入確率である」として、帰無仮説が採択されるか棄却されるかを検定する（ステップＥ４）。検定方法として、χ２検定やフィッシャーの正確確率検定などのいずれかを、顧客状態推定システムがあらかじめ定めておいてもよい。あるいは、入力装置（図示せず）等を介してユーザから検定方法を指定する情報が入力され、顧客状態推定部２５は、その指定された検定方法で検定を行ってもよい。
【００７６】
検定における有意水準は、予め５％などと定められていてもよい。ただし、５％は例示であり、有意水準は５％に限定されない。また、入力装置（図示せず）等を介してユーザから有意水準の値が入力され、顧客状態推定部２５は、入力された値を有意水準として検定を行ってもよい。
【００７７】
帰無仮説が採択された場合、顧客状態推定部２５は、顧客ｉの顧客状態を「反復」と推定し（ステップＥ５）、ステップＥ７に移行する。一方、帰無仮説が棄却された場合、顧客状態推定部２５は、顧客ｉの顧客状態を「離反」と推定し、ステップＥ７に移行する。
【００７８】
以下、有意水準５％のフィッシャーの正確確率検定で検定を行う場合を例にして、ステップＥ４の検定の具体例を説明する。
【００７９】
例えば、予測用データの中に顧客ｉのデータが５個あり、データクラス予測部２４によって購入すると予測された回数が４回であり、購入しないと予測された回数が１回であったとする。また、顧客ｉがターゲットを実際に購入した回数が１であり、顧客ｉがターゲットを購入しなかった実際の回数が４であったとする。この場合の分割表を図１３に示す。合計を固定した分割表は複数個考えられるが、観察された図１３に示す分割表が得られる確率は、以下に示す式（１）のようになる。
【００８０】
ａ＋ｂＣａ・ｃ＋ｄＣｃ／ａ＋ｂ＋ｃ＋ｄＣａ＋ｃ＝５Ｃ１・５Ｃ４／１０Ｃ５＝２５／２５２
式（１）
【００８１】
式（１）において、ａは、顧客ｉがターゲットを実際に購入した回数（予測用データにおける「正」ラベルの数）であり、ｂは、顧客ｉがターゲットを購入しなかった実際の回数（予測用データにおける「負」ラベルの数）である。また、ｃは、購入すると予測された回数であり、ｄは、購入しないと予測された回数である。
【００８２】
顧客状態推定部２５は、分割表を求めて、式（１）の計算による確率を求めた後、同様に、その分割表における周辺の合計を固定したときの各分割表と、各分割表におけるＳａ（＝ａｄ−ｂｃ）を求める。周辺の合計とは、ａ＋ｂ，ｃ＋ｄ，ａ＋ｃ，ｂ＋ｄであり、図１３に示す例では、それぞれ「５」として示している。この周辺の合計（ａ＋ｂ，ｃ＋ｄ，ａ＋ｃ，ｂ＋ｄ）を固定したときの、ａ，ｂ，ｃ，ｄの各組み合わせを定めれば、各分割表が得られる。図１４は、最初に求めた分割表における周辺の合計を固定したときの各分割表（具体的にはａ，ｂ，ｃ，ｄの組）と、その各分割表におけるＳａ＝ａｄ−ｂｃの値を示す。また、顧客状態推定部２５は、周辺の合計を固定したときの各分割表が得られる確率を、分割表ごとに式（１）と同様の計算により求める。
【００８３】
また、最初に求めた分割表（本例では、図１３に示す分割表）におけるａｄ−ｂｃの値をＳ０とする。顧客状態推定部２５は、最初に求めた分割表の周辺の合計（ａ＋ｂ，ｃ＋ｄ，ａ＋ｃ，ｂ＋ｄ）を固定したときの各分割表のうち、ＳａがＳ０と同符号であって、｜Ｓａ｜≧｜Ｓ０｜となる分割表を特定する。そして、顧客状態推定部２５は、その分割表が得られる確率の合計（Ｐとする。）を求める。本例では、ＳａがＳ０と同符号であって、｜Ｓａ｜≧｜Ｓ０｜となる分割表は、「ａ＝０，ｂ＝５，ｃ＝５，ｄ＝０」である分割表と、「ａ＝１，ｂ＝４，ｃ＝４，ｄ＝１」である分割表（図１３と同一の分割表）である（図１４参照）。これらの分割表が得られる確率は１／２５２、２５／２５２である。従って、その確率の合計値は、Ｐ＝１／２５２＋２５／２５２＝０．１０３２となる。
【００８４】
顧客状態推定部２５は、Ｐを求めた後、Ｐと有意水準とを比較し、Ｐが有意水準より大きければ、帰無仮説を採択し、ステップＥ５で「反復」と推定する。また、Ｐが有意水準以下であれば、帰無仮説を棄却し、ステップＥ６で「離反」と推定する。本例では、有意水準は５％であり、Ｐ＞０．０５となるので、帰無仮説を採択する。よって、顧客ｉの顧客状態を反復と推定する。仮に、顧客ｉの実際の採用回数が０回であるならば、Ｐ＝１／２５２＝０．００４０≦０．０５となるので、帰無仮説を棄却する。その場合には、顧客ｉの顧客状態を「離反」と推定する。
【００８５】
なお、ここでは、検定を用いて「反復」であるか「離反」であるかを推定する場合について説明したが、分割表と、その分割表なら反復と予測するか離反と予測するかのルールを用いてもよい。そして、そのようなルールは、顧客状態推定システムが予め設定されていてもよい。あるいは、顧客状態推定システムのユーザから入力装置（図示せず）を介して入力されてもよい。
【００８６】
顧客ｉの顧客状態が「未定」と推定されていないとステップＥ２で判定した後や（ステップＥ２におけるＮｏ）、ステップＥ５の後、および、ステップＥ６の後、顧客状態推定部２５は、ｉを１インクリメントする（ステップＥ７）。すなわち、ｉの値を１増加する。次に、顧客状態推定部２５は、ｉと、全顧客数Ｎとを比較し、ｉがＮ以下であるか否かを判定する（ステップＥ８）。ｉがＮ以下である場合には（ステップＥ８におけるＹｅｓ）、ステップＥ３以降の処理を繰り返し、ｉがＮを超えている場合には（ステップＥ８におけるＮｏ）、処理を終了する。
【００８７】
また、処理終了前（例えば、ステップＥ８でＮｏと判定した後）に、個別の顧客の顧客状態を、例えば、ディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりする出力手段（図示せず）を備えていてもよい。また、例えば、顧客状態推定部２５のステップＥ４で検定を用いた場合は、出力手段（図示せず）は、顧客状態に加えて、推定の確からしさを示す値として、Ｐ値などをディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりしてもよい。出力手段は、例えば、プログラムに従って動作するＣＰＵによって実現される。このＣＰＵは、データ状態推定部２１などとして動作するＣＰＵと同一であってもよい。
【００８８】
なお、本実施の形態では、ターゲットに対する顧客の顧客状態を、潜在、トライアル、反復、離反という４つの状態として説明したが、顧客状態はこれらの４つの状態に限定されるものではない。別の顧客状態の組が顧客状態推定システムに予め設定されていてもよい。あるいは、顧客状態推定システムのユーザにより、入力装置などを介して、顧客状態推定システムで用いられる顧客状態の組が入力され、その顧客状態のいずれになるかを推定するように動作してもよい。
【００８９】
本実施形態によれば、ターゲットに対して、変動要因を考慮しながら一定期間における個別の顧客の顧客状態を予測することができるという効果がある。例えば、気温の暑い日の昼ごろにだけ購入される飲料をターゲットとする場合、ある顧客が一定期間にその飲料を購入しなかったとしても、顧客が離反したのか、一定期間涼しかった、あるいは、顧客が昼ごろ来店しなかったなどの変動要因によって購入されなかったのかは分からない。本発明では、例えば、分類器生成部２２が、その飲料が暑い日の昼頃にだけ購入されることを学習し、データクラス予測部３２が、顧客の個別の購入時点でターゲットを購入するかどうかを予測する。よって、暑い日の昼ごろの来店が続いたなら購入と予測される回数が多く、そうでなければ購入と予測される回数が少なくなって、顧客状態推定部２５における検定結果が異なるため、顧客が一定期間に購入しなかった場合に、顧客の離反か変動要因によるのかを推定することができる。
【００９０】
このように、本実施形態によれば、顧客が商品やサービスを購入した実績に基づいて、顧客毎に個別に、所定期間における顧客状況を推定することができる。また、本実施形態では、売上データがあれば、顧客状況を推定することができるので、顧客状態推定システムのユーザは、専門的な知見がなくても、顧客状態の推定結果を得ることができる。
【００９１】
実施形態２．
図１５は、本発明の顧客状態推定システムの第２の実施形態の構成例を示すブロック図である。第１の実施形態と同様の構成要素については、図１と同一の符号を付し、詳細な説明を省略する。第２の実施形態の顧客状態推定システムは、売上データを記憶する売上ＤＢ１と、売上データを用いて顧客の状態を推定する顧客状態推定装置３とを備える。
【００９２】
売上ＤＢ１が記憶する売上データは、第１の実施形態と同様である。
【００９３】
顧客状態推定装置３は、制御部３１と、データ状態推定部２１と、分類器生成部２２と、初期顧客状態推定部２３と、データクラス予測部２４と、顧客状態推定部２５とを備え、個別の顧客の時系列的な顧客状態を推定する。
【００９４】
本実施の形態では、顧客状態を推定する対象となる期間（以下、第１の実施形態と同様に「一定期間」と記す。）として、複数の一定期間を用いる。制御部３１は、複数の一定期間が与えられると、そのうちの１つの一定期間をデータ状態推定部２１に送る。すると、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５は、第１の実施形態と同様に動作し、制御部３１から送られた一定期間における顧客状態を推定する。その一定期間に関して顧客状態推定部２５が推定処理を終了すると、制御部３１は、残りの一定期間のうちの１つをデータ状態推定部２１に送り、同様の処理を行う。与えられた各一定期間について顧客状態の推定処理が完了するまで同様の処理を繰り返す。なお、顧客状態推定システムは、売上ＤＢ１における最近の複数の一定期間をそれぞれ一定期間として用いてもよい。例えば、最後の売上データが示す日時から一定の長さの時間毎に日時を遡り、その日時同士の間の期間をそれぞれ一定期間としてもよい。あるいは、複数の一定期間は、入力装置（図示せず）を介して、顧客状態推定システムのユーザから入力されることによって指定されてもよい。
【００９５】
制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５は、例えば、プログラムに従って動作するＣＰＵによって実現される。すなわち、ＣＰＵが、プログラムを読み込み、そのプログラムに従って、制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５として動作してもよい。
【００９６】
次に、動作について説明する。図１６は、第２の実施形態の顧客状態推定システムの処理経過の例を示すフローチャートである。ここでは、与えられた一定期間数をＴ個とし、それぞれの一定期間を、一定期間１、一定期間２、・・・、一定期間Ｔと記すこととする。
【００９７】
制御部３１は、まず、変数ｔの値をｔ＝１と初期化する（ステップＦ１）。ｔは、一定期間を指定するための変数である。
【００９８】
次に、データ状態推定部２１と、分類器生成部２２と、初期顧客状態推定部２３と、データクラス予測部２４と、顧客状態推定部２５とが、一定期間ｔ（変数ｔによって特定される一定期間）における個別の顧客の顧客状態を推定する（ステップＦ２）。ステップＦ２におけるデータ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、顧客状態推定部２５の動作は、第１の実施形態と同様である。ただし、データ状態推定部２１および分類器生成部２２の動作結果は、一定期間ｔによらずに変わらないので、ループ処理でステップＦ２に移行した回数が２回目以降である場合、最初のステップＦ２では、最初のステップＦ２におけるデータ状態推定部２１および分類器生成部２２の動作結果を用いて、初期顧客状態推定部２３、データクラス予測部２４、顧客状態推定部２５が処理を行えばよい。
【００９９】
ステップＦ２の後、制御部３１は、変数ｔの値を１インクリメントし（ステップＦ３）、ｔが一定期間の数Ｔ以下であるか否かを判定する（ステップＦ４）。ｔがＴ以下であれば（ステップＦ４におけるＹｅｓ）、ステップＦ２以降の処理を繰り返し、ｔがＴを超えていれば（ステップＦ４におけるＮｏ）、処理を終了する。このように、個々の一定期間毎に顧客状態を推定することによって、個別の顧客の時系列的な顧客状態を推定する。
【０１００】
制御部３１は、一定期間毎の顧客状態の推移に応じて、顧客状態を修正してもよい。例えば、制御部３１は、ある個別顧客に関して、一定期間ｔ−１と一定期間ｔ＋１とにおける顧客状態が同一だが、その間の一定期間ｔにおける顧客状態が未定の場合には、一定期間ｔにおける顧客状態を一定期間ｔ−１における顧客状態と修正してもよい。また、制御部３１は、個別顧客の顧客状態が、反復という推定が連続している途中の時期に離反と推定された時期がある場合は、離反を反復と修正してもよい。そのような場合の修正するルールは、顧客状態推定システムに予め設定されていてもよいし、顧客状態推定システムのユーザによって入力されてもよい。
【０１０１】
本実施形態によれば、第１の実施形態と同様の効果を得ることができる。また、複数の一定期間それぞれについて顧客状態を推定するので、ターゲットに対して、変動要因を考慮しながら個別の顧客の顧客状態の時系列変化を推定することができる。
【０１０２】
また、本実施形態において、処理終了前（例えばステップＦ４でＮｏと判定した後）に、個別の顧客に対する顧客状態の時系列変化を、例えば、ディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりする出力手段（図示せず）を備えていてもよい。また、出力手段は、処理終了前に、顧客状態毎に顧客数をカウントし、「潜在」である顧客数の推移、「トライアル」である顧客数の推移、「反復」である顧客数の推移、「離反」である顧客数の推移などのグラフで表示してもよい。
【０１０３】
また、例えば、制御部３１が、一定期間毎に、全体の顧客数Ｎから「潜在」と推定された顧客数を差し引くことにより、ターゲットの普及数を計算してもよい。そして、出力手段は、各一定期間毎に計算されたターゲットの普及数の推移を表示してもよい。そのような構成によれば、ターゲットに対して、普及数の推移や離反数の推移などを推定することができる。
【０１０４】
また、顧客状態推定部２５が有意水準を変更して、各有意水準毎に推定処理を行ってもよい。そして、出力手段は、有意水準を変更した場合のグラフをディスプレイ装置に表示させたり、印刷装置に印刷させたりしてもよい。そのような表示などを行えば、顧客状態推定システムのユーザは、適切な有意水準を求めやすくなる。
【０１０５】
上述の出力手段（図示せず）は、例えば、プログラムに従って動作するＣＰＵによって実現される。このＣＰＵは、データ状態推定部２１などとして動作するＣＰＵと同一であってもよい。
【０１０６】
実施形態３．
図１７は、本発明の顧客状態推定システムの第３の実施形態の構成例を示すブロック図である。第２の実施形態と同様の構成要素については、図１５と同一の符号を付し、詳細な説明を省略する。第３の実施形態の顧客状態推定システムは、売上データを記憶する売上ＤＢ１と、売上データを用いて顧客の状態を推定する顧客状態推定装置４とを備える。
【０１０７】
売上ＤＢ１が記憶する売上データは、第１の実施形態や第２の実施形態と同様である。
【０１０８】
顧客状態推定装置４は、制御部３１と、データ状態推定部２１と、分類器生成部２２と、初期顧客状態推定部２３と、データクラス予測部２４と、顧客状態推定部２５と、補正部４１とを備え、個別の顧客の時系列的な顧客状態を推定する。
【０１０９】
本実施の形態では、第２の実施形態と同様に、顧客状態を推定する対象となる期間（以下、第１および第２の実施形態と同様に「一定期間」と記す。）として、複数の一定期間を用いる。制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５は、第２の実施形態と同様に動作し、複数の一定期間が与えられると、個々の一定期間についてそれぞれ個別の顧客の顧客状態を推定する。
【０１１０】
補正部４１は、顧客状態毎の顧客数を一定期間毎にカウントし、顧客状態毎の顧客数の推移を時系列解析し、その時系列解析の結果に基づいて、特定の顧客状態の顧客数の推定結果を補正する。
【０１１１】
制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、顧客状態推定部２５、および補正部４１は、例えば、プログラムに従って動作するＣＰＵによって実現される。すなわち、ＣＰＵが、プログラムを読み込み、そのプログラムに従って、制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、顧客状態推定部２５、および補正部４１として動作してもよい。
【０１１２】
次に、動作について説明する。第２の実施形態と同様に、与えられた一定期間数をＴ個とし、それぞれの一定期間を、一定期間１、一定期間２、・・・、一定期間Ｔと記すこととする。また、ここでは、説明を簡単にするために、一定期間の長さがいずれも同じであるとする。すなわち、一定期間ｔの開始時刻から一定期間ｔ＋１の開始時刻までの間隔は、ｔによらず一定とする。
【０１１３】
まず、制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５が処理を行い、それぞれの一定期間毎に、個別の顧客の顧客状態を推定する。この動作は、第２の実施形態で説明したステップＦ１〜Ｆ４の動作と同様である。
【０１１４】
一定期間１から一定期間Ｔまでの各一定期間について個別の顧客の顧客状態が推定された後、補正部４１は、特定の顧客状態の顧客数の推定結果を補正する。ここでは、顧客状態が「潜在」となっている顧客数の推移を補正する場合について説明するが、他の顧客状態の顧客数の推移を補正してもよい。また、複数の顧客状態について、それぞれの顧客数の推移を補正してもよい。さらに、各顧客状態毎に、それぞれの顧客数の推移を補正してもよい。なお、顧客数をカウントするときには、少なくとも顧客数の推移の補正対象となる顧客状態に関して顧客数をカウントすればよい。顧客数の推移を補正する対象となる顧客状態は、顧客状態推定システムにおいて予め設定されていてもよい。あるいは、顧客数の推移を補正する対象となる顧客状態を示す情報が、顧客状態推定システムのユーザによって入力装置（図示せず）などを介して入力されることによって、顧客状態が指定されてもよい。
【０１１５】
図１８は、補正部４１の処理経過の例を示すフローチャートである。一定期間１から一定期間Ｔまでの各一定期間について個別の顧客の顧客状態が推定されると、補正部４１は、変数ｔの値をｔ＝１と初期化する（ステップＧ１）。ｔは、一定期間を指定するための変数である。次に、補正部４１は、一定期間ｔ（変数ｔによって特定される一定期間）において、顧客状態が「潜在」であると推定された顧客数をカウントする（ステップＧ２）。以下、一定期間ｔにおいて顧客状態が「潜在」であると推定された顧客数をＮ［ｔ］と表す。
【０１１６】
次に、補正部４１は、変数ｔの値を１インクリメントし（ステップＧ３）、ｔが一定期間の数Ｔ以下であるか否かを判定する（ステップＧ４）。ｔがＴ以下であれば（ステップＧ４におけるＹｅｓ）、ステップＧ２以降の処理を繰り返す。
【０１１７】
ｔがＴを超えていれば（ステップＧ４におけるＮｏ）、補正部４１は、時系列解析によって、ステップＧ２で求めた顧客数Ｎ［１］〜Ｎ［Ｔ］をそれぞれ補正する（ステップＧ５）。時系列解析では、例えば、以下に示す式（２）で表されるような自己回帰移動平均モデルなどを推定して、残差を除いた値としてｔ＝１からｔ＝Ｔまでの各Ｎ［ｔ］を修正すればよい。
【０１１８】
【数１】
2010073189.tif 000003
【０１１９】
式（２）において、Ｎ［ｔ］は一定期間ｔにおける潜在状態の顧客数である。また、ａ［ｉ］、ｂ［ｊ］は任意の定数パラメタであり、ｐは、自己回帰の次数、ｑは過去の残差の移動平均の次数、ｅ［ｔ］は、残差である。モデルの推定では、ｅ［ｔ］を平均０の正規分布と仮定して、Ｎ［ｔ］（ｔ＝１，・・・，Ｔ）に合うように各種パラメタを推定すればよい。
【０１２０】
また、本実施形態において、処理終了前に（例えばステップＧ５の後）、潜在、トライアル、反復、離反などの顧客数をカウントし、「潜在」である顧客数の推移、「トライアル」である顧客数の推移、「反復」である顧客数の推移、「離反」顧客数の推移、普及数の推移などをグラフ化して、ディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりする出力手段（図示せず）を備えていてもよい。なお、普及数は、例えば、制御部３１が、一定期間毎に、全体の顧客数Ｎから「潜在」と推定された顧客数を差し引くことにより求めればよい。
【０１２１】
さらに、例えば、補正部４１が、時系列解析の式を繰り返して起用することにより、入力された複数の一定期間よりも将来のそれぞれの状態の顧客数を求めてもよい。そして、出力手段が、その顧客数の変化をグラフとして、ディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりしてもよい。上述の出力手段（図示せず）は、例えば、プログラムに従って動作するＣＰＵによって実現される。このＣＰＵは、データ状態推定部２１などとして動作するＣＰＵと同一であってもよい。
【０１２２】
また、例えば、顧客状態推定部２５が、顧客状態毎の顧客数と実際のターゲットの販売数との関係を分析し、将来の販売数を予測してもよい。将来の販売数の予測方法の例をいかに示す。例えば、反復と推定された顧客数をＲ［ｔ］、ターゲットの販売数をＳ［ｔ］とし、一次関数を用いて近似すると、以下に示す式（３）のようになる。
【０１２３】
Ｓ［ｔ］＝ａ・Ｒ［ｔ］＋ｂ  （ｔ＝１、・・・、Ｔ）        式（３）
【０１２４】
この近似式の誤差を最小とするようなパラメタａ、ｂを求め、この式を用いて将来の反復と推定された顧客数からターゲットの販売数を予測することができる。また、上記のパラメタａ，ｂは、最小二乗法により、以下に示す式（４）、式（５）の計算を行って求めればよい。
【０１２５】
【数２】
2010073189.tif 000004
【０１２６】
【数３】
2010073189.tif 000005
【０１２７】
式（４），（５）で求めたａ，ｂを式（３）に代入することにより、反復と推定された顧客数Ｒ［ｔ］からターゲット販売数Ｓ［ｔ］を求める関数が得られる。例えば、顧客状態推定部２５が、この関数を用いて、反復と推定された顧客数Ｒ［ｔ］からターゲット販売数Ｓ［ｔ］を計算してもよい。
【０１２８】
本発明によれば、第２の実施形態と同様の効果を得ることができる。さらに、例えば、顧客状態が「潜在」となっている顧客数が一定期間毎に求められると、補正部４１は、時系列解析によってその顧客数を補正する。従って、顧客状態が「潜在」となっている顧客数をより正確に推定することができる。また、上記の説明では、「潜在」を例にして説明したが、他の顧客状態の場合についても同様に、顧客数を推定することができる。さらに、本実施形態では、時系列解析の式を繰り返して起用することにより、入力された複数の一定期間よりも将来のそれぞれの状態の顧客数を求めることができる。従って、売上データのない将来の推移も予測することができるという効果がある。
【０１２９】
実施形態４．
図１９は、本発明の顧客状態推定システムの第４の実施形態の構成例を示すブロック図である。第３の実施形態と同様の構成要素については、図１７と同一の符号を付し、詳細な説明を省略する。第４の実施形態の顧客状態推定システムは、売上データを記憶する売上ＤＢ１と、顧客の情報を含んだデータを記憶する顧客ＤＢ５と、顧客の顧客状態を予測する顧客状態推定装置６とを備える。
【０１３０】
売上ＤＢ１が記憶する売上データは、第１から第３までの各実施形態と同様である。
【０１３１】
顧客ＤＢ５は、顧客データを記憶する記憶手段であり、顧客データ記憶手段と呼ぶことができる。顧客データは、個別の顧客毎に定められたデータの集合である。図２０は、顧客データの例を示す説明図である。個別の顧客毎に定められたデータ（以下、個別データと記す。）は、顧客の特性を表す１個以上の項目を含む。なお、図２０における１行分のデータが個別データに相当する。顧客の特性を表す項目の例として、例えば、顧客の年齢、性別、住所の地域区分、勤務地の地域区分、職業などが挙げられる。これらは、例示であり、顧客の特定を表わす項目として他の項目が定められていてもよい。顧客の特性を表す項目の内容は、例えば、顧客が顧客カードに入会する時点にアンケートで収集するなどの方法で収集することができる。また、ＰＯＳデータと連動することで、最も頻繁に購入する曜日・時刻や購入頻度、様々な商品またはサービスのカテゴリでの最も頻繁に購入する曜日・時刻や購入頻度など様々な情報を自動的に収集し、個別データに含めて、顧客ＤＢ５に記憶させておいてもよい。図２０における「週３」などは、一週間当たりの購入頻度を意味している。ここで、顧客を区別しＰＯＳデータと連動させるため、顧客ＩＤ（顧客の識別情報）を各個別データに含めることとする。また、図２０では、図示を省略しているが、顧客データ中の各個別データには、後述の予測部６１によって利用開始情報が追加される。利用開始情報とは、顧客が商品またはサービスを利用し始めている場合には、その商品またはサービスを利用し始めた時期を表し、顧客が商品またはサービスに関して「反復」状態である場合には「反復」に該当し始めた時期を表し、顧客が商品またはサービスに関して「離反」状態である場合には「離反」に該当し始めた時期を表し、顧客が商品またはサービスを未利用である（すなわち、まだ利用開始していない）場合には未利用である旨を表す情報である。
【０１３２】
以下、顧客ＩＤがｎである顧客のことを、「顧客ｎ」と記すこととする。なお、顧客ＤＢ５は必須ではなく、顧客ＤＢ５をなしとすることも可能である。
【０１３３】
顧客状態推定装置６は、制御部３１と、データ状態推定部２１と、分類器生成部２２と、初期顧客状態推定部２３と、データクラス予測部２４と、顧客状態推定部２５と、予測部６１とを備え、将来の個別顧客の顧客状態を予測する。制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５の動作は、第３の実施形態と同様である。
【０１３４】
予測部６１は、制御部３１と、データ状態推定部２１と、分類器生成部２２と、初期顧客状態推定部２３と、データクラス予測部２４と、顧客状態推定部２５とで推定した顧客の顧客状態の推移と顧客ＤＢ５とに基づいて、個別の顧客の顧客状態が予測対象状態に変化するか否かを予測する。
【０１３５】
顧客状態は、「潜在」、「トライアル」、「反復」、「離反」の順に変化する。予測対象状態は、顧客状態がより前の顧客状態からその顧客状態に変化するか否かを予測する対象となる顧客状態である。予測部６１は、具体的には、「トライアル」を予測対象状態として「潜在」であった顧客が「トライアル」になるかを予測し、「反復」を予測対象状態として「トライアル」であった顧客が「反復」になるかを予測し、「離反」を予測対象状態として「反復」であった顧客が「離反」になるかを予測する。この予測により、ターゲットの普及の程度がわかる。
【０１３６】
制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、顧客状態推定部２５、および予測部６１は、例えば、プログラムに従って動作するＣＰＵによって実現される。すなわち、ＣＰＵが、プログラムを読み込み、そのプログラムに従って、制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、顧客状態推定部２５、および予測部６１として動作してもよい。
【０１３７】
次に、動作について説明する。第３の実施形態と同様に、与えられた一定期間数をＴ個とし、それぞれの一定期間を、一定期間１、一定期間２、・・・、一定期間Ｔと記すこととする。そして、個々の一定期間の長さがいずれも同じであるとする。
【０１３８】
まず、制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５が処理を行い、それぞれの一定期間毎に、個別の顧客の顧客状態を推定する。この動作は、第２の実施形態で説明したステップＦ１〜Ｆ４の動作と同様である。
【０１３９】
一定期間１から一定期間Ｔまでの各一定期間について個別の顧客の顧客状態が推定された後、予測部６１は、ある顧客状態となっている個々の顧客が他の顧客状態に変化するか否かを顧客状態毎に予測する処理を行う。以下の説明では、「トライアル」を予測対象状態として、「潜在」であった顧客が「トライアル」になるか、「トライアル」にならずに「潜在」のままとなるかを予測する場合を例にして説明する。図２１は、予測部６１の処理経過の例を示すフローチャートである。
【０１４０】
予測部６１は、変数ｉの値をｉ＝１と初期化する（ステップＨ１）。変数ｉは、顧客を指定するための変数である。次に、予測部６１は、顧客ｉの利用開始情報を「未利用」と初期化する（ステップＨ２）。すなわち、顧客ｉの個別データに対して、「未利用」を示す利用開始情報を追加する。
【０１４１】
次に、予測部６１は、変数ｔの値をｔ＝１と初期化する（ステップＨ３）。変数ｔは、一定期間を指定するための変数である。続いて、予測部６１は、顧客ｉが一定期間ｔにおいて予測対象状態より前の顧客状態であると推定されていたか否かを判定する（ステップＨ４）。ここでは、「トライアル」を予測対象状態として、「潜在」であった顧客が「トライアル」になるかを予測する場合を例にしているので、ステップＨ４では、顧客ｉが一定期間ｔにおいて「潜在」と推定されていたか否かを判定する。一定期間ｔにおいて顧客ｉの顧客状態が「潜在」以外の状態と推定されていれば（ステップＨ４におけるＮｏ）、予測部６１は、顧客ｉの利用開始情報をｔとする（ステップＨ７）。すなわち、顧客ｉの利用開始情報の内容を初期値の「未利用」から、一定期間ｔの時期を示す時期情報に更新する。この結果、顧客ｉがその時期からターゲットの使用を開始したということを利用開始情報が表わすことになる。ステップＨ７の後、ステップＨ８に移行する。
【０１４２】
また、一定期間ｔにおいて顧客ｉの顧客状態が「潜在」と推定されていれば（ステップＨ４におけるＹｅｓ）、予測部６１は、変数ｔの値を１インクリメントし（ステップＨ５）、ｔが一定期間の数Ｔ以下であるか否かを判定する（ステップＨ６）。ｔがＴ以下であれば（ステップＨ６におけるＹｅｓ）、ステップＨ４以降の処理を繰り返す。また、ｔがＴを超えていれば（ステップＨ６におけるＮｏ）、予測部６１は、ステップＨ８に移行する。
【０１４３】
ステップＨ８では、予測部６１は、変数ｉの値を１インクリメントする。すなわち、指定する顧客を変える。顧客ｉに関して、一定期間Ｔまで「潜在」となっていた場合には、ステップＨ６からステップＨ８に移行し、その顧客ｉの利用開始情報が「未利用」のまま、次の顧客について処理を進める。一方、一定期間Ｔまでの間に「潜在」以外となった場合には、ターゲットの購入を行ったことになるので、ステップＨ７で利用開始情報を初期値（「未利用」）から、一定期間ｔの時期を示す時期情報に更新する。
【０１４４】
ステップＨ８の後、予測部６１は、ｉが全顧客数Ｎ以下であるか否かを判定し（ステップＨ９）、ｉがＮ以下であれば（ステップＨ９におけるＹｅｓ）、ステップＨ３以降の処理を繰り返す。ｉがＮを超えていれば（ステップＨ９におけるＮｏ）、予測部６１は、利用開始情報を用いて、予測対象状態より前の状態の顧客が予測対象状態に変化するか否かを予測し（ステップＨ１０）、処理を終了する。本例では、「潜在」となっている顧客が「トライアル」に変化するか否かを予測する。
【０１４５】
以下、ステップＨ１０の処理について説明する。まず、予測部６１の詳細について説明する。
【０１４６】
図２２は、予測部６１の構成例を示すブロック図である。予測部６１は、利用開始情報付加部８９と、影響度（ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合い）を推定する影響度推定部８０と、影響度を用いて、個々の顧客毎に、予測対象の時刻において、予測対象状態より前の状態の顧客が予測対象状態に変化するか否かを判定する普及予測部９０とを備える。利用開始情報付加部８９は、前述のステップＨ１〜Ｈ９を実行し、顧客データ内の各個別データに利用開始情報を追加する。ステップＨ１〜Ｈ９については、説明したので、利用開始情報付加部８９の動作の説明は省略する。影響度推定部８０および普及予測部９０が、ステップＨ１０を実行する部分である。
【０１４７】
まず、影響度推定部８０について説明する。影響度推定部８０は、現時刻データ生成部８１と、前時刻データ群生成部８２と、前時刻分類器群生成部８３と、誤差群算出部８４と、影響度算出部８５とを備える。
【０１４８】
現時刻データ生成部８１は、現時刻と、その現時刻の一定時間前を指定するための時刻間隔と、複数の仮影響度とが入力される。時刻間隔や複数の仮影響度は、影響度推定部８０において予め定められていてもよい。影響度推定部８０における現時刻とは、影響度の推定対象時刻（影響度推定対象時刻）として用いられる時刻であり、時刻間隔は、影響度を推定しようとする期間である。この時刻間隔は、既に述べた一定期間と同一の長さであっても、異なっていてもよい。そして、影響度推定部８０は、過去のある時点を影響度推定対象時刻として、その時点から時刻間隔分遡った時刻からその影響度推定対象時刻までの期間における影響度を推定する。従って、過去のある時点での時刻が現時刻として入力される。現時刻から時刻間隔前の時刻（現時刻から時刻間隔分遡った時刻）を、前時刻と記す。現時刻データ生成部８１は、現時刻から時刻間隔を減算して前時刻を計算する。
【０１４９】
また、入力される仮影響度は、求めようとしている影響度の候補であり、影響度推定部８０は、複数の仮影響度から影響度を求める。仮影響度として現時刻データ生成部８１に入力される数値は、０以上の数値である。例えば、影響度推定システムのユーザが、０以上から５０程度までの値の中から影響度の候補を複数選択し、仮影響度として入力する。候補として仮影響度を多く入力すれば、影響度の推定精度が高くなる。
【０１５０】
また、現時刻データ生成部８１は、現時刻と顧客ＤＢ５とに基づいて、１つの現時刻データを生成する。現時刻データは、現時刻において予測対象状態よりも前の段階の顧客状態に該当する顧客の個別データに第２ラベルをラベル付け、現時刻において予測対象状態以降の段階の顧客状態に該当する顧客の個別データに第１ラベルをラベル付けたデータである。第１ラベルは、予測対象状態以降の段階の顧客状態を示す情報であり、第２ラベルは、予測対象状態よりも前の段階の顧客状態を示す情報である。以下、第１ラベルを正（または＋）と記し、第２ラベルを負（または−）と記す。現時刻データ生成部８１は、顧客ＤＢ５を用いて（すなわち、顧客データＤＢ２に記憶された顧客データに基づいて）、現時刻データを生成する。
【０１５１】
例えば、本例では、予測対象状態は「トライアル」として、「潜在」であった顧客が「トライアル」になるか否かを予測する。この場合、予測対象状態（トライアル）より前の段階は「潜在」のみである。従って、この予測を行う場合に生成する現時刻データにおいては、現時刻で「潜在」に該当する顧客の個別データに第２ラベルを付し、現時刻で「トライアル」以降に該当する顧客の個別データに第１ラベルを付す。
【０１５２】
前時刻データ群生成部８２は、前時刻と複数の仮影響度と顧客ＤＢ５に記憶されている顧客データとに基づいて、複数の前時刻データを生成する。前時刻データは、前時刻で予測対象状態よりも前の段階の顧客状態に該当している顧客の個別データに第２ラベル（負）をラベル付け、前時刻で予測対象状態以降の段階の顧客状態に該当している顧客の個別データに第１ラベル（正）をラベル付け、仮影響度に応じて重み付けを行ったデータである。重み付けとは、第２ラベルをラベル付けた個別データ数に対して、第１ラベルをラベル付けた個別データ数を相対的に変動させることである。前時刻データ群生成部８２は、仮影響度毎に前時刻データを生成する。仮影響度は複数あるので、複数の前時刻データを生成することになる。
【０１５３】
前時刻分類器群生成部８３は、前時刻データ群生成部８２によって生成された各前時刻データ毎に１つずつ分類器を生成する。従って、前時刻分類器群生成部８３は、複数の分類器を生成することになる。前時刻分類器群生成部８３が生成する分類器は、顧客の属性を表す項目からその顧客の個別データに正（第１ラベル）と負（第２ラベル）のいずれをラベル付けるかを判定するルールである。換言すれば、顧客の属性を表す項目を独立変数として、従属変数のとり得る値を正または負とし、その独立変数から従属変数を定めるルールである。以下、前時刻分類器群生成部８３が生成する分類器を、前述の分類器生成部２２が生成する分類器と区別して、前時刻分類器と記す。
【０１５４】
誤差群算出部８４は、前時刻分類器群生成部８３で生成された各前時刻分類器を用いて、現時刻データのラベルを予測する。すなわち、誤差群算出部８４は、前時刻分類器と、現時刻データ内の各個別データの項目（顧客の属性を示す項目）と照合し、現時刻データ内の各個別データ毎に、その個別データにラベル付けられるラベルを予測する。また、その現時刻データ内の各個別データには既に実際にラベル付けが行われている。誤差群算出部８４は、前時刻分類器と項目とから予測したラベルと、実際に現時刻データでラベル付けられているラベルとの誤差を算出する。誤差群算出部８４は、この処理を前時刻分類器毎に行う。したがって、誤差群算出部８４は複数の誤差を算出する。
【０１５５】
影響度算出部８５は、個々の前時刻分類器毎に算出された誤差のうちの最小の誤差を特定し、最小の誤差に対応する仮影響度を影響度として定める。具体的には、最小の誤差に対応する仮影響度の数が一つである場合、影響度算出部８５は、その仮影響度を影響度として定める。また、最小の誤差に対応する仮影響度が複数個存在する場合には、その複数の仮影響度に基づいて影響度を定める。例えば、最小の誤差に対応する仮影響度が複数個存在する場合、その複数の仮影響度の平均値を計算し、その平均値を影響度として定める。以下、最小の誤差に対応する仮影響度が複数個存在する場合、その仮影響度の平均値を影響度と定める場合を例にして説明する。
【０１５６】
次に、影響度推定部８０が影響度を推定する動作について説明する。図２３は、影響度推定部８０の処理経過の例を示すフローチャートである。ここでは、「潜在」であるそれぞれの顧客が「トライアル」に変化するか「潜在」のままとなるかを予測する場合（すなわち予測対象状態が「トライアル」である場合）を例にして説明する。
【０１５７】
まず、現時刻データ生成部８１は、前時刻を計算し、現時刻データを作成する（ステップＳ１）。さらに、ステップＳ１において、現時刻データ生成部８１は、誤差群算出部８４が計算する誤差のうちの最小値を示す変数（ＥｒｒｏｒＭｉｎとする。）の初期値を設定し、変数ｉ，ｐに対して、ｉ＝１，ｐ＝０という初期値を設定する。ＥｒｒｏｒＭｉｎの初期値は、誤差群算出部８４が計算する誤差のとり得る値の最大値、あるいは、その誤差のとり得る値に比べて十分に大きな値であればよい。影響度推定部８０が用いる変数ｉは、複数の仮影響度を順番に指定するための変数である。例えば、ｉ＝１であれば、１番目の仮影響度を指定していることを意味する。また、ｐは、最小の誤差に対応する仮影響度を指定するための変数である。例えば、最小の誤差に対応する仮影響度がｐ個あったとすると、その最小誤差に対応する仮影響度の１番目からｐ番目までをそれぞれ、Ｉｍｐ［１］，・・・，Ｉｍｐ［ｐ］とする。
【０１５８】
ステップＳ１において、現時刻データ生成部８１は、前時刻を、現時刻−時刻間隔と設定する。すなわち、現時刻から時刻間隔を減算した時刻を前時刻とする。
【０１５９】
また、ステップＳ１において、現時刻データ生成部８１は、顧客ＤＢ５に記憶された顧客データを読み込む。そして、現時刻で予測対象状態よりも前の段階の顧客状態に該当している顧客の個別データに負をラベル付け、現時刻で予測対象状態以降の段階の顧客状態に該当している顧客の個別データに正をラベル付けた現時刻データを生成する。本例では、現時刻で「潜在」に該当する顧客の個別データに負をラベル付け、現時刻で「トライアル」以降に該当する顧客の個別データに正をラベル付けた現時刻データを生成する。現時刻データ生成部８１は、ラベル付けの際、現時刻と、個別データに付加された利用開始情報とを比較し、利用開始情報が現時刻以前の時期となっている個別データに正をラベル付け、利用開始情報が現時刻以前の時期でない個別データに負をラベル付ければよい。
【０１６０】
このとき、現時刻データ生成部８１は、顧客ＤＢ５に記憶されている顧客データに属する個別データのうち、前時刻でターゲットの利用を開始していた顧客の個別データを除外した個別データの集合から現時刻データを生成してもよい。すなわち、利用開始情報が前時刻以前の時刻となっている個別データを除外し、残りの個別データに対して正または負のラベル付けを行ってもよい。
【０１６１】
ステップＳ１の後、前時刻データ群生成部８２は、ｉ番目の仮影響度（以下、Ｆａｌｓｅ［ｉ］と記す。）を用いて、仮影響度Ｆａｌｓｅ［ｉ］に対応する前時刻データを生成する（ステップＳ２）。前時刻データ群生成部８２は、顧客ＤＢ５に記憶された顧客データを読み込み、前時刻で予測対象状態よりも前の段階の顧客状態に該当している顧客の個別データに第２ラベル（負）をラベル付け、前時刻で予測対象状態以降の段階の顧客状態に該当している顧客の個別データに第１ラベル（正）をラベル付けたデータを生成する。本例では、前時刻と、個別データに付加された利用開始情報とを比較し、利用開始情報が前時刻以前の時期となっている個別データに正をラベル付け、利用開始情報が前時刻以前の時期でない個別データに負をラベル付ければよい。この時点では、まだ仮影響度［ｉ］に応じた重み付けは行っていない。なお、前時刻データを生成する際には、個別データを除外しない。
【０１６２】
そして、前時刻データ群生成部８２は、仮影響度Ｆａｌｓｅ［ｉ］に応じた重み付けを行う。すなわち、仮影響度Ｆａｌｓｅ［ｉ］に応じて、正とした個別データの数を、負とした個別データの数に対して相対的に変動させる。本例では、仮影響度Ｆａｌｓｅ［ｉ］の関数の関数値を計算し、正をラベル付けた個別データをその関数値倍に増加させる場合を例にする。
【０１６３】
仮影響度Ｆａｌｓｅ［ｉ］の関数として、例えば、前時刻で正がラベル付けられた顧客数と前時刻で未だ正がラベル付けられていない顧客数との比率を仮影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
【０１６４】
Ｆａｌｓｅ［ｉ］×（前時刻で正がラベル付けられていない顧客数）／（前時刻で正がラベル付けられた顧客数）
【０１６５】
このように、「前時刻で正がラベル付けられていない顧客数」を「前時刻で正がラベル付けられた顧客数」で除算して得た比率をＦａｌｓｅ［ｉ］の係数とする関数を用いてもよい。
【０１６６】
また、仮影響度Ｆａｌｓｅ［ｉ］の関数として、例えば、前時刻で正がラベル付けられた顧客数と全顧客数との比率を仮影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
【０１６７】
Ｆａｌｓｅ［ｉ］×（顧客人数）／（前時刻で正がラベル付けられた顧客数）
【０１６８】
上記の関数において、「顧客人数」は、全顧客数（顧客データ内の全個別データ数）である。このように、「顧客人数」を「前時刻で正がラベル付けられた顧客数」で除算して得た比率をＦａｌｓｅ［ｉ］の係数とする関数を用いてもよい。
【０１６９】
前時刻データ群生成部８２は、このような関数の関数値倍に、正をラベル付けた個別データを増加させる。例えば、仮影響度がＦａｌｓｅ［ｉ］のときの関数値が５であるとする。この場合、正をラベル付けた個別データの数が５倍になるように、正をラベル付けた個別データの複製を生成すればよい。この結果得られるデータが前時刻データである。例えば、顧客ＩＤ＝１の個別データが正となっている場合、その個別データと同内容のデータの数を５倍に増やせばよい。なお、複製した個別データの顧客ＩＤは、それぞれ区別してもよい。
【０１７０】
なお、正とラベル付けた個別データのコピーだけを生成する場合には、正とラベル付けた個別データに対する重み付けを行ってから、他の個別データに対して負のラベル付けを行ってもよい。
【０１７１】
また、例示した２つの関数における仮影響度の係数の値は、いずれも時間が経過して各顧客の顧客状態の遷移が進むに従って減少する。仮影響度の係数は、このような係数に限定されない。また、仮影響度Ｆａｌｓｅ［ｉ］の値をそのまま関数値として用いてもよい。この場合係数を１としていることになる。
【０１７２】
また、上記の例では、正とラベル付けた個別データを関数値倍に増加させる場合を示しているが、重み付けでは、正とラベル付けた個別データ数を、負とラベル付けた個別データ数に対して相対的に変化させればよい。例えば、重み（関数値）が５で、正とラベル付けた個別データ数を１０倍とするならば、負とラベル付けた個別データ数を２倍にすればよい。また、重みが０．５で、正とラベル付けた個別データ数を１倍とするならば、負とラベル付けた個別データ数を２倍にすればよい。なお、ここでは、個別データ数を１０倍とする等の例を挙げたが、このように、個別データ数をｋ倍にする等の条件を定める場合、そのｋ等は予め外部から入力しておけばよい。
【０１７３】
また、ここでは、実際に個別データの複製を作成することで個別データを増加させていたが、次のステップで前時刻分類器を作成する際に、仮影響度Ｆａｌｓｅ［ｉ］の関数値を重み付けパラメタとして用いてもよい。すなわち、正とラベル付けた個別データを何倍に増やすかということを決めておき、その結果をパラメタとして前時刻分類器を生成してもよい。
【０１７４】
ステップＳ２で前時刻データ群生成部８２がＦａｌｓｅ［ｉ］に応じた前時刻データを生成した後、前時刻分類器群生成部８３は、その前時刻データを用いて、その前時刻データに対応する前時刻分類器（前時刻分類器ｉと記す。）を生成する（ステップＳ３）。顧客ＩＤは前時刻分類器作成に不要であり、前時刻分類器群生成部８３は、顧客ＩＤを削除してよい。前時刻分類器群生成部８３は、データマイニングの様々な手法により前時刻分類器を生成すればよい。例えば、重回帰分析、決定木、ニューラルネットワーク、サポートベクタマシン、ベイジアンネットワークなどの手法のいずれかあるいはその組合せなどにより分類器を生成すればよい。
【０１７５】
前時刻分類器群生成部８３は、前時刻分類器として決定木を作成してもよい。決定木の作成は、既に説明した決定木作成動作と同様に行えばよい。すなわち、前時刻分類器群生成部８３は、前時刻データが与えられると、どの項目で最初に分割させるかを決定する。このとき、前時刻分類器群生成部８３は、項目１〜Ｎの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択すればよい。評価値として、例えば、分割前のノードのエントロピーと、分割後のエントロピーの差を用いればよい。分割前のノードのエントロピー、および分割後のエントロピーの計算方法は、既に説明した計算方法と同様であり、説明を省略する。前時刻分類器群生成部８３は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次繰り返し、所定の条件が満たされたときには、ノードの分割を停止する。そして、前時刻分類器群生成部８３は、このようにして得た木構造の決定木に対して、枝刈りを行うことにより、分類器となる決定木を生成する。上記の所定の条件や枝刈りの処理も、第１の実施形態で示した所定の条件や枝刈り処理と同様であり、説明を省略する。
【０１７６】
ステップＳ３でＦａｌｓｅ［ｉ］に応じた前時刻データから前時刻分類器ｉを生成すると、誤差群算出部８４は、その前時刻分類器ｉを用いて、現時刻データのラベルを予測する（ステップＳ４）。すなわち、誤差群算出部８４は、現時刻データ内の各個別データ毎に、その個別データにおける顧客の属性を示す項目と、前時刻分類器ｉとを照合し、その個別データにラベル付けられるラベルを予測する。
【０１７７】
例えば、分類器が決定木である場合、誤差群算出部８４は、そのルートのノードの項目に関して現時刻データ内の個別データの項目値を参照し、その項目値に応じて子ノードを辿る。誤差群算出部８４は、葉のノードまで辿ったならば、葉のノードでカウント数の多い方のラベルを予測結果とすればよい。例えば、葉のノードで、「正：３，負：０」となっていれば、「正」と予測すればよい。
【０１７８】
ステップＳ４の後、誤差群算出部８４は、現時刻データ内の各個別データにラベル付けられるラベルの予測結果と、現時刻データとの誤差を算出する（ステップＳ５）。すなわち、現時刻データ内の各個別データには、現時刻データ生成時に正または負のラベルがラベル付けられているので、ステップＳ４での予測結果と、実際の現時刻データでラベル付けされているラベルとの誤差を予測する。この誤差をＥｒｒ［ｉ］と記す。
【０１７９】
誤差群算出部８４は、ステップＳ５において、例えば、現時刻データ内の個別データ毎に予測したラベルと、実際に現時刻データの各個別データにラベル付けられているラベルとを比較し、両者が異なっている個別データ数をカウントして、そのカウント値をＥｒｒ［ｉ］として求めてもよい。
【０１８０】
あるいは、誤差群算出部８４は、現時刻データ内の個別データ毎に予測したラベルのうち、正がラベル付けられると予測した個別データの数と、現時刻データの中で実際に正がラベル付けられた個別データの数との差を計算して、その差をＥｒｒ［ｉ］として求めてもよい。すなわち、正のラベルの予測数と、実際に現時刻データの中で正がラベル付けられた個別データ数との差の絶対値をＥｒｒ［ｉ］としてもよい。
【０１８１】
ステップＳ５の後、影響度算出部８５は、誤差Ｅｒｒ［ｉ］と最小誤差値ＥｒｒｏｒＭｉｎとを比較し、Ｅｒｒ［ｉ］がＥｒｒｏｒＭｉｎ未満であるか否かを判定する（ステップＳ６）。Ｅｒｒ［ｉ］がＥｒｒｏｒＭｉｎ未満であるならば（ステップＳ６におけるＹｅｓ）、影響度算出部８５は、ｐを０に初期化し、ＥｒｒｏｒＭｉｎにＥｒｒ［ｉ］を代入する（ステップＳ１１）。Ｅｒｒ［ｉ］がＥｒｒｏｒＭｉｎ未満ということは、これまで最小としていた誤差よりもさらに小さい最小値が見つかったことを意味する。この場合、ステップＳ１１において、その最小値でＥｒｒｏｒＭｉｎを更新し、また、その誤差に対応する仮影響度が複数ある場合に各仮影響度を個別に指定するための変数ｐを初期化している。
【０１８２】
ステップＳ１１の後、影響度算出部８５は、ｐの値を１インクリメントし、Ｉｍｐ［ｐ］にＦａｌｓｅ［ｉ］を代入する（ステップＳ１２）。また、ステップＳ６において、Ｅｒｒ［ｉ］がＥｒｒｏｒＭｉｎ以上であると判定した場合（ステップＳ６におけるＮｏ）、影響度算出部８５は、Ｅｒｒ［ｉ］がＥｒｒｏｒＭｉｎと等しいか否かを判定する（ステップＳ７）。ここで等しいと判定した場合（ステップＳ７におけるＹｅｓ）にも、影響度算出部８５は、ｐの値を１インクリメントし、Ｉｍｐ［ｐ］にＦａｌｓｅ［ｉ］を代入する（ステップＳ１２）。
【０１８３】
ステップＳ１１からステップＳ１２に移行した場合、ｐ＝１であり、現在着目している仮影響度Ｆａｌｓｅ［ｉ］を、誤差が最小となる１番目の仮影響度とする。また、ステップＳ７において、着目しているＦａｌｓｅ［ｉ］に対応するＥｒｒ［ｉ］がＥｒｒｏｒＭｉｎと等しく、ステップＳ１２に移行した場合、ｐは２以上の値になる。この場合、既に最小の誤差に対応する仮影響度は１つ以上見つかっていて、影響度算出部８５は、現在着目している仮影響度Ｆａｌｓｅ［ｉ］を、誤差が最小となるｐ番目の仮影響度と定めることになる。
【０１８４】
ステップＳ１２の後、あるいは、ステップＳ７でＥｒｒ［ｉ］がＥｒｒｏｒＭｉｎと等しくないと判定した場合（ステップＳ７におけるＮｏ）、影響度算出部８５は、ｉの値をインクリメントする（ステップＳ８）。次に、影響度算出部８５は、ｉの値が、最初に入力された仮影響度の個数（Ｍとする。）以下であるか否かを判定する（ステップＳ９）。ｉが仮影響度数Ｍ以下であるならば（ステップＳ９におけるＹｅｓ）、ステップＳ８でインクリメントされたｉによって定まる仮影響度Ｆａｌｓｅ［ｉ］に関してステップＳ２以降の処理を行う。すなわち、着目する仮影響度を変更してステップＳ２以降の処理を行う。
【０１８５】
ｉの値が仮影響度数Ｍよりも大きければ（ステップＳ９におけるＮｏ）、ステップＳ１０に移行する。ここで、ｉは、誤差算出が終了した仮影響度の数を表している。ステップＳ１０において、影響度算出部８５は、最小誤差に対応する各仮影響度の平均値を計算し、その平均値を影響度として出力する（ステップＳ１０）。最小誤差に対応する仮影響度が１つしかなければ、ｐ＝１となっている。このとき、影響度算出部８５は、Ｉｍｐ［１］を影響度として出力すればよい。また、最小誤差に対応する仮影響度が複数ある場合、ｐは２以上の値となっている。このとき、影響度算出部８５は、Ｉｍｐ［１］からＩｍｐ［ｐ］までの各影響度の平均値を計算し、その平均値を影響度として出力すればよい。以上の処理によって、影響度推定部８０は、影響度を定める。
【０１８６】
次に、普及予測部９０について説明する。普及予測部９０には、現時刻が入力され、影響度推定部８０が定めた影響度を用いて、個々の顧客毎に、予測対象の時刻において、予測対象状態の前の段階の顧客状態が予測対象状態に変化するか否かを判定する。普及予測部９０に入力される現時刻は、顧客がターゲットを利用し始めたか否かの判定対象時刻を定めるための時刻であり、将来の時刻であってもよい。
【０１８７】
普及予測部９０は、テストデータ生成部９１と、学習データ生成部９２と、予測用分類器生成部９３と、テストデータラベル判定部９４とを備える。
【０１８８】
テストデータ生成部９１は、現時刻と顧客ＤＢ５とに基づいて、現時刻において予測対象状態よりも前段階の顧客状態に該当している顧客の個別データを含むテストデータを生成する。
【０１８９】
テストデータは、現時刻において、予測対象状態よりも前段階の顧客状態に該当している顧客の個別データを含むデータである。テストデータは、そのような顧客の個別データのみを含むことが好ましいが、他の顧客の個別データを含んでいてもよい。以下、テストデータが、現時刻において予測対象状態よりも前段階の顧客状態に該当している顧客の個別データのみを含む場合を例にして説明する。
【０１９０】
学習データ生成部９２は、影響度と、入力された現時刻と、顧客ＤＢ５に記憶されている顧客データとに基づいて、学習データを生成する。学習データは、現時刻で予測対象状態以降の段階の顧客状態に該当している顧客の個別データに第１ラベルをラベル付け、現時刻で予測対象状態よりも前の段階の顧客状態に該当している顧客の個別データに第２ラベルをラベル付け、入力された影響度に応じて重み付けを行ったデータである。既に述べたように、重み付けとは、第２ラベルをラベル付けた個別データ数に対して、第１ラベルをラベル付けた個別データ数を相対的に変動させることである。また、影響度推定部８０で説明した場合と同様に、第１ラベルを正（または＋）と記し、第２ラベルを負（または−）と記す。なお、学習データ生成部９２が生成する学習データは、前述の分類器生成部２２が生成する学習用データとは別のデータである。
【０１９１】
予測用分類器生成部９３は、学習データ生成部９２が生成した学習データを用いて分類器を生成する。以下、この分類器を、前述の分類器生成部２２が生成する分類器や、前時刻分類器と区別して、予測用分類器と記す。
【０１９２】
テストデータラベル判定部９４は、テストデータ内の各個別データのラベルを予測用分類器によって予測する。すなわち、テストデータ内の各個別データの項目と予測用分類器とを照合して、正または負のいずれにラベル付けられるかという判定を行う。正と判定された個別データの顧客は、現時刻の次の時刻で予測対象状態よりも前の段階から予測対象状態に変化したと予測されることになる。例えば、予測対象状態が「トライアル」である場合、「潜在」から「トライアル」に変化すると予測されることになる。負と判定された個別データの顧客は、現時刻の次の時刻ではまだ予測対象状態より前の状態であると予測されることになる。なお、現時刻の次の時刻とは、現時刻に、定められた一定時間を加算した時刻である。
【０１９３】
また、テストデータ生成部９１および学習データ生成部９２は、外部から現時刻を入力されてもよい。あるいは、影響度算出部８５が現時刻をテストデータ生成部９１および学習データ生成部９２に渡してもよい。また、図２２に例示する構成では、影響度算出部８５が、影響度を学習データ生成部９２に渡せばよいが、予測部６１が影響度推定部８０を備えず、外部から学習データ生成部９２に影響度が入力されてもよい。
【０１９４】
次に、普及予測部９０の動作について説明する。図２４は、普及予測部９０の処理経過の例を示すフローチャートである。
【０１９５】
まず、テストデータ生成部９１は、テストデータを生成する（ステップＴ１）。テストデータ生成部９１は、顧客データＤＢ２に記憶されている顧客データの中から、現時刻において予測対象状態よりも前段階の顧客状態に該当している顧客の個別データのみを抜き出して、その個別データの集合をテストデータとすればよい。具体的には、利用開始情報が現時刻以前の時期となっていない個別データのみを抜き出して、その個別データの集合をテストデータとすればよい。
【０１９６】
ステップＴ１の後、学習データ生成部９２は、学習データを生成する（ステップＴ２）。学習データ生成部９２は、顧客ＤＢ５に記憶された顧客データを読み込み、現時刻で予測対象状態以降の段階の顧客状態に該当している顧客の個別データに正をラベル付け、現時刻で予測対象状態よりも前の段階の顧客状態に該当している顧客の個別データに負をラベル付ける。「トライアル」に変化するかを予測する場合には、ラベル付けの際、現時刻と、個別データに付加された利用開始情報とを比較し、利用開始情報が現時刻以前の時期となっている個別データに正をラベル付け、利用開始情報が現時刻以前の時期でない個別データに負をラベル付ければよい。そして、学習データ生成部９２は、影響度に応じて、正とした個別データの数を、負とした個別データの数に対して相対的に変動させる。本例では、影響度の関数の関数値を計算し、その関数値倍に、正をラベル付けた個別データを増加させる場合を例にする。
【０１９７】
影響度の関数として、例えば、正がラベル付けられた顧客数と現時刻で未だ正がラベル付けられていない顧客数との比率を影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
【０１９８】
影響度×（現時刻で正がラベル付けられていない顧客数）／（現時刻で正がラベル付けられた顧客数）
【０１９９】
このように、「現時刻で正がラベル付けられていない顧客数」を「現時刻で正がラベル付けられた顧客数」で除算して得た比率を影響度の係数とする関数を用いてもよい。
【０２００】
また、影響度の関数として、例えば、現時刻で正がラベル付けられた顧客数と全顧客数との比率を影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
【０２０１】
影響度×（顧客人数）／（現時刻で正がラベル付けられた顧客数）
【０２０２】
上記の関数において、「顧客人数」は、全顧客数（顧客データ内の全個別データ数）である。このように、「顧客人数」を「現時刻で正がラベル付けられた顧客数」で除算して得た比率を影響度の係数とする関数を用いてもよい。
【０２０３】
学習データ生成部９２は、このような関数の関数値倍に、正をラベル付けた個別データを増加させる。例えば、入力された影響度を関数に代入して得た値がｊであるとする。この場合、正をラベル付けた個別データの数がｊ倍になるように、正をラベル付けた個別データの複製を生成すればよい。
【０２０４】
また、例示した２つの関数における影響度の係数の値は、いずれも時間が経過して各顧客の顧客状態の遷移が進むに従って減少する。影響度の係数は、このような係数に限定されない。また、影響度の値をそのまま関数値として用いてもよい。この場合、係数を１としていることになる。
【０２０５】
また、上記の例では、正とラベル付けた個別データを関数値倍に増加させる場合を示しているが、重み付けでは、正とラベル付けた個別データ数を、負とラベル付けた個別データ数に対して相対的に変化させればよい。この点は、前述の前時刻データ群生成部８２が行う重み付けと同様である。
【０２０６】
ステップＴ２の後、予測用分類器生成部９３は、学習データを用いて予測用分類器を生成する（ステップＴ３）。予測用分類器生成部９３は、重回帰分析、決定木、ニューラルネットワーク、サポートベクタマシン、ベイジアンネットワークなどのデータマイニングによる手法のいずれかあるいはその組合せにより予測用分類器を生成すればよい。
【０２０７】
予測用分類器生成部９３は、予測用分類器として決定木を生成してもよい。すなわち、予測用分類器生成部９３は、学習データが与えられると、どの項目で最初に分割させるかを決定する。このとき、予測用分類器生成部９３は、項目１〜Ｎの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択すればよい。評価値として、例えば、分割前のノードのエントロピーと、分割後のエントロピーの差を用いればよい。分割前のノードのエントロピー、および分割後のエントロピーの計算方法は、既に説明した計算方法と同様であり、説明を省略する。予測用分類器生成部９３は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次繰り返し、所定の条件が満たされたときには、ノードの分割を停止する。そして、予測用分類器生成部９３は、このようにして得た木構造の決定木に対して、枝刈りを行うことにより、予測用分類器となる決定木を生成する。上記の所定の条件や枝刈りの処理も、第１の実施形態で示した所定の条件や枝刈り処理と同様であり、説明を省略する。このようにして生成した決定木（予測用分類器）は、学習データ内で第１ラベルをラベル付けられた個別データの割合が高くなるほど、テストデータ内で第２ラベルをラベル付けられている個別データのうち、第１ラベルをラベル付けられた個別データの項目値と類似する項目値を持つ個別データに対して、第１ラベルをラベル付けると判定する頻度が高くなるという性質を有している。なお、予測用分類器は決定木に限定されず、予測用分類器生成部９３は、上記以外の動作で予測用分類器を生成してもよい。
【０２０８】
ステップＴ３の後、テストデータラベル判定部９４は、ステップＴ３で生成された予測用分類器を用いて、テストデータのラベルを予測する（ステップＴ４）。すなわち、テストデータラベル判定部９４は、テストデータ内の各個別データ毎に、その個別データにおける顧客の属性を示す項目と、ステップＴ３で生成された予測用分類器とを照合し、その個別データに対するラベルが正であるか負であるかを判定する。例えば、予測用分類器が決定木である場合、テストデータラベル判定部９４は、そのルートのノードの項目に関してテストデータ内の個別データの項目値を参照し、その項目値に応じて子ノードを辿る。テストデータラベル判定部９４は、葉のノードまで辿ったならば、葉のノードでカウント数の多い方のラベルを判定結果とすればよい。そして、テストデータラベル判定部９４は、判定結果が正であれば、予測対象状態より前の段階から予測対象状態に変化すると予測する。また、判定結果が負であれば、予測対象状態より前の段階の顧客状態のままであると予測する。例えば、本例のように予測対象状態が「トライアル」である場合、ステップＴ４の判定結果が正となった顧客については「トライアル」に変化すると予測する。また、ステップＴ４の判定結果が負となった顧客については、まだ「潜在」のままで変化しないと判定する。
【０２０９】
普及予測部９０は、顧客の属性を示す項目を含む個別データの集合に対してラベル付けを行い、さらに重み付けをして得た学習データから予測用分類器を生成する。そして、テストデータラベル判定部９４がテストデータ内の各個別データ毎に、その項目と予測用分類器とを照合して、正または負のいずれかを判定することによって、予測対象の時刻において予測対象状態より前の段階から予測対象状態に変化するか否かを判定する。従って、顧客の属性を利用して、顧客状態の変化を予測することができる。
【０２１０】
ステップＨ１０（図２１参照）では、以上のような予測処理を行えばよい。
【０２１１】
以上の例では、予測対象状態が「トライアル」であり、「潜在」から「トライアル」に変化するか否かを予測する場合を例にして説明したが、さらに、予測部６１は、予測対象状態を「反復」として、「トライアル」から「反復」に変化するか否かを予測し、さらに、予測対象状態を「離反」として、「反復」から「離反」に変化するか否かを予測してもよい。
【０２１２】
予測対象状態を「反復」として、「トライアル」から「反復」に変化するか否かを予測する場合には、以下のように処理を行えばよい。この場合、利用開始情報付加部８９は、ステップＨ１（図２１参照）以降の処理を行い、「潜在」から「トライアル」に変化するか否かを予測する際に各個別データに付加した利用開始情報を更新する。ただし、この場合、ステップＨ２の処理は行わず、ステップＨ１の後、ステップＨ３に移行する。さらに、ステップＨ４では、顧客ｉが一定期間ｔにおいて「トライアル」と推定されていたか否かを判定し、その期間ｔで「トライアル」と推定されていれば、ステップＨ５に移行し、「トライアル」と推定されていなければステップＨ７に移行する。ステップＨ７では、顧客ｉの個別データに付加された利用開始情報の内容を、「反復に変化した時期が一定期間ｔの時期である」という内容に更新する。以下、この内容が示す、反復に変化した時期を「反復ｔ」と記す。ステップＨ１，Ｈ３〜Ｈ９におけるその他の動作は、既に説明した動作と同様である。この処理により、「潜在」の顧客の利用開始情報は「未利用」のままであり、「トライアル」の顧客の利用開始情報は「利用開始時期」のままであり、「反復」に変化した顧客の利用開始情報は「反復ｔ」となる。
【０２１３】
ステップＨ１０において、正または負をラベル付ける場合、着目している時刻までに「反復」になっている個別データを正とラベル付け、そうでない個別データには負をラベル付ければよい。
【０２１４】
例えば、ステップＨ１０内のステップＳ１（図２３参照)において現時刻データを生成する場合、利用開始情報の内容が「反復」になった時期を表していて、その時期が現時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。従って、利用開始情報の内容が「未利用」や、利用開始時期となっている個別データには負をラベル付ける。
【０２１５】
また、ステップＨ１０内のステップＳ２（図２３参照）において前時刻データを生成する場合、利用開始情報の内容が「反復」になった時期を表していて、その時期が前時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。従って、現時刻データの場合と同様に、利用開始情報の内容が「未利用」や、利用開始時期となっている個別データには負をラベル付ける。
【０２１６】
また、ステップＨ１０内のステップＴ１（図２４参照）においてテストデータを生成する場合、現時刻において「反復」になっていない個別データを抜き出して、その個別データの集合をテストデータとすればよい。
【０２１７】
また、ステップＨ１０内のステップＴ２において学習データを生成する場合、利用開始情報の内容が「反復」になった時期を表していて、その時期が現時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。従って、利用開始情報の内容が「未利用」や、利用開始時期となっている個別データには負をラベル付ける。
【０２１８】
なお、上記の例では、着目している時刻において「トライアル」および「潜在」の個別データについて負をラベル付けるが、負をラベル付ける対象を、着目している時刻において「トライアル」である個別データのみとしてもよい。なお、負をラベル付ける場合を、「トライアル」のみとするのか、「トライアル」および「潜在」とするのかは、予め定められていてもよい。あるいは、ユーザによって指定されてもよい。
【０２１９】
ステップＴ４では、予測用分類器を用いてテストデータに関して判定したラベルが「正」であるならば、「トライアル」から「反復」に変化すると予測し、「負」であるならば、「トライアル」のままであると予測すればよい。その他の動作については、上記の説明と同様である。
【０２２０】
予測対象状態を「離反」として、「反復」から「離反」に変化するか否かを予測する場合には、以下のように処理を行えばよい。この場合、利用開始情報付加部８９は、ステップＨ１（図２１参照）以降の処理を行い、「トライアル」から「反復」に変化するか否かを予測する際に定めた利用開始情報を更新する。ただし、この場合、ステップＨ２の処理は行わず、ステップＨ１の後、ステップＨ３に移行する。さらに、ステップＨ４では、顧客ｉが一定期間ｔにおいて「トライアル」または「反復」と推定されていたか否かを判定し、その期間ｔで「トライアル」または「反復」と推定されていればステップＨ５に移行し、「トライアル」および「反復」のいずれにも推定されていなければステップＨ７に移行する。ステップＨ７では、顧客ｉの個別データに付加された利用開始情報の内容を、「離反に変化した時期が一定期間ｔの時期である」という内容に更新する。以下、この内容が示す、離反に変化した時期を「離反ｔ」と記す。ステップＨ１，Ｈ３〜Ｈ９におけるその他の動作は、既に説明した動作と同様である。この処理により、「潜在」の顧客の利用開始情報は「未利用」のままであり、「トライアル」の顧客の利用開始情報は「利用開始時期」のままであり、「反復」の顧客の利用開始情報は「反復ｔ」であり、「離反」に変化した顧客の利用開始情報は「離反ｔ」となる。
【０２２１】
ステップＨ１０において、正または負をラベル付ける場合、着目している時刻までに「離反」になっている個別データを正とラベル付け、そうでない個別データには負をラベル付ければよい。
【０２２２】
例えば、ステップＨ１０内のステップＳ１（図２３参照)において現時刻データを生成する場合、利用開始情報の内容が「離反」になった時期を表していて、その時期が現時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。ただし、利用開始情報が「未利用」となっている個別データについては、負をラベル付ける対象から除外する。従って、利用開始情報の内容が利用開始時期や、反復に変化した時期となっている個別データに負をラベル付ける。
【０２２３】
また、ステップＨ１０内のステップＳ２（図２３参照）において前時刻データを生成する場合、利用開始情報の内容が「離反」になった時期を表していて、その時期が前時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。従って、現時刻データの場合と同様に、利用開始情報の内容が「未利用」や、利用開始時期や、反復に変化した時期となっている個別データには負をラベル付ける。
【０２２４】
また、ステップＨ１０内のステップＴ１（図２４参照）においてテストデータを生成する場合、現時刻において「離反」になっていない個別データを抜き出して、その個別データの集合をテストデータとすればよい。ただし、用開始情報が「未利用」となっている個別データについては、テストデータに含める対象から除外する。
【０２２５】
また、ステップＨ１０内のステップＴ２において学習データを生成する場合、利用開始情報の内容が「離反」になった時期を表していて、その時期が現時刻以前である個別データに正をラベル付け、他の個別データに負をラベル付ける。従って、利用開始情報の内容が「未利用」や、利用開始時期や、反復に変化した時期となっている個別データには負をラベル付ける。
【０２２６】
なお、上記の例では、前時刻データや学習データを生成する場合、着目している時刻において「反復」、「トライアル」および「潜在」の個別データについて負をラベル付けるが、負をラベル付ける対象を、着目している時刻において「反復」および「トライアル」の個別データのみとしてもよい。なお、負をラベル付ける場合を、「反復」と「トライアル」のみにするのか、「反復」と「トライアル」と「潜在」とするのかは、予め定められていてもよい。あるいは、ユーザによって指定されてもよい。
【０２２７】
ステップＴ４では、予測用分類器を用いてテストデータに関して判定したラベルが「正」であるならば、「反復」から「離反」に変化すると予測し、「負」であるならば、「離反」のままであると予測すればよい。その他の動作については、上記の説明と同様である。
【０２２８】
予測部６１は、上記のように、「潜在」から次の段階（トライアル）に変化するか否か、「トライアル」から次の段階（反復）に変化するか否か、および、「反復」から次の段階（離反）に変化するか否かをそれぞれ予測すればよい。また、テストデータラベル判定部９４は、予測の結果、「潜在」と予測された個別データの数、「トライアル」と予測された個別データの数、「反復」と予測された個別データの数、「離反」と予測された個別データの数をカウントし、各顧客状態に該当する顧客の予測数をそれぞれ求めてもよい。このように、各顧客状態の顧客数をカウントすることで、ターゲットの販売数を予測することができる。すなわち、ある時点で「トライアル」や「反復」に該当する顧客数を、その時点におけるターゲットの販売数と予測することができる。また、「離反」に該当する顧客数の変化から、「離反」の推移を予測することができる。
【０２２９】
また、普及予測部９０は、テストデータラベル判定部９４が「潜在」、「トライアル」、「反復」の各顧客状態から次の段階の顧客状態に変化するか否かを予測した後、現時刻を一定の時間（Ｌと記す。）分増加した時刻を新たな現時刻となるように現時刻を更新する手段（図示せず。以下、現時刻更新部と記す。）を備え、現時刻を更新して上記の予測を行うことを繰り返して、ターゲットの普及の推移を予測してもよい。この場合、テストデータラベル判定部９４は、予測結果を用いて、同様の処理を繰り返す。
【０２３０】
「潜在」、「トライアル」、「反復」の各顧客状態から次の段階の顧客状態に変化するか否かを予測した後、現時刻更新部（図示せず）が現時刻を更新して、更新後の現時刻を用いて、再度同様の処理を行うことを繰り返すことで、将来の期間までに渡って、個々の顧客の顧客状態を予測することができ、各顧客状態に該当する顧客の数を予測することができる。すなわち、ターゲットの普及の推移を予測することができる。
【０２３１】
なお、利用開始情報付加部８９、現時刻データ生成部８１、前時刻データ群生成部８２、前時刻分類器群生成部８３、誤差群算出部８４、影響度算出部８５、テストデータ生成部９１、学習データ生成部９２、予測用分類器生成部９３、テストデータラベル判定部９４、現時刻更新部（図示せず）は、例えば、プログラムに従って動作するＣＰＵによって実現される。
【０２３２】
また、処理終了前（例えば、ステップＨ１０の後）、個別の顧客に対する顧客状態の時系列変化を、例えば、ディスプレイなどの出力装置に表示させたり、印刷装置に印刷させたりする出力手段（図示せず）を備えていてもよい。また、出力手段は、処理終了時に、顧客状態毎に顧客数をカウントし、「潜在」である顧客数の推移、「トライアル」である顧客数の推移、「反復」である顧客数の推移、「離反」である顧客数の推移などのグラフで表示してもよい。また、例えば、制御部３１が、全体の顧客数Ｎから「潜在」と推定された顧客数を差し引くことにより、ターゲットの普及数を計算してもよい。そして、出力手段は、普及数の推移を表示してもよい。上述の出力手段（図示せず）は、例えば、プログラムに従って動作するＣＰＵによって実現される。このＣＰＵは、データ状態推定部２１などとして動作するＣＰＵと同一であってもよい。
【０２３３】
また、第４の実施形態における顧客状態推定装置６が、第３の実施形態と同様に補正部４１を備えていてもよい。そして、予測部６１の処理の後、補正部４１が各顧客状態毎に人数を補正してもよい。さらに、予測部６１が、顧客状態毎の顧客数と実際のターゲットの販売数とを分析し、将来の販売数を予測してもよい。
【０２３４】
本実施形態によれば、予測部６１が、予測対象状態より前の段階の状態に該当する顧客が予測対象状態に変化するか否かを予測する。変動要因を考慮しながら、ターゲットに対して、個別顧客の売上データのない将来の顧客状態を予測することができる。また、顧客状態毎の将来の顧客数を予測することができる。この結果、時間の経過とともに変化する将来の需要を予測することができる。また、売上データなどあれば、将来の顧客数予測を行うことができるので、顧客状態推定システムのユーザは、専門的な知見がなくても将来の需要予測結果を得ることができる。
【０２３５】
さらに、普及予測部９０が備える現時刻更新部（図示せず）が現時刻を更新し、予測対象状態より前の段階の状態に該当する顧客が予測対象状態に変化するか否かを予測する処理を繰り返すことによって、ターゲットの利用を開始する顧客の推移を予測することができる。また、需要の推移を予測することができる。
【０２３６】
実施形態５．
図２５は、本発明の顧客状態推定システムの第５の実施形態の構成例を示すブロック図である。第４の実施形態と同様の構成要素については、図１９と同一の符号を付し、詳細な説明を省略する。第５の実施形態の顧客状態推定システムは、売上データを記憶する売上ＤＢ１と、顧客の情報を含んだデータを記憶する顧客ＤＢ５と、販売促進情報を示すデータを記憶する販売促進特徴データベース（以下、販促ＤＢと記す）７と、売上実績を用いて顧客の状態を推定する顧客状態推定装置９とを備える。
【０２３７】
売上ＤＢ１が記憶する売上データは、第１から第４までの各実施形態と同様である。また、顧客ＤＢ５が記憶する顧客データは、第４の実施形態と同様である。
【０２３８】
販促ＤＢ７は、販売促進データを記憶する記憶手段であり、販売促進データ記憶手段と呼ぶことができる。販売促進データは、個別の販売促進活動毎に定められた販売促進活動の内容を示すデータの集合である。販売促進活動の例として、広告を行う、値引きをする、などが挙げられるが、販売促進活動の内容は特に限定されない。販売促進データの例を図２６に示す。販売促進データは、販売活動毎に、その販売促進活動の特性を表わす項目を１つ以上含む。この項目は、例えば、販売を促進しようとするターゲット、値引価格、元価格、競合商品またはサービスの価格、広告の種類、販売促進活動を行うのが休日であるかどうか、天気などである。これらの項目は、販売促進活動を識別するＩＤ（以下、販促ＩＤと記す）に対応づけられている。販売促進データは、さらに、個別顧客毎に、販売促進活動を行なわなかった時（販促なし）、行なった時点（販促時点）、および販売促進活動が終了した以降の時点（販促後）における顧客状態を表わす項目を含む（図２６参照）。なお、複数の店舗がある場合には、販促ＩＤに、販売促進活動を実施した店舗の特徴などを含めてもよい。以降、販売促進ＩＤがｋである販売促進活動のことを、販促ｋと省略して記す。
【０２３９】
顧客状態推定装置９は、制御部３１と、データ状態推定部２１と、分類器生成部２２と、初期顧客状態推定部２３と、データクラス予測部２４と、顧客状態推定部２５と、予測部６１と、販促効果推定部７１と、販促状態変化予測部７２とを備え、販売促進の効果により、個別の顧客の顧客状態がどのように変化するかを予測する。
【０２４０】
制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、顧客状態推定部２５、および予測部６１の動作は、第４の実施形態と同様である。
【０２４１】
販促効果推定部７１は、販売促進活動の特徴（販売促進活動の内容を表わす項目）が、キーボードなどの入力装置（図示せず）を介して、顧客状態推定システムのユーザから入力されると、その販売促進活動の項目を販促ＤＢ７に記憶させる。また、予測部６１が求めたターゲットの普及の推定結果に基づいて、個別顧客の販促なしの顧客状態を販促ＤＢ７に記憶する。また、顧客状態推定部２５による推定結果に基づいて、販促時点の顧客状態と販促後の顧客状態とを、それぞれ販促ＤＢ７に記憶する。
【０２４２】
販促状態変化予測部７２は、新たな販売促進活動の特徴が、キーボードなどの入力装置を介して、顧客状態推定システムのユーザから入力されると、販促ＤＢ７が記憶している販促データに基づいて、顧客状態推定部２５で推定された個別顧客の顧客状態の変化を予測する。
【０２４３】
次に、動作について説明する。図２７は、販促効果推定部７１の処理経過の例を示すフローチャートである。ここでは、説明のため、一定期間ｐの開始時点から販売促進活動を開始し、一定期間ｐの終了時点で販売促進活動が終了したとする。
【０２４４】
販促効果推定部７１は、販売促進活動の特徴が、例えばキーボードなどの入力装置（図示せず）を介して、顧客状態推定システムのユーザから入力されると、次のように動作する。まず、販促効果推定部７１は、入力された販売促進活動の特徴を販促ＤＢ７に記憶させる（図２７のステップＩ１）。販売促進活動の特徴は、例えば、値引き価格などのような販売促進活動の内容を表わす各項目である。販促効果推定部７１は、新たに販促ＩＤを定めて、入力された販売促進活動の特徴に対応づけて販促ＤＢ７に記憶させてもよい。
【０２４５】
ステップＩ１の後、販促効果推定部７１は、一定期間ｐにおける売上データを未知として、一定期間ｐにおける予測部６１で予測された各顧客の顧客状態を、販促なしの顧客状態として販売促進データに追加して販促ＤＢ７に記憶させる（ステップＩ２）。具体的には、制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、顧客状態推定部２５、および予測部６１は、販売促進活動を行った一定期間ｐより前の売上データ（一定期間ｐ−１以前の売上データ）を用いて、第４の実施形態と同様の動作を行い、予測部６１は、一定期間ｐにおける顧客状態を予測する。販促効果推定部７１は、その予測結果を販促なしの顧客状態として販促ＤＢ７に記憶させる。
【０２４６】
ここでは、説明のために、一定期間ｐのみで販売促進活動を行なったと仮定したが、複数の一定期間で販売促進活動を行なった場合には、個別顧客に対し、複数の一定期間で最も多く予測された顧客状態などとすればよい。
【０２４７】
次に、売上実績として実際に売上ＤＢ１に蓄積された売上データを用いて、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５が、一定期間ｐを顧客状態推定対象期間として、第１の実施形態と同様の処理を行う。この結果、顧客状態推定部２５が、一定期間ｐにおける各顧客の顧客状態を推定すると、顧客状態推定部２５は、その推定結果を各顧客の販促時点の顧客状態として販売促進データに追加して販促ＤＢ７に記憶させる（ステップＩ３）。ここでは、説明のために、一定期間ｐのみで販売促進活動を行なったと仮定したが、複数の一定期間で販売促進活動を行なった場合には、個別顧客に対し、複数の一定期間で最も多く推定された顧客状態などとすればよい。
【０２４８】
次に、売上実績として実際に売上ＤＢ１に蓄積された売上データを用いて、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５が、一定期間ｐ＋１を顧客状態推定対象期間として、第１の実施形態と同様の処理を行う。この結果、顧客状態推定部２５が、一定期間ｐ＋１における各顧客の顧客状態を推定すると、顧客状態推定部２５は、その推定結果を各顧客の販促後の顧客状態として販売促進データに追加して販促ＤＢ７に記憶させる（ステップＩ４）。
【０２４９】
この結果、図２６に例示するように、販売促進活動の特徴と、各顧客毎の「販促なし」、「販促時点」、「販促後」の顧客状態が販促ＤＢ７に記憶される。
【０２５０】
販促状態変化予測部７２は、上記のように販売促進データが販促ＤＢ７に蓄積された後に、新たな販売促進活動の特徴が入力されると、顧客状態推定部２５で推定された個別顧客の顧客状態の変化を予測する。図２８は、販促状態変化予測部７２の処理経過の例を示すフローチャートである。ここでは、説明のため、一定期間ｑ＋１の開始時点に新たな販売促進活動を行った場合における一定期間ｑ＋１での顧客状態を予測するものとする。また、販促ＤＢ７には、販促１、販促２、・・・販促ＫというＫ個の販売促進データが記憶されているものとし、新たな販促Ｋ＋１の特徴が、例えばキーボードなどの入力装置を介して、顧客状態推定システムのユーザにより入力されたとする。
【０２５１】
販促状態変化予測部７２は、まず、ｉ＝１と初期化する（ステップＪ１）。ｉは、顧客を指定するための変数である。次に、販促状態変化予測部７２は、変数ｋ、ＳｉｍＡ、およびＳｉｍＭａｘについて、ｋ＝１、ＳｉｍＡ＝０、ＳｉｍＭａｘ＝０と初期化する（ステップＪ２）。ｋは、販促データを指定するための変数である。ＳｉｍＡは、販促Ｋに最も類似した販売促進データを定めるための変数である。ＳｉｍＭａｘは、販促Ｋと、その販促Ｋに最も類似した販売促進データとの類似度を表わす変数である。
【０２５２】
販促状態変化予測部７２は、顧客ｉの一定期間ｑにおける顧客状態と、販促ｋの顧客ｉの「販促なし」の顧客状態とを比較し、一致しているか否かを判定する（ステップＪ３）。「顧客ｉの一定期間ｑにおける顧客状態」は、例えば、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５が一定期間ｑについて推定した顧客ｉの顧客状態である。
【０２５３】
一致しているならば（ステップＪ３におけるＹｅｓ）、販促状態変化予測部７２は、入力された新たな販促Ｋ＋１と販促ｋとの類似度を計算する。この類似度をＳｉｍ（Ｋ＋１，ｋ）と表す。さらに販促状態変化予測部７２は、Ｓｉｍ（Ｋ＋１，ｋ）とＳｉｍＭａｘとを比較し、Ｓｉｍ（Ｋ＋１，ｋ）がＳｉｍＭａｘよりも大きいか否かを判定する（ステップＪ４）。類似度の計算方法は、顧客状態推定システムに予め設定されていてもよい。あるいは、類似度の計算方法を指定する情報が顧客状態推定システムのユーザによって入力され、指定された計算方法で類似度を計算してもよい。例えば、販売促進データ（販促Ｋ＋１，ｋ）同士の特徴を表わす項目（例えば、値引価格など）を比較して、内容が一致する項目の数をカウントし、そのカウント結果を類似度としてもよい。
【０２５４】
Ｓｉｍ（Ｋ＋１，ｋ）がＳｉｍＭａｘより大きければ、販促状態変化予測部７２は、ＳｉｍＡの値をｋの値に更新し、ＳｉｍＭａｘの値をＳｉｍ（Ｋ＋１，ｋ）の値に更新する（ステップＪ５）。すなわち、これまでの類似度を超える類似度が得られたので、販促Ｋ＋１に最も類似する販促データ、およびその類似度を更新する。
【０２５５】
ステップＪ３において一致していないと判定した場合（ステップＪ３におけるＮｏ）、およびステップＪ４においてＳｉｍ（Ｋ＋１，ｋ）がＳｉｍＭａｘ以下であると判定した場合、販促状態変化予測部７２は、ｋの値を１インクリメントする（ステップＪ６）。すなわち、販促Ｋ＋１との類似度を求める販売促進データを変更する。
【０２５６】
次に、販促状態変化予測部７２は、ｋの値が、Ｋ（販促ＤＢ７に記憶された販売促進データの数）以下であるか否かを判定する（ステップＪ７）。ｋの値がＫ以下である場合（ステップＪ７におけるＹｅｓ）、ステップＪ３以降の処理を繰り返す。ステップＪ３以降の処理を繰り返すことで、販促ＤＢ７に記憶された販売促進データの中から販促Ｋ＋１に最も類似するものを特定する。
【０２５７】
ｋの値がＫを超えていれば（ステップＪ７におけるＮｏ）、販促状態変化予測部７２は、ＳｉｍＡの値が０であるか否かを判定する（ステップＪ８）。
【０２５８】
ＳｉｍＡ＝０である場合（ステップＪ８におけるＹｅｓ）、ステップＪ５を通過しておらず、販促Ｋ＋１に類似する販売促進データが存在しなかったことを意味する。この場合、販促状態変化予測部７２は、顧客ｉの一定期間ｑ＋１における顧客状態を予測部６１を用いて予測した結果を、顧客ｉの一定期間ｑ＋１における顧客状態と定める（ステップＪ９）。すなわち、ステップＪ９では、顧客ｉの一定期間ｑ＋１における顧客状態を予測部６１が予測し、販促状態変化予測部７２は、その予測結果を、顧客ｉの一定期間ｑ＋１における顧客状態と定める。
【０２５９】
ＳｉｍＡの値が０でない場合（ステップＪ８におけるＮｏ）、販促状態変化予測部７２は、一定期間ｑ＋１での顧客ｉの顧客状態は販促ＳｉｍＡにおける顧客ｉの販促時点（図２６参照）の顧客状態であると定める（ステップＪ１０）。
【０２６０】
次に、販促状態変化予測部７２は、変数ｉの値を１インクリメントする（ステップＪ１１)。すなわち、一定期間ｑ＋１における顧客状態を推定する対象となる顧客を切り替える。次に、販促状態変化予測部７２は、ｉが全顧客数Ｎ以下であるか否かを判定し（ステップＪ１２)、ｉがＮ以下であればステップＪ２以降の処理を繰り返す。ｉがＮより大きければ、全ての顧客についてステップＪ２以降の処理を完了したことになるので、処理を終了する。
【０２６１】
また、例えば、ステップＪ１２でｉがＮを超えたと判定した後に、第４の実施形態で示した各種出力態様で、情報を出力する出力手段（図示せず）を備えていてもよい。
【０２６２】
また、図２８に示す処理では、ステップＪ１０において、販促状態変化予測部７２は、一定期間ｑ＋１での顧客ｉの顧客状態は販促ＳｉｍＡにおける顧客ｉの販促時点（図２６参照）の顧客状態であると定める。この処理にあわせて、新たな販売促進活動を行った一定期間ｑ＋１の次の一定期間ｑ＋２におけるその顧客ｉの顧客状態が、販促ＤＢ７に記憶された販促ＳｉｍＡにおける顧客ｉの販売後（図２６参照）の顧客状態になっていると定めてもよい。すなわち、販売促進活動を行う一定期間ｑ＋１における顧客ｉの顧客状態については、販促ＤＢ７に記憶されたその顧客の「販促時点」の顧客状態であるとし、販売促進活動後の一定期間ｑ＋２における顧客ｉの顧客状態については、販促ＤＢ７に記憶されたその顧客の「販促後」の顧客状態であると予測してもよい。また、ステップＪ１０において、販売促進活動を行っている時点での顧客状態のみを予測し、その販売促進活動後の顧客状態を予測対象外とする場合には、販促効果推定部７１は、図２７に示すステップＩ４の処理を行わずに、「販促後」の顧客状態を販促ＤＢ７に記憶させておかなくてもよい。
【０２６３】
本実施形態によれば、販促ＤＢ７に記憶させる販売促進データが入力された場合、販促効果推定部７１が、その販売促進データに対して、各顧客の「販促なし」、「販促時点」、「販促後」の顧客状態を追加して顧客ＤＢ７に記憶させる。そして、販売促進活動後の顧客の顧客状態変化を調べる対象となる販売促進データが入力されると、販促状態変化予測部７２が、顧客ＤＢ７に蓄積された販売促進データを用いて、その販売促進活動後の各顧客の顧客状態を推定する。従って、本実施形態では、ターゲットに対して、新たな販売促進を行った場合の顧客状態を予測することができる。
【０２６４】
実施形態６．
図２９は、本発明の顧客状態推定システムの第６の実施形態の構成例を示すブロック図である。第４の実施形態と同様の構成要素については、図１９と同一の符号を付し、詳細な説明を省略する。第６の実施形態の顧客状態推定システムは、売上データを記憶する売上ＤＢ１と、顧客の情報を含んだデータを記憶する顧客ＤＢ５と、顧客の顧客状態を予測する顧客状態推定装置１０とを備える。
【０２６５】
売上ＤＢ１が記憶する売上データは、第１から第５までの各実施形態と同様である。また、顧客ＤＢ５が記憶する顧客データは、第４および第５の実施形態と同様である。
【０２６６】
顧客状態推定装置１０は、制御部３１と、データ状態推定部２１と、分類器生成部２２と、初期顧客状態推定部２３と、データクラス予測部２４と、顧客状態推定部２５と、予測部１１１とを備え、将来の個別顧客の顧客状態を予測する。制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５の動作は、第４の実施形態と同様である。
【０２６７】
予測部１１１は、制御部３１と、データ状態推定部２１と、分類器生成部２２と、初期顧客状態推定部２３と、データクラス予測部２４と、顧客状態推定部２５とで推定した顧客の顧客状態の推移と顧客ＤＢ５とに基づいて、個別の顧客の顧客状態が予測対象状態に変化するか否かを予測する。
【０２６８】
予測部１１１は、スコアを定めることが可能な分類器を用いてスコアを計算し、そのスコアが閾値以上であるか否かを判定することにより、個別の顧客の顧客状態が予測対象状態に変化するか否かを予測する。このスコアは、ラベルが正となる確からしさであり、顧客状態予測用スコアと呼ぶことができる。予測部１１１は、まず、最適な閾値を求める処理を行い、その閾値を用いて顧客状態が予測対象状態に変化するか否かを予測する。
【０２６９】
図３０は、第６の実施形態の予測部の例を示すブロック図である。予測部１１１は、利用開始情報付加部８９と、普及率計算部１２１と、閾値計算部１４０と、閾値関数計算部１２６と、閾値確定部１２７と、状態判定用分類器生成部１２９と、顧客状態判定部１３０とを備える。
【０２７０】
利用開始情報付加部８９は、第４の実施形態における利用開始情報付加部８９と同様である。すなわち、顧客ＤＢ５に記憶された各顧客の個別データに利用開始情報を付加する。利用開始情報は、顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表す。また、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す。本実施形態では、予測対象状態に変化していないことを、第４の実施形態と同様に、「未利用」という文字列で表すこととする。
【０２７１】
普及率計算部１２１は、期間毎の普及率を計算する。第６の実施形態においても、第４の実施形態等と同様に、与えられた一定期間数をＴ個とし、それぞれの一定期間を、一定期間１、一定期間２、・・・、一定期間Ｔと記すこととする。そして、個々の一定期間の長さがいずれもΔｔで同じであるものとする。普及率計算部１２１は、より具体的には、それぞれの一定期間１〜Ｔの開始時刻における普及率を計算する。普及率とは、既に予測対象状態に変化済みとなった顧客の割合である。
【０２７２】
閾値計算部１４０は、閾値推定用分類器生成部１２４と閾値推定部１２５とを有し、一定期間１〜Ｔに関して、それぞれ最適な閾値を推定する。
【０２７３】
閾値推定用分類器生成部１２４は、一定期間の開始時刻で既に予測対象状態に変化済みになっている顧客の個別データに第１ラベルをラベル付け、まだ予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付けたデータを生成する。このデータを、閾値推定用学習データと記す。第４の実施形態で説明したように、第１ラベルは、予測対象状態以降の段階の顧客状態を示す情報であり、第２ラベルは、予測対象状態よりも前の段階の顧客状態を示す情報である。なお、この閾値推定用学習データと、前述の分類器生成部２２が生成する学習データと、学習データ生成部９２が生成する学習データとは、それぞれ別のデータである。閾値推定用分類器生成部１２４は、閾値推定用学習データに基づいて、閾値を推定するための分類器を生成する。この分類器を、他の分類器と区別して、閾値推定用分類器と記す。閾値推定用分類器は、顧客状態予測スコアと同様のスコアを定めることが可能な分類器である。閾値推定用分類器の具体例については後述する。閾値推定用分類器生成部１２４は、一定期間１〜Ｔについて、それぞれ閾値推定用学習データおよび閾値推定用分類器を生成する。
【０２７４】
以下、第４の実施形態と同様に、第１ラベルを正と記し、第２ラベルを負と記す。
【０２７５】
閾値推定部１２５は、一定期間の終了時刻で既に予測対象状態に変化済みになっている顧客の個別データに正をラベル付け、まだ予測対象状態に変化していない顧客の個別データに負をラベル付けたデータを生成する。このデータを、閾値推定用予測データと記す。閾値推定部１２５は、閾値推定用予測データと閾値推定用分類器とを用いて、閾値推定用予測データ内の各顧客の個別データのスコアを計算する。そして、閾値推定部１２５は、閾値を変動させ、各閾値について、閾値推定用予測データ内の各個別データに対するラベルを予測する。すなわち、スコアが閾値以上であれば正であると予測し、スコアが閾値未満であれば負と予測する。さらに、閾値推定部１２５は、閾値推定用予測データで正がラベル付けられた顧客数（具体的には顧客の個別データの数）と、正と予測された顧客数との差が最小となるときの閾値を、最適な閾値として推定する。閾値推定部１２５は、一定期間１〜Ｔについて、閾値推定用予測データを生成し、最適な閾値を推定する。値を変動させた各閾値は、閾値の候補ということができ、閾値推定部１２５は、その閾値の候補から、最適な閾値を推定する。
【０２７６】
閾値関数計算部１２６は、一定期間１〜Ｔについてそれぞれ推定された最適な閾値と、その一定期間１〜Ｔについてそれぞれ計算された普及率とに基づいて、普及率を変数とする閾値の関数を求める。すなわち、普及率を与えたときに閾値が確定する関数を推定する。
【０２７７】
閾値確定部１２７は、上記の関数を用いて、設定された時刻における最適な閾値を計算する。
【０２７８】
状態判定用分類器生成部１２９は、設定された時刻において、既に予測対象状態に変化済みになっている顧客の個別データに正をラベル付け、まだ予測対象状態に変化していない顧客の個別データに負をラベル付けたデータを生成する。このデータを、状態判定用学習データと記す。状態判定用学習データと、前述の閾値推定用学習データと、前述の分類器生成部２２が生成する学習データと、学習データ生成部９２が生成する学習データとは、それぞれ別のデータである。状態判定用分類器生成部１２９は、状態判定用学習データに基づいて、分類器を生成する。この分類器は、次に説明する状態判定用予測データに含まれる顧客の個別データに対するラベルを判定するための分類器であり、他の分類器と区別して、状態判定用分類器と記す。状態判定用分類器は、スコア（顧客状態予測用スコア）を定めることが可能な分類器である。
【０２７９】
顧客状態判定部１３０は、状態判定用学習データのうちで、負とラベル付けられた顧客の個別データを抽出する。この個別データの集合を、状態判定用予測データと記す。さらに、顧客状態判定部１３０は、状態判定用予測データに含まれる各顧客の個別データに対するスコアを、状態判定用分類器によって定め、そのスコアと閾値確定部１２７によって計算された閾値とにより、各顧客のラベルを判定する。顧客状態判定部１３０は、このラベル判定により、顧客の状態が予測対象状態に変化するか否かを判定する。すなわち、状態判定用予測データに含まれる顧客の個別データに対する判定結果が正であれば、その顧客は予測対象状態に変化すると判定（予測）することになる。一方、状態判定用予測データに含まれる顧客の個別データに対する判定結果が負であれば、その顧客はまだ予測対象状態に変化しないと判定（予測）することになる。
【０２８０】
制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、顧客状態推定部２５、および予測部１１１は、例えば、プログラムに従って動作するＣＰＵによって実現される。すなわち、ＣＰＵが、プログラムを読み込み、そのプログラムに従って、制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、顧客状態推定部２５、および予測部１１１として動作してもよい。
【０２８１】
次に、動作について説明する。まず、制御部３１、データ状態推定部２１、分類器生成部２２、初期顧客状態推定部２３、データクラス予測部２４、および顧客状態推定部２５が処理を行い、それぞれの一定期間毎に、個別の顧客の顧客状態を推定する。この動作は、第２の実施形態で説明したステップＦ１〜Ｆ４の動作と同様である。
【０２８２】
図３１は、第６の実施形態における予測部１１１の処理経過の例を示すフローチャートである。以下の説明では、「トライアル」を予測対象状態として、「潜在」であった顧客が「トライアル」に変化するか、あるいは、「トライアル」に変化せずに「潜在」のままとなるかを予測する場合を例にして説明する。
【０２８３】
予測部１１１の利用開始情報付加部８９は、顧客ＤＢ５に記憶された全顧客の個別データに対して、それぞれ利用開始情報を付加する（ステップＵ１）。この動作は、第４の実施形態における利用開始情報付加部８９と同様である。本例では、「トライアル」が予測対象状態であるので、第４の実施形態で説明したステップＨ１〜Ｈ９（図２１参照）と同様の動作を行えばよい。
【０２８４】
次に、普及率計算部１２１は、一定期間１、一定期間２、・・・、一定期間Ｔについて、一定期間の開始時刻における普及率を計算する（ステップＵ２）。本例では、一定期間の開始時刻と、顧客の個別データにおける利用開始情報を比較する。そして、利用開始情報の示す時刻が一定期間の開始時刻以前となっている顧客の個別データの数をカウントし、顧客の個別データ数（すなわち顧客数）に対するそのカウント結果の割合を普及率として計算すればよい。
【０２８５】
次に、閾値計算部１４０は、一定期間１、一定期間２、・・・、一定期間Ｔについて、一定期間の開始時刻における最適な閾値を推定する（ステップＵ３）。図３２は、ステップＵ３の処理経過の例を示すフローチャートである。
【０２８６】
ここでは、一定期間１、一定期間２、・・・、一定期間Ｔのうち、閾値を推定しようとしている一定期間を一定期間ｉと記す。まず、閾値推定用分類器生成部１２４は、顧客ＤＢ５に記憶された顧客データを読み込み、一定期間ｉの開始時刻に基づいて、その顧客データに含まれる各顧客の個別データそれぞれに対して、正または負をラベル付けることによって閾値推定用学習データを作成する（ステップＶ１）。ステップＶ１において、閾値推定用分類器生成部１２４は、顧客の個別データの利用開始情報が示す時刻が、一定期間ｉの開始時刻以前であるならば、その個別データに正をラベル付ける。また、顧客の個別データの利用開始情報が示す時刻が、一定期間ｉの開始時刻よりも後であるか、または、利用開始情報が「未利用」であるならば、その個別データに負をラベル付ける。ステップＶ１の処理は、一定期間ｉの開始時刻において、予測対象状態（「トライアル」）になっている顧客の個別データに正をラベル付け、予測対象状態になっていない顧客の個別データに負をラベル付けたデータを生成する処理であるということができる。
【０２８７】
次に、閾値推定部１２５は、顧客ＤＢ５に記憶された顧客データを読み込み、一定期間ｉの終了時刻に基づいて、その顧客データに含まれる各顧客の個別データそれぞれに対して、正または負をラベル付けることによって閾値推定用予測データを作成する（ステップＶ２）。ステップＶ２において、閾値推定部１２５は、顧客の個別データの利用開始情報が示す時刻が、一定期間ｉの終了時刻以前であるならば、その個別データに正をラベル付ける。また、顧客の個別データの利用開始情報が示す時刻が、一定時刻ｉの終了時刻よりも後であるか、または、利用開始情報が「未利用」であるならば、その個別データに負をラベルづける。ステップＶ２の処理は、一定期間ｉの終了時刻において、予測対象状態（「トライアル」）になっている顧客の個別データに正をラベル付け、予測対象状態になっていない顧客の個別データに負をラベル付けたデータを生成する処理であるということができる。
【０２８８】
次に、閾値推定用分類器生成部１２４は、ステップＶ１で作成した閾値推定用学習データを用いて、閾値推定用分類器を生成する（ステップＶ３）。閾値推定用分類器は、スコアを定めることが可能な分類器であり、具体的には、閾値の候補と比較されるスコアを定めるために用いられる。
【０２８９】
スコアを定めることが可能な分類器の例を説明する。このような分類器として、複数の決定木の組が挙げられる。このように複数の決定木の組を分類器とした場合、その決定木毎にラベルが正であるか負であるかを判定し、決定木の総数に対して、判定結果として正が得られた決定木の数の割合をスコアとすることができる。このような分類器は、アンサンブル学習の一種であるバギングを決定木に適用した分類器であると言える。本実施形態では、閾値推定用分類器生成部１２４が閾値推定用分類器として複数の決定木を生成する場合を例にして説明する。ただし、閾値推定用分類器は、複数の決定木の組に限定されず、重回帰分析、回帰木、ニューラルネットワーク、サポートベクタマシン、ベイジアンネットワーク等の出力が連続値となるデータマイニング手法のいずれか、あるいはその組み合わせ等により分類器を生成してもよい。
【０２９０】
閾値推定用分類器生成部１２４は、ステップＶ３において、閾値推定用学習データから重複を許して一部の顧客の個別データを取り出して、その個別データの集合を用いて決定木を生成する。閾値推定用分類器生成部１２４は、この処理を複数回繰り返すことにより、複数の決定木を生成し、その複数の決定木の組み合わせを一つの閾値推定用分類器とする。例えば、閾値推定用学習データから取り出す顧客の個別データ数をＫ個とすると、閾値推定用分類器生成部１２４は、閾値推定用学習データから重複を許してＫ個の個別データを取り出し、Ｋ個の個別データから決定木を生成することを繰り返せばよい。例えば、この繰り返しを５００回行えば、５００個の決定木が作成される。
【０２９１】
取り出した顧客の個別データから決定木を作成する処理は、既に説明した決定木作成動作と同様に行えばよい。すなわち、閾値推定用分類器生成部１２４は、閾値推定用学習データから顧客の個別データを複数個取り出すと、どの項目（本実施形態では顧客の属性を表す項目）で最初に分割するのかを決定する。このとき、閾値推定用分類器生成部１２４は、項目１〜Ｎの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択すればよい。評価値として、例えば、分割前のノードのエントロピーと、分割後のエントロピーの差を用いればよい。分割前のノードのエントロピー、および分割後のエントロピーの計算方法は、既に説明した計算方法と同様であり、説明を省略する。閾値推定用分類器生成部１２４は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次繰り返し、所定の条件が満たされたときには、ノードの分割を停止する。そして、閾値推定用分類器生成部１２４は、このようにして得た木構造の決定木に対して、枝刈りを行うことにより、決定木を生成する。上記の所定の条件や枝刈りの処理も、第１の実施形態で示した所定の条件や枝刈り処理と同様であり、説明を省略する。
【０２９２】
閾値推定用分類器生成部１２４は、閾値推定用学習データから取り出す顧客の個別データの組を変えて、決定木を生成する処理を繰り返し、その決定木の集合を閾値推定用分類器とする。また、閾値推定用分類器生成部１２４は、一定期間１〜Ｔそれぞれについて、閾値推定用分類器を生成する。
【０２９３】
ステップＶ３で閾値推定用分類器が生成された後、閾値推定部１２５は、閾値推定用予測データと閾値推定用分類器とを用いて、閾値推定用予測データに含まれる各顧客の個別データに対するスコアを計算する（ステップＶ４）。ここでは、一定期間ｉの閾値推定用分類器を用いてスコアを計算する場合を例にして説明するが、一定期間１〜Ｔそれぞれについて、同様にスコアを計算する。
【０２９４】
ステップＶ４において、閾値推定部１２５は、閾値推定用予測データに含まれる個々の顧客の個別データ毎に閾値推定用分類器を用いてスコアを求める場合、例えば、以下のように処理を行えばよい。本例では、閾値推定用分類器は複数の決定木の組であり、閾値推定部１２５は、個々の決定木毎に、顧客の個別データに対するラベルの判定を行い、正と判定された回数を、判定回数で除算することによって、スコアを計算する。換言すれば、正という判定が得られた決定木の数を、閾値推定用分類器をなす決定木の総数で除算した値をスコアとする。例えば、閾値推定用分類器として５００個の決定木を生成した場合、閾値推定部１２５は、顧客の個別データに対して、それぞれの決定木を用いてラベル判定を行う。その結果、正と判定された回数をＸ回とすると、スコアとしてＸ／５００を求める。
【０２９５】
閾値推定部１２５は、閾値推定用予測データに含まれる個別データ毎にそれぞれスコアを求める。さらに、ステップＶ４において、閾値推定部１２５は、個別データ毎にスコアを求める処理を、一定期間１〜Ｔそれぞれに関して行う。
【０２９６】
続いて、閾値推定部１２５は、一定期間１〜Ｔそれぞれに関して、以下の処理を実行して、最適な閾値を推定する（ステップＶ５）。閾値推定部１２５は、スコアが取りうる範囲内で、閾値を変動させて、閾値の候補とする。以下、閾値の候補を単に閾値候補と記す。例えば、上記のようにスコアを求める場合、スコアの取り得る最小値は０であり、最大値は１である。この場合、閾値候補を０から１までの範囲で変動させればよい。閾値推定部１２５は、一つの閾値推定用分類器により求めた各個別データのスコアと閾値候補とを比較して、スコアが閾値以上となった顧客の個別データに対して、ラベルが正であると予測し、スコアが閾値未満となった顧客の個別データに対して、ラベルが負であると予測する。そして、閾値推定部１２５は、正であると予測した個別データの数と、閾値推定用予測データにおいて正とラベル付けられていた顧客の個別データの数との差を、閾値候補毎に計算し、正であると予測した個別データの数と、閾値推定用予測データにおいて正とラベル付けられていた顧客の個別データの数との差が最小となる閾値候補を、最適な閾値（一定期間の開始時刻における最適な閾値）として推定する（ステップＶ５）。閾値推定部１２５は、同様の処理を行って、一定期間１〜Ｔ毎に最適な閾値を推定する。
【０２９７】
図３２に示すステップＵ３では、閾値計算部１４０が上記のステップＶ１〜Ｖ５を行うことによって、それぞれの一定期間の開始時刻における最適な閾値を推定する。
【０２９８】
ステップＵ３の後、閾値関数計算部１２６は、ステップＵ３で一定期間１〜Ｔについてそれぞれ推定された最適な閾値と、その一定期間１〜Ｔについてそれぞれ計算された普及率とから、普及率を変数とする閾値の関数を推定する（ステップＵ４）。閾値関数計算部１２６は、普及率をｘｉとし、閾値をｙｉとしたときに、ｙ＝ｆ（ｘ）となる閾値関数ｆを推定する。例えば、関数ｆが、以下に示す式（６）で表されるとみなし、式（６）におけるパラメタａ，ｂを推定すればよい。
【０２９９】
ｙ＝ｆ（ｘ）＝ａ×ｘ＋ｂ          式（６）
【０３００】
式（６）において、ａ，ｂは推定すべきパラメタである。ステップＵ２，Ｕ３の結果、普及率ｘｉおよび閾値ｙｉの組み合わせがＴ組求められている。閾値関数計算部１２６は、この組み合わせから、最小二乗法により、式（６）のａ，ｂを計算してもよい。この計算は、式（３）におけるａ，ｂを最小二乗法で求める場合の計算と同様であり、式（４）、式（５）におけるＲ［ｔ］をｘｉに置き換え、Ｓ［ｔ］をｙｉに置き換えて、ａ，ｂを計算すればよい。パラメタａ，ｂを求めることにより、閾値関数が特定される。
【０３０１】
なお、式（６）におけるパラメタａの値は、商品またはサービスの普及率が時間の経過とともに急激に上昇するなら低くなり、普及率の上昇が緩やかならば高くなる。ａは、例えば、０．５等の値となる。パラメタｂは、普及開始段階での普及率が急激に上昇するなら低く、普及率がほとんど上昇しないなら低くなる値であり、０以上１以下で、例えば０．０５等の小さな値となる。
【０３０２】
次に、普及の推移に周期変動がある場合における閾値関数の例を示す。例えば、普及の推移に１週間（７日間）毎の周期があるとする。この場合、一定期間ｉの開始時刻（普及率ｘｉとなる時刻）をｔｉ日目とし、閾値ｙは、普及率ｘおよび時刻ｔによって、以下の式（７）で表されるとみなして、式（７）のパラメタａ，ｂ，ｃを推定してもよい。
【０３０３】
ｙ＝ｆ（ｘ）＝ａ×ｘ＋ｂ＋ｃ×ｓｉｎ（２π×（ｔ−ｔ０）／７）        式（７）
【０３０４】
式（７）におけるｔ０は、０日目が周期内のどの日に相当するかを調整するための値である。例えば、１週間のうちで土曜日に、最も閾値が低くなるとする。この場合、０日目が土曜日であるならば、ｔ０＝０とし、０日目が金曜日であるならば、ｔ０＝１と設定する。
【０３０５】
ここでは、閾値関数が式（６）や式（７）で表される場合を例にして説明したが、閾値関数は、式（６），（７）に限定されない。推定すべきパラメタを含む閾値関数は、キーボード等の入力装置（図示略）等を介して、顧客状態推定システムのユーザに入力されてもよい。
【０３０６】
ステップＵ４で閾値関数を推定した後、閾値確定部１２７は、閾値を確定しようとする時刻を設定する（ステップＵ５）。ステップＵ５で設定する時刻を、以下、時刻ｔと記す。この時刻ｔは、利用開示情報で示された時刻との前後関係を判定できる時刻（すなわち、予測対象状態に変化したか否かを判定できる時刻）であればよい。本例では、閾値確定部１２７が、一定期間Ｔの終了時刻を、時刻ｔに設定する場合を例にして説明するが、他の態様で時刻ｔを設定してもよい。例えば、キーボード等の入力装置（図示略）等を介して指定された時刻を、時刻ｔに設定してもよい。
【０３０７】
次に、閾値確定部１２７は、時刻ｔにおける普及率を求め、その普及率と閾値関数とから、時刻ｔにおける閾値を計算する（ステップＵ６）。ステップＵ６において、閾値確定部１２７は、利用開始情報の示す時刻が時刻ｔ以前となっている顧客の個別データの数をカウントし、顧客の個別データ数（すなわち顧客数）に対するそのカウント結果の割合を普及率として計算すればよい。さらに、閾値確定部１２７は、その普及率を閾値関数に代入して、時刻ｔにおける閾値を計算すればよい。
【０３０８】
ステップＵ６の次に、状態判定用分類器生成部１２９は、状態判定用学習データを作成し、顧客状態判定部１３０は、状態判定用予測データを作成する（ステップＵ７）。
【０３０９】
ステップＵ７において、状態判定用分類器生成部１２９は、顧客ＤＢ５に記憶された顧客データを読み込み、時刻ｔで、既に予測対象状態に変化済みになっている顧客の個別データに正をラベル付け、まだ予測対象状態に変化していない顧客の個別データに負をラベル付けることによって、状態判定用学習データを作成する。具体的には、状態判定用分類器生成部１２９は、顧客の個別データの利用開始情報が示す時刻が時刻ｔ以前であるならば、その個別データに正をラベル付け、顧客の個別データの利用開始情報が示す時刻が時刻ｔよりも後であるか、または、利用開始情報が「未利用」であるならば、その個別データに負をラベル付ける。
【０３１０】
また、顧客状態判定部１３０は、上記のように生成された状態判定用学習データから、負とラベル付けられた顧客の個別データを抽出し、抽出したデータの集合を状態判定用予測データとする。
【０３１１】
次に、状態判定用分類器生成部１２９は、状態判定用学習データに基づいて状態判定用分類器を生成する（ステップＵ８）。ステップＵ８の動作は、ステップＶ３（図３２参照）で閾値推定用分類器を生成する動作と同様である。例えば、状態判定用分類器生成部１２９は、状態判定用学習データから重複を許して一部の顧客の個別データを取り出し、その個別データの集合を用いて決定木を生成することを繰り返して、複数の決定木を生成する。この複数の決定木を状態判定用分類器とすればよい。取り出した顧客の個別データから決定木を作成する処理は、既に説明した決定木作成動作と同様であり、説明を省略する。
【０３１２】
ステップＵ８の後、顧客状態判定部１３０は、状態判定用予測データに含まれている個々の個別データ毎に、状態判定用分類器を用いてスコアを計算する（ステップＵ９）。ステップＵ９の動作は、ステップＶ４（図３２参照）でスコアを計算する動作と同様である。本例では、状態判定用分類器は複数の決定木の組であり、顧客状態判定部１３０は、個々の決定木毎に、顧客の別データに対するラベルの判定を行い、正と判定された回数を、判定回数で除算することによって、スコアを計算する。すなわち、正という判定が得られた決定木の数を、状態判定用分類器をなす決定木の総数で除算した値をスコアとする。顧客状態判定部１３０は、状態判定用予測データ内の各個別データについて、同様にそれぞれスコアを計算する。
【０３１３】
次に、顧客状態判定部１３０は、ステップＵ６で求めた閾値と、ステップＵ９で顧客の個別データ毎に求めたスコアとを比較して、顧客の状態が予測対象状態（トライアル）に変化するかを予測する（ステップＵ１０）。顧客状態判定部１３０は、スコアが閾値以上である顧客については、時刻ｔ＋Δｔに予想対象状態に変化すると予測し、スコアが閾値未満である顧客については現状の状態（すなわち「潜在」）のままで、時刻ｔ＋Δｔにおいて状態が変化しないと予測する。
【０３１４】
また、利用開始情報付加部８９は、時刻ｔ＋Δｔにおいて状態が「トライアル」に変化すると判定した顧客の利用開始情報を更新してもよい。すなわち、「潜在」であった顧客の利用開始情報は「未利用」となっているが、時刻ｔ＋Δｔに「トライアル」に変化すると予測された場合、その利用開始情報を、商品またはサービスの利用開始時期「ｔ＋Δｔ」に更新してもよい。予測部１１１は、顧客ＤＢ５に記憶された顧客の個別データにおける利用開始情報を更新した後、ｔ＋Δｔを新たな設定時刻とし、その設定時刻に関してステップＵ６〜Ｕ１０を、同様に行ってもよい。この動作を繰り返すことで、「潜在」状態の顧客が「トライアル」に変化するかをΔｔ刻みで予測することができる。
【０３１５】
ここでは、「潜在」から次の段階（トライアル）に変化するか否かを予測する場合を例にして説明したが、「トライアル」から次の段階（反復）に変化するか否か、および、「反復」から次の段階（離反）に変化するか否かについても、同様の処理で予測してもよい。また、顧客状態判定部１３０は、予測の結果、「潜在」と予測された個別データの数、「トライアル」と予測された個別データの数、「反復」と予測された個別データの数、「離反」と予測された個別データの数をカウントし、各顧客状態に該当する顧客の予測数をそれぞれ求めてもよい。この点は、第４の実施形態と同様である。
【０３１６】
また、第５の実施形態における予測部６１（図２５）として、第６の実施形態における予測部１１１を用いてもよい。
【０３１７】
第６の実施形態によれば、予測部１１１が、予測対象状態より前の段階の状態に該当する顧客が予測対象状態に変化するか否かを予測する。よって、第４の実施形態と同様に、ターゲットに対して、個別顧客の売上データのない将来の顧客状態を予測することができる。また、顧客状態毎の将来の顧客数を予測することができ、その結果、時間の経過とともに変化する将来の需要を予測することができる。また、売上データ等があれば、将来の顧客数予想を行うことができるので、顧客状態推定システムのユーザは、専門的な知見がなくても将来の需要予測結果を得ることができる。
【０３１８】
また、顧客状態の変化に、１週間や１日などの周期変動がある場合にも、式（７）に例示するように、周期変動を含む関数を定めることで、周期変動を考慮して顧客状態を予測することができる。
【０３１９】
次に、本発明の概要について説明する。図３３は、本発明の概要を示すブロック図である。本発明の顧客状態推定システムは、売上データ記憶手段１００と、データ毎状態推定手段１０１と、分類器生成手段１０２と、初期顧客状態推定手段１０３と、ラベル予測手段１０４と、顧客状態推定手段１０５とを備える。
【０３２０】
売上データ記憶手段１００（例えば、売上ＤＢ１）は、商品またはサービスの販売時における販売条件（例えば、販売年、月、日など）と、商品またはサービスの販売数または販売の有無を示す販売数情報と、商品またはサービスを購入した顧客を示す顧客識別情報（例えば、顧客ＩＤ）とを対応づけた売上データを記憶する。
【０３２１】
データ毎状態推定手段１０１（例えば、データ毎状態推定手段１０１）は、個々の売上データをそれぞれ選択し、最初の売上に対応する売上データから選択した売上データまでにおける、商品またはサービスのうち顧客状態推定対象とする商品またはサービスであるターゲットの購入回数と、最後の売上に対応する売上データから選択した売上データまでにおけるターゲットの購入回数とに基づいて、選択した売上データが示す販売時点でのターゲットに対する顧客状態を、反復、離反を含む複数の顧客状態の種類の中から推定する。
【０３２２】
分類器生成手段１０２（例えば、分類器生成部２２）は、各売上データから、販売条件とターゲットが販売されたことを示す販売ラベルまたはターゲットが販売されなかったことを示す非販売ラベルとを対応づけた学習用データを生成し、学習用データに基づいて、販売条件に対するラベルが販売ラベルか非販売ラベルかを判定するルールである分類器を生成する。
【０３２３】
初期顧客状態推定手段１０３（例えば、初期顧客状態推定部２３）は、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段１０１が判定した顧客状態が反復または離反である場合、その最後の売上データが示す顧客の顧客状態を未定とし、顧客状態推定対象期間における最後の売上データからデータ毎状態推定手段１０１が判定した顧客状態が反復または離反以外である場合、その最後の売上データが示す顧客の顧客状態を、データ毎状態推定手段１０１が推定した顧客状態とする。
【０３２４】
ラベル予測手段１０４（例えば、データクラス予測部２４）は、売上データのうち、初期顧客状態推定手段１０３に顧客状態が未定とされた顧客の顧客状態推定対象期間における売上データから、販売条件と販売ラベルまたは非販売ラベルとを対応づけた予測用データを生成し、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測する。
【０３２５】
顧客状態推定手段１０５（例えば、顧客状態推定部２５）は、予測用データにおける販売ラベル数および非販売ラベル数と、予測用データに含まれる個々の売上毎の販売条件から分類器を用いてラベルを予測した結果における販売ラベル数および非販売ラベル数とから、初期顧客状態推定手段１０３に顧客状態が未定とされた顧客の顧客状態を推定する。
【０３２６】
以上のような構成により、顧客が商品やサービスを購入した実績に基づいて、ターゲットについて、顧客毎に所定期間における顧客状況を推定することができる。
【０３２７】
また、上記の実施形態には、複数の顧客状態推定対象期間を指定する期間指定手段（例えば、制御部３１）を備え、初期顧客状態推定手段１０３が、指定された顧客状態推定対象期間毎に顧客状態を推定し、ラベル予測手段１０４が、指定された顧客状態推定対象期間毎に予測用データを作成して、予測用データに含まれる個々の売上毎の販売条件から、分類器を用いてラベルを予測し、顧客状態推定手段１０５が、指定された顧客状態推定対象期間毎に、初期顧客状態推定手段に顧客状態が未定とされた顧客の顧客状態を推定する構成が開示されている。
【０３２８】
そのような構成によれば、個別の顧客の顧客状態の時系列変化を推定することができる。
【０３２９】
また、上記の実施形態には、少なくとも一の顧客状態についてその顧客状態に該当する顧客の数を顧客状態推定対象期間毎にカウントし、その顧客状態に該当する顧客数の推移に応じて、各顧客状態推定対象期間における顧客数を補正する補正手段（例えば、補正部４１）を備える構成が開示されている。
【０３３０】
そのような構成によれば、その顧客状態に該当する顧客数をより正確に推定することができる。
【０３３１】
また、上記の実施形態には、顧客の属性を表わす１つ以上の項目を顧客毎に記憶する顧客データ記憶手段（例えば、顧客ＤＢ５）と、各顧客の顧客状態と、顧客データ記憶手段に記憶された各顧客毎の属性とを参照して、より前の顧客状態から変化するか否かを予測する対象となる予測対象状態に関して、当該予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測する予測手段（例えば、予測部６１）を備える構成が開示されている。そのような構成によれば、将来の顧客状況を予測することができる。
【０３３２】
また、上記の実施形態には、予測手段（例えば、予測部６１が備えるテストデータラベル判定部９４）が、予測対象状態より前の顧客状態に該当する顧客が当該予測対象状態に変化するか否かを予測した場合に、予測結果となる各顧客状態毎に、該当する顧客数をカウントする構成が開示されている。そのような構成によれば、ターゲットの需要を予測することができる。
【０３３３】
また、上記の実施形態には、販売促進活動の内容を示すデータである販促データを記憶する販促データ記憶手段（例えば、販促ＤＢ７）と、販促データが与えられたときに、顧客状態推定手段１０５によって推定された販売促進活動の期間における顧客状態（例えば、図２６に示す「販促時点」の顧客状態）を販促データに対応づけて販促データ記憶手段に記憶させる（例えば、ステップＩ３の動作を行う）販促データ登録手段（例えば、販促効果推定部７１）と、顧客状態を予測すべき販売促進活動期間における販促データが与えられたときに、与えられたその販促データに最も類似する販促データを販促データ記憶手段から特定し、その販促データに対応づけられた顧客状態を、予測すべき販売促進活動期間における顧客状態であると予測する販促期間顧客状態予測手段（販促状態変化予測部７２）とを備える構成が開示されている。そのような構成によれば、販売促進活動を行う場合に、その販売促進活動時点の顧客状態を予測することができる。
【０３３４】
また、上記の実施形態には、予測手段が、顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す１つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加手段（例えば、利用開始情報付加部８９）と、顧客が予測対象状態に変化するか否かの判定対象時刻を定める時刻として用いられるとともに、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻としても用いられる現時刻と、現時刻の一定時間前を指定するための時間間隔と、影響度の候補である複数の仮影響度とが入力され、現時刻から時間間隔前の時刻である前時刻を計算し、現時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付けた現時刻データを生成する現時刻データ生成手段（例えば、現時刻データ生成部８１）と、個々の仮影響度毎に、前時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた顧客の個別データ数を仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成手段（例えば、前時刻データ群生成部８２）と、個々の前時刻データ毎に、顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである前時刻分類器を前時刻に基づいて生成する前時刻分類器群生成手段（例えば、前時刻分類器群生成部８３）と、前時刻データ毎に生成された個々の前時刻分類器毎に、当該前時刻分類器と現時刻データ内の各顧客の個別データの項目とから現時刻データ内の顧客の個別データにラベル付けられるラベルを予測し、予測結果と現時刻データとの誤差を算出する誤差群算出手段（例えば、誤差群算出部８４）と、個々の前時刻分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が１つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、複数の仮影響度に基づいて影響度を定める影響度算出手段（例えば、影響度算出部８５）と、現時刻で予測対象状態に変化していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成手段（例えば、テストデータ生成部９１）と、現時刻で予測対象状態に変化済みである顧客の個別データに第１ラベルをラベル付け、予測対象状態に変化していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた顧客の個別データ数を影響度に応じて変動させたデータである学習データを生成する学習データ生成手段（例えば、学習データ生成部９２）と、顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである予測用分類器を生成する予測用分類器生成手段（例えば、予測用分類器生成部９３）と、予測用分類器と、テストデータ内の各顧客の個別データの項目とから、テストデータ内の個別データに対するラベルを判定するテストデータラベル判定手段（例えば、テストデータラベル判定部９４）とを有する構成が開示されている。
【０３３５】
また、上記の実施形態には、予測手段が、顧客が予測対象状態に変化済みである場合には予測対象状態に変化した時刻を表し、顧客が予測対象状態に変化していない場合には予測対象状態に変化していないことを表す利用開始情報を、顧客の属性を表す１つ以上の項目を含む顧客の個別情報に付加する利用開始情報付加手段（例えば、利用開始情報付加部８９）と、予測対象状態に変化済みの顧客の割合である普及率を期間毎に計算する普及率計算手段（例えば、普及率計算部１２１）と、顧客が予測対象状態より前の状態から予測対象状態に変化するか否かを判定するための状態判定用分類器であって、予測対象状態に変化する確からしさであるスコアを導出可能な状態判定用分類器を、各顧客の属性と利用開始情報とから生成する状態判定用分類器生成手段（例えば、状態判定用分類器生成部１２９）と、状態判定用分類器により導出されるスコアと比較される閾値の最適値を、期間毎に計算する閾値計算手段（例えば、閾値計算部１４０）と、期間毎の普及率および期間毎の閾値の最適値とから、普及率を変数とする閾値の関数を求める関数計算手段（例えば、閾値関数計算部１２６）と、指定された時刻における普及率を関数に代入することにより、指定された時刻における閾値を特定する閾値特定手段（例えば、閾値確定部１２７）と、指定された時刻で予測対象状態より前の状態の顧客の属性と、状態判定用分類器とからスコアを導出し、当該スコアが、閾値特定手段によって特定された閾値以上であれば、顧客が予測対象状態に変化すると判定する顧客状態判定手段（例えば、顧客状態判定部１３０）とを有する構成が開示されている。
【産業上の利用可能性】
【０３３６】
本発明は、商品またはサービスの購入に関する顧客の状態を推定する顧客状態推定システムや、商品またはサービスの需要を予測する需要予測システムに好適に適用される。
【符号の説明】
【０３３７】
１  売上ＤＢ
２，３，４，６，８  顧客状態推定装置
５  顧客ＤＢ
７  販促ＤＢ
２１  データ状態推定部
２２  分類器生成部
２３  初期顧客状態推定部
２４  データクラス予測部
２５  顧客状態推定部
３１  制御部
４１  補正部
６１，１１１  予測部
７１  販促効果推定部
７２  販促状態変化予測部
１００  売上データ記憶手段
１０１  データ毎状態推定手段
１０２  分類器生成手段
１０３  初期顧客状態推定手段
１０４  ラベル予測手段
１０５  顧客状態推定手段
【図１】
2010073189.tif 000006
【図２】
2010073189.tif 000007
【図３】
2010073189.tif 000008
【図４】
2010073189.tif 000009
【図５】
2010073189.tif 000010
【図６】
2010073189.tif 000011
【図７】
2010073189.tif 000012
【図８】
2010073189.tif 000013
【図９】
2010073189.tif 000014
【図１０】
2010073189.tif 000015
【図１１】
2010073189.tif 000016
【図１２】
2010073189.tif 000017
【図１３】
2010073189.tif 000018
【図１４】
2010073189.tif 000019
【図１５】
2010073189.tif 000020
【図１６】
2010073189.tif 000021
【図１７】
2010073189.tif 000022
【図１８】
2010073189.tif 000023
【図１９】
2010073189.tif 000024
【図２０】
2010073189.tif 000025
【図２１】
2010073189.tif 000026
【図２２】
2010073189.tif 000027
【図２３】
2010073189.tif 000028
【図２４】
2010073189.tif 000029
【図２５】
2010073189.tif 000030
【図２６】
2010073189.tif 000031
【図２７】
2010073189.tif 000032
【図２８】
2010073189.tif 000033
【図２９】
2010073189.tif 000034
【図３０】
2010073189.tif 000035
【図３１】
2010073189.tif 000036
【図３２】
2010073189.tif 000037
【図３３】
2010073189.tif 000038