(57)【特許請求の範囲】
【請求項１】
顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースと、
前記顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成部と、
前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度に応じて変動させたデータである学習データを生成する学習データ生成部と、
前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を、前記学習データに基づいて生成する分類器生成部と、
前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに対するラベルを判定するテストデータラベル判定部とを備える
ことを特徴とする普及予測システム。
【請求項２】
前記現時刻を一定の時間分増加した時刻を新たな現時刻とする現時刻更新部を備え、
テストデータラベル判定部は、第１ラベルがラベル付けられると判定した個別データに対して、利用開始時期を示す情報を付与し、
テストデータ生成部は、現時刻が更新された際に、更新後の現時刻におけるテストデータを生成し、
学習データ生成部は、現時刻が更新された際に、更新後の現時刻における学習データを生成し、
分類器生成部は、現時刻が更新されて新たに学習データが生成された際に、当該学習データに基づいて新たに分類器を生成し、
テストデータラベル判定部は、現時刻が更新されて新たにテストデータが生成された際に、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに対するラベルを判定する
請求項１に記載の普及予測システム。
【請求項３】
テストデータ生成部は、顧客データベースに記憶されている顧客データから、現時刻で商品またはサービスの利用を開始している顧客の個別データを除外したテストデータを生成する
請求項１または請求項２に記載の普及予測システム。
【請求項４】
学習データ生成部は、商品またはサービスの利用を開始した顧客数と未だ開始していない顧客数との比率を影響度の係数とする関数の関数値倍に、第１ラベルをラベル付けた個別データ数を増加させて学習データを生成する
請求項１から請求項３のうちのいずれか１項に記載の普及予測システム。
【請求項５】
学習データ生成部は、商品またはサービスの利用を開始した顧客数と全顧客数との比率を影響度の係数とする関数の関数値倍に、第１ラベルをラベル付けた個別データ数を増加させて学習データを生成する
請求項１から請求項３のうちのいずれか１項に記載の普及予測システム。
【請求項６】
分類器生成部は、学習データ内で第１ラベルをラベル付けられた個別データの割合が高くなるほど、テストデータ内で第２ラベルをラベル付けられている個別データのうち、前記第１ラベルをラベル付けられた個別データの項目値と類似する項目値を持つ個別データに対して、第１ラベルをラベル付けると判定する頻度が高くなる分類器を生成する
請求項１から請求項５のうちのいずれか１項に記載の普及予測システム。
【請求項７】
学習データ生成部は、当該普及予測システムの外部から入力された影響度を用いて学習データを生成する
請求項１から請求項６のうちのいずれか１項に記載の普及予測システム。
【請求項８】
判定対象時刻を定めるとともに影響度の推定対象時刻としても用いられる現時刻と、前記現時刻の一定時間前を指定するための時刻間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時刻間隔前の時刻である前時刻を計算し、顧客データベースを用いて、前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けた現時刻データを生成する現時刻データ生成部と、
個々の仮影響度毎に、前時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成部と、
個々の前時刻データ毎に、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を前記前時刻に基づいて生成する前時刻分類器群生成部と、
前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記現時刻データ内の各個別データの項目とから前記現時刻データ内の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出する誤差群算出部と、
個々の分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が１つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める影響度算出部とを備える
請求項１から請求項６のうちのいずれか１項に記載の普及予測システム。
【請求項９】
現時刻データ生成部は、顧客データベースに記憶されている顧客データのうち、前時刻で商品またはサービスの利用を開始していた顧客の個別データを除外した個別データの集合から現時刻データを生成する
請求項８に記載の普及予測システム。
【請求項１０】
前時刻データ群生成部は、前時刻で商品またはサービスの利用を開始している顧客数と前時刻で未だ開始していない顧客数との比率を仮影響度の係数とする関数の関数値倍に、第１ラベルをラベル付けた個別データ数を増加させて前時刻データを生成する
請求項８または請求項９に記載の普及予測システム。
【請求項１１】
前時刻データ群生成部は、前時刻で商品またはサービスの利用を開始している顧客数と全顧客数との比率を仮影響度の係数とする関数の関数値倍に、第１ラベルをラベル付けた個別データ数を増加させて前時刻データを生成する
請求項８または請求項９に記載の普及予測システム。
【請求項１２】
誤差群算出部は、前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記現時刻データ内の各個別データの項目とから前記現時刻データ内の個別データにラベル付けられるラベルを予測し、予測したラベルと、現時刻データで実際にラベル付けられているラベルとが異なっている個別データの数を誤差として算出する
請求項８から請求項１１のうちのいずれか１項に記載の普及予測システム。
【請求項１３】
誤差群算出部は、前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記現時刻データ内の各個別データの項目とから前記現時刻データ内の個別データにラベル付けられるラベルを予測し、第１ラベルがラベル付けられると予測した個別データ数と、現時刻データで第１ラベルがラベル付けられている個別データ数との差の絶対値を誤差として算出する
請求項８から請求項１１のうちのいずれか１項に記載の普及予測システム。
【請求項１４】
顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースと、
ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻として用いられる現時刻と、前記現時刻の一定時間前を指定するための時刻間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時刻間隔前の時刻である前時刻を計算し、前記顧客データベースを用いて、前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けた現時刻データを生成する現時刻データ生成部と、
個々の仮影響度毎に、前時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成部と、
個々の前時刻データ毎に、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を前記前時刻に基づいて生成する前時刻分類器群生成部と、
前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記現時刻データ内の各個別データの項目とから前記現時刻データ内の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出する誤差群算出部と、
個々の分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が１つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める影響度算出部とを備える
ことを特徴とする影響度推定システム。
【請求項１５】
現時刻データ生成部は、顧客データベースに記憶されている顧客データのうち、前時刻で商品またはサービスの利用を開始していた顧客の個別データを除外した個別データの集合から現時刻データを生成する
請求項１４に記載の影響度推定システム。
【請求項１６】
前時刻データ群生成部は、前時刻で商品またはサービスの利用を開始している顧客数と前時刻で未だ開始していない顧客数との比率を仮影響度の係数とする関数の関数値倍に、第１ラベルをラベル付けた個別データ数を増加させて前時刻データを生成する
請求項１４または請求項１５に記載の影響度推定システム。
【請求項１７】
前時刻データ群生成部は、前時刻で商品またはサービスの利用を開始している顧客数と全顧客数との比率を仮影響度の係数とする関数の関数値倍に、第１ラベルをラベル付けた個別データ数を増加させて前時刻データを生成する
請求項１４または請求項１５に記載の影響度推定システム。
【請求項１８】
誤差群算出部は、前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記現時刻データ内の各個別データの項目とから前記現時刻データ内の個別データにラベル付けられるラベルを予測し、予測したラベルと、現時刻データで実際にラベル付けられているラベルとが異なっている個別データの数を誤差として算出する
請求項１４から請求項１７のうちのいずれか１項に記載の影響度推定システム。
【請求項１９】
誤差群算出部は、前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記現時刻データ内の各個別データの項目とから前記現時刻データ内の個別データにラベル付けられるラベルを予測し、第１ラベルがラベル付けられると予測した個別データ数と、現時刻データで第１ラベルがラベル付けられている個別データ数との差の絶対値を誤差として算出する
請求項１４から請求項１７のうちのいずれか１項に記載の影響度推定システム。
【請求項２０】
顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースと、
前記顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成部と、
前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けたラベル付けデータを生成し、前記ラベル付けデータ中の第１ラベルでラベル付けられた個別データ数の割合を前記商品またはサービスの普及率として計算するラベル付けデータ生成部と、
前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルがラベル付けられる確からしさのスコアを定めるルールである分類器を、前記ラベル付けデータに基づいて生成する分類器生成部と、
普及率に対するスコアの閾値の関数である閾値関数にラベル付けデータ生成部が計算した普及率を代入して閾値を算出し、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに第１ラベルがラベル付けられる確からしさのスコアを定め、前記テストデータ内の個別データのうちスコアが前記閾値以上である個別データに対するラベルが第１ラベルであると判定し、スコアが前記閾値未満の個別データに対するラベルが第２ラベルであると判定するテストデータラベル判定部とを備える
ことを特徴とする普及予測システム。
【請求項２１】
前記現時刻を一定の時間分増加した時刻を新たな現時刻とする現時刻更新部を備え、
テストデータラベル判定部は、第１ラベルがラベル付けられると判定した個別データに対して、利用開始時期を示す情報を付与し、
テストデータ生成部は、現時刻が更新された際に、更新後の現時刻におけるテストデータを生成し、
ラベル付けデータ生成部は、現時刻が更新された際に、更新後の現時刻におけるラベル付けデータを生成し、当該ラベル付けデータにおける普及率を計算し、
分類器生成部は、現時刻が更新されて新たにラベル付けデータが生成された際に、当該ラベル付けデータに基づいて新たに分類器を生成し、
テストデータラベル判定部は、現時刻が更新されて新たにテストデータが生成された際に、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに第１ラベルがラベル付けられる確からしさのスコアを定め、閾値関数にラベル付けデータ生成部が計算した普及率を代入して新たに閾値を算出し、前記テストデータ内の個別データのうちスコアが前記閾値以上である個別データに対するラベルが第１ラベルであると判定し、スコアが前記閾値未満の個別データに対するラベルが第２ラベルであると判定する
請求項２０に記載の普及予測システム。
【請求項２２】
テストデータ生成部は、顧客データベースに記憶されている顧客データから、現時刻で商品またはサービスの利用を開始している顧客の個別データを除外したテストデータを生成する
請求項２０または請求項２１に記載の普及予測システム。
【請求項２３】
閾値の推定対象時刻を定めるための複数の基準時刻と、各基準時刻の一定時間前を指定するための時刻間隔と、閾値の候補である複数の仮閾値とが入力され、前記基準時刻毎に、基準時刻から前記時刻間隔前の時刻である閾値推定前時刻を計算し、顧客データベースを用いて、前記基準時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けた基準時刻データを生成する基準時刻データ群生成部と、
個々の閾値推定前時刻毎に、閾値推定前時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けたデータである閾値推定前時刻データを生成し、前記閾値推定前時刻データ中の第１ラベルでラベル付けられた個別データ数の割合を前記商品またはサービスの普及率として計算する閾値推定前時刻データ群生成部と、
個々の閾値推定前時刻データ毎に、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルがラベル付けられる確からしさのスコアを定めるルールである分類器を、閾値推定前時刻データに基づいて生成する閾値推定前時刻分類器群生成部と、
閾値推定前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記基準時刻データ内の各個別データの項目とから、前記基準時刻データ内の各個別データに第１ラベルがラベル付けられる確からしさのスコアを定め、個々の仮閾値について、スコアが仮閾値以上である個別データのラベルが第１ラベルであると予測し、スコアが閾値未満の個別データのラベルが第２ラベルであると予測し、予測結果と基準時刻データとの誤差を算出する誤差群算出部と、
個々の分類器毎に各仮閾値について算出された誤差のうちの最小の誤差を特定し、最小の誤差に対応する仮閾値が１つである場合には、当該仮閾値を分類器に対応する閾値推定前時刻での閾値とし、最小の誤差に対応する仮閾値が複数個存在する場合には前記複数の仮閾値に基づいて分類器に対応する閾値推定前時刻での閾値を定め、各閾値推定前時刻に対応する閾値および普及率から閾値関数を推定する関数推定部とを備える
請求項２０から請求項２２のうちのいずれか１項に記載の普及予測システム。
【請求項２４】
テストデータラベル判定部は、当該普及予測システムの外部から入力された閾値関数を用いて閾値を算出する
請求項２０から請求項２２のうちのいずれか１項に記載の普及予測システム。
【請求項２５】
顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成し、
前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度に応じて変動させたデータである学習データを生成し、
前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を、前記学習データに基づいて生成し、
前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに対するラベルを判定する
ことを特徴とする普及予測方法。
【請求項２６】
第１ラベルがラベル付けられると判定した個別データに対して、利用開始時期を示す情報を付与し、
前記現時刻を一定の時間分増加した時刻を新たな現時刻に更新し、
現時刻を更新した際に、更新後の現時刻におけるテストデータを生成し、
現時刻を更新した際に、更新後の現時刻における学習データを生成し、
現時刻を更新して新たに学習データを生成した際に、当該学習データに基づいて新たに分類器を生成し、
現時刻を更新して新たにテストデータを生成した際に、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに対するラベルを判定する
請求項２５に記載の普及予測方法。
【請求項２７】
顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成し、
前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けたラベル付けデータを生成し、前記ラベル付けデータ中の第１ラベルでラベル付けられた個別データ数の割合を前記商品またはサービスの普及率として計算し、
前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルがラベル付けられる確からしさのスコアを定めるルールである分類器を、前記ラベル付けデータに基づいて生成し、
普及率に対するスコアの閾値の関数である閾値関数に計算した普及率を代入して閾値を算出し、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに第１ラベルがラベル付けられる確からしさのスコアを定め、前記テストデータ内の個別データのうちスコアが前記閾値以上である個別データに対するラベルが第１ラベルであると判定し、スコアが前記閾値未満の個別データに対するラベルが第２ラベルであると判定する
ことを特徴とする普及予測方法。
【請求項２８】
第１ラベルがラベル付けられると判定した個別データに対して、利用開始時期を示す情報を付与し、
前記現時刻を一定の時間分増加した時刻を新たな現時刻に更新し、
現時刻を更新した際に、更新後の現時刻におけるテストデータを生成し、
現時刻を更新した際に、更新後の現時刻におけるラベル付けデータを生成し、当該ラベル付けデータにおける普及率を計算し、
現時刻を更新して新たにラベル付けデータを生成した際に、当該ラベル付けデータに基づいて新たに分類器を生成し、
現時刻を更新して新たにテストデータを生成した際に、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに第１ラベルがラベル付けられる確からしさのスコアを定め、計算した普及率を代入して新たに閾値を算出し、前記テストデータ内の個別データのうちスコアが前記閾値以上である個別データに対するラベルが第１ラベルであると判定し、スコアが前記閾値未満の個別データに対するラベルが第２ラベルであると判定する
請求項２７に記載の普及予測方法。
【請求項２９】
顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースを備えるコンピュータに搭載される普及予測プログラムであって、
前記コンピュータに、
前記顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成処理、
前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度に応じて変動させたデータである学習データを生成する学習データ生成処理、
前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を、前記学習データに基づいて生成する分類器生成処理、および、
前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに対するラベルを判定するテストデータラベル判定処理
を実行させるための普及予測プログラム。
【請求項３０】
前記コンピュータに、
テストデータラベル判定処理で、第１ラベルがラベル付けられると判定した個別データに対して、利用開始時期を示す情報を付与させ、
前記現時刻を一定の時間分増加した時刻を新たな現時刻とする現時刻更新処理を実行させ、
現時刻を更新した際に、テストデータ生成処理で、更新後の現時刻におけるテストデータを生成させ、
現時刻を更新した際に、学習データ生成処理で、更新後の現時刻における学習データを生成させ、
現時刻を更新して新たに学習データを生成した際に、分類器生成処理で、当該学習データに基づいて新たに分類器を生成させ、
現時刻を更新して新たにテストデータを生成した際に、テストデータラベル判定処理で、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに対するラベルを判定させる
請求項２９に記載の普及予測プログラム。
【請求項３１】
顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースを備えるコンピュータに搭載される普及予測プログラムであって、
前記コンピュータに、
前記顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成処理、
前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けたラベル付けデータを生成し、前記ラベル付けデータ中の第１ラベルでラベル付けられた個別データ数の割合を前記商品またはサービスの普及率として計算するラベル付けデータ生成処理、
前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルがラベル付けられる確からしさのスコアを定めるルールである分類器を、前記ラベル付けデータに基づいて生成する分類器生成処理、
普及率に対するスコアの閾値の関数である閾値関数にラベル付けデータ生成処理で計算した普及率を代入して閾値を算出し、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに第１ラベルがラベル付けられる確からしさのスコアを定め、前記テストデータ内の個別データのうちスコアが前記閾値以上である個別データに対するラベルが第１ラベルであると判定し、スコアが前記閾値未満の個別データに対するラベルが第２ラベルであると判定するテストデータラベル判定処理
を実行させるための普及予測プログラム。
【請求項３２】
前記コンピュータに、
テストデータラベル判定処理で、第１ラベルがラベル付けられると判定した個別データに対して、利用開始時期を示す情報を付与させ、
前記現時刻を一定の時間分増加した時刻を新たな現時刻とする現時刻更新処理を実行させ、
現時刻を更新した際に、テストデータ生成処理で、更新後の現時刻におけるテストデータを生成させ、
現時刻を更新した際に、ラベル付けデータ生成処理で、更新後の現時刻におけるラベル付けデータを生成させ、当該ラベル付けデータにおける普及率を計算させ、
現時刻を更新して新たにラベル付けデータを生成した際に、分類器生成処理で、当該ラベル付けデータに基づいて新たに分類器を生成させ、
現時刻を更新して新たにテストデータを生成した際に、テストデータラベル判定処理で、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに第１ラベルがラベル付けられる確からしさのスコアを定めさせ、閾値関数にラベル付けデータ生成処理で計算した普及率を代入して新たに閾値を算出させ、前記テストデータ内の個別データのうちスコアが前記閾値以上である個別データに対するラベルが第１ラベルであると判定し、スコアが前記閾値未満の個別データに対するラベルが第２ラベルであると判定させる
請求項３１に記載の普及予測プログラム。
【請求項３３】
ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻として用いられる現時刻と、前記現時刻の一定時間前を指定するための時刻間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時刻間隔前の時刻である前時刻を計算し、
顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースを用いて、前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けた現時刻データを生成し、
個々の仮影響度毎に、前時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成し、
個々の前時刻データ毎に、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を前記前時刻に基づいて生成し、
前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記現時刻データ内の各個別データの項目とから前記現時刻データ内の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出し、
個々の分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が１つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める
ことを特徴とする影響度推定方法。
【請求項３４】
顧客データベースに記憶されている顧客データのうち、前時刻で商品またはサービスの利用を開始していた顧客の個別データを除外した個別データの集合から現時刻データを生成する
請求項３３に記載の影響度推定方法。
【請求項３５】
顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データ記憶する顧客データベースを備えるコンピュータに搭載される影響度推定プログラムであって、
影響度推定対象時刻として用いられる現時刻と、前記現時刻の一定時間前を指定するための時刻間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時刻間隔前の時刻である前時刻を計算し、前記顧客データベースを用いて、前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けた現時刻データを生成する現時刻データ生成処理、
個々の仮影響度毎に、前時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成処理、
個々の前時刻データ毎に、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を前記前時刻に基づいて生成する前時刻分類器群生成処理、
前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記現時刻データ内の各個別データの項目とから前記現時刻データ内の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出する誤差群算出処理、および、
個々の分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が１つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める影響度算出処理
を実行させるための影響度推定プログラム。
【請求項３６】
前記コンピュータに、
現時刻データ生成処理で、顧客データベースに記憶されている顧客データのうち、前時刻で商品またはサービスの利用を開始していた顧客の個別データを除外した個別データの集合から現時刻データを生成させる
請求項３５に記載の影響度推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、商品またはサービスの普及に関する予測を行う普及予測システム、普及予測方法および普及予測プログラムと、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いを推定する影響度推定システム、影響度推定方法および影響度推定プログラムに関する。
【背景技術】
【０００２】
顧客に商品またはサービスを提供する場合、商品またはサービスの費用対効果や資源を調達すべき時期や量を推定するため、普及の推移を予測することが必要である。ここで、商品とは、製品などの完成品のみならず、製品の機能を維持するための最小単位も含む。商品やサービスの普及の推移は、時間に対する普及率（または販売数）で示すことができる。
【０００３】
このような普及予測に適用可能な予測装置の一例が、特許文献１に記載されている。特許文献１に記載された予測装置は、入力部と、事象内容記憶部と、累積件数集計部と、予測条件記憶部と、回帰分析部と、分布推定部と、出力部とを備えている。入力部は、注目する現象で予測対象となる事象が発生した期日やその発生件数などの過去の履歴、およびその予測対象となる事象において予測すべき事象の上限や下限などの値の範囲や予測時点などに代表される予測条件を入力する入力手段である。回帰分析部は、ロジスティック曲線モデル（あるいは別の曲線モデル）を用いて、実績となる普及の推移に当てはまるように注目する現象を記述するパラメタを推定するとともに、推定したパラメタに基づいて、普及の推移である予測曲線を得る。
【０００４】
また、特許文献２には、決定木学習用データを生成する時系列データ分類・予測装置が記載されている。特許文献２に記載の時系列データ分類・予測装置は、複数の時刻の情報を含む決定木学習用データを生成する。
【０００５】
また、特許文献３には、顧客属性データをマスタ・データとする分析装置が記載されている。
【０００６】
【特許文献１】特開２００４−７８７８０号公報
【特許文献２】特開平６−９６０５２号公報
【特許文献３】特開２００１−２２９１５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
顧客が商品やサービスを利用し始める時期は、顧客の特徴によって異なる。例えば、顧客は、イノベータ、アーリーアダプタ、アーリーマジョリティ等のカテゴリに分類することができる。
【０００８】
上記のように、顧客が商品やサービスを利用し始める時期は顧客の特徴によって異なるので、個々の顧客毎に商品やサービスの利用開始時期を予測しようとしても、ロジスティック曲線等の曲線モデルを用いてパラメータフィッティングを行う予測手法では、個々の顧客の特徴が反映されず、顧客毎の商品やサービスの利用開始時期を予測することはできなかった。
【０００９】
また、商品やサービスの提供者にとって、既に商品やサービスを利用している者が他の者に商品やサービスの利用を喚起させる度合いを知ることは好ましい。例えば、広告活動や販売促進活動などにより、いわゆる口コミが活発化し、既に商品やサービスの利用を開始している者からの影響によりどの程度、未利用者の利用開始意欲が喚起されたかを知ることができることが好ましい。ここで、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いを影響度と呼ぶ。影響度は、ある期間において、商品やサービスを利用していなかった者が既に利用を開始した者からの影響でその商品を受け入れる受容性の程度と言うこともできる。
【００１０】
そこで、本発明は、顧客が商品やサービスを利用し始める時期を顧客毎に予測することができる普及予測システム、普及予測方法および普及予測プログラムを提供することを目的とする。また、本発明は、時期に応じて商品やサービスの影響度を推定することができる影響度推定システム、影響度推定方法および影響度推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の普及予測システムは、顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースと、前記顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成部と、前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度に応じて変動させたデータである学習データを生成する学習データ生成部と、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を、前記学習データに基づいて生成する分類器生成部と、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに対するラベルを判定するテストデータラベル判定部とを備えることを特徴とする。
【００１２】
また、本発明の影響度推定システムは、顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースと、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻として用いられる現時刻と、前記現時刻の一定時間前を指定するための時刻間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時刻間隔前の時刻である前時刻を計算し、前記顧客データベースを用いて、前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けた現時刻データを生成する現時刻データ生成部と、個々の仮影響度毎に、前時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成部と、個々の前時刻データ毎に、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を前記前時刻に基づいて生成する前時刻分類器群生成部と、前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記現時刻データ内の各個別データの項目とから前記現時刻データ内の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出する誤差群算出部と、個々の分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が１つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める影響度算出部とを備えることを特徴とする。
【００１３】
また、本発明の普及予測システムは、顧客が商品またはサービスを利用し始めている場合には商品またはサービスの利用開始時期を表し、商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースと、顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成部と、現時刻で商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けたラベル付けデータを生成し、ラベル付けデータ中の第１ラベルでラベル付けられた個別データ数の割合を商品またはサービスの普及率として計算するラベル付けデータ生成部と、顧客の属性を表す項目から顧客の個別データに第１ラベルがラベル付けられる確からしさのスコアを定めるルールである分類器を、ラベル付けデータに基づいて生成する分類器生成部と、普及率に対するスコアの閾値の関数である閾値関数にラベル付けデータ生成部が計算した普及率を代入して閾値を算出し、分類器とテストデータ内の各個別データの項目とから、テストデータ内の各個別データに第１ラベルがラベル付けられる確からしさのスコアを定め、テストデータ内の個別データのうちスコアが閾値以上である個別データに対するラベルが第１ラベルであると判定し、スコアが閾値未満の個別データに対するラベルが第２ラベルであると判定するテストデータラベル判定部とを備えることを特徴とする。
【００１４】
また、本発明の普及予測方法は、顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成し、前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度に応じて変動させたデータである学習データを生成し、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を、前記学習データに基づいて生成し、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに対するラベルを判定することを特徴とする。
【００１５】
また、本発明の普及予測方法は、顧客が商品またはサービスを利用し始めている場合には商品またはサービスの利用開始時期を表し、商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成し、現時刻で商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けたラベル付けデータを生成し、ラベル付けデータ中の第１ラベルでラベル付けられた個別データ数の割合を商品またはサービスの普及率として計算し、顧客の属性を表す項目から顧客の個別データに第１ラベルがラベル付けられる確からしさのスコアを定めるルールである分類器を、ラベル付けデータに基づいて生成し、普及率に対するスコアの閾値の関数である閾値関数に計算した普及率を代入して閾値を算出し、分類器とテストデータ内の各個別データの項目とから、テストデータ内の各個別データに第１ラベルがラベル付けられる確からしさのスコアを定め、テストデータ内の個別データのうちスコアが閾値以上である個別データに対するラベルが第１ラベルであると判定し、スコアが閾値未満の個別データに対するラベルが第２ラベルであると判定することを特徴とする。
【００１６】
また、本発明の普及予測プログラムは、顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースを備えるコンピュータに搭載される普及予測プログラムであって、前記コンピュータに、前記顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成処理、前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度に応じて変動させたデータである学習データを生成する学習データ生成処理、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を、前記学習データに基づいて生成する分類器生成処理、および、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに対するラベルを判定するテストデータラベル判定処理を実行させることを特徴とする。
【００１７】
また、本発明の普及予測プログラムは、顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースを備えるコンピュータに搭載される普及予測プログラムであって、前記コンピュータに、前記顧客データベースを用いて、判定対象時刻を定める現時刻で商品またはサービスの利用を開始していない顧客の個別データを含むデータであるテストデータを生成するテストデータ生成処理、前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けたラベル付けデータを生成し、前記ラベル付けデータ中の第１ラベルでラベル付けられた個別データ数の割合を前記商品またはサービスの普及率として計算するラベル付けデータ生成処理、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルがラベル付けられる確からしさのスコアを定めるルールである分類器を、前記ラベル付けデータに基づいて生成する分類器生成処理、普及率に対するスコアの閾値の関数である閾値関数にラベル付けデータ生成処理で計算した普及率を代入して閾値を算出し、前記分類器と前記テストデータ内の各個別データの項目とから、前記テストデータ内の各個別データに第１ラベルがラベル付けられる確からしさのスコアを定め、前記テストデータ内の個別データのうちスコアが前記閾値以上である個別データに対するラベルが第１ラベルであると判定し、スコアが前記閾値未満の個別データに対するラベルが第２ラベルであると判定するテストデータラベル判定処理を実行させることを特徴とする。
【００１８】
また、本発明の影響度推定方法は、ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合いである影響度の推定対象時刻として用いられる現時刻と、前記現時刻の一定時間前を指定するための時刻間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時刻間隔前の時刻である前時刻を計算し、顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データを記憶する顧客データベースを用いて、前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けた現時刻データを生成し、個々の仮影響度毎に、前時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成し、個々の前時刻データ毎に、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を前記前時刻に基づいて生成し、前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記現時刻データ内の各個別データの項目とから前記現時刻データ内の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出し、個々の分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が１つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定めることを特徴とする。
【００１９】
また、本発明の影響度推定プログラムは、顧客が商品またはサービスを利用し始めている場合には前記商品またはサービスの利用開始時期を表し、前記商品またはサービスを未利用の場合には未利用である旨を表す利用開始情報と、前記利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である顧客データ記憶する顧客データベースを備えるコンピュータに搭載される影響度推定プログラムであって、影響度推定対象時刻として用いられる現時刻と、前記現時刻の一定時間前を指定するための時刻間隔と、影響度の候補である複数の仮影響度とが入力され、前記現時刻から前記時刻間隔前の時刻である前時刻を計算し、前記顧客データベースを用いて、前記現時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けた現時刻データを生成する現時刻データ生成処理、個々の仮影響度毎に、前時刻で前記商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、前記商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、第１ラベルをラベル付けた個別データ数を前記仮影響度に応じて変動させたデータである前時刻データを生成する前時刻データ群生成処理、個々の前時刻データ毎に、前記顧客の属性を表す項目から当該顧客の個別データに第１ラベルと第２ラベルのいずれをラベル付けるかを判定するルールである分類器を前記前時刻に基づいて生成する前時刻分類器群生成処理、前時刻データ毎に生成された個々の分類器毎に、当該分類器と前記現時刻データ内の各個別データの項目とから前記現時刻データ内の個別データにラベル付けられるラベルを予測し、予測結果と前記現時刻データとの誤差を算出する誤差群算出処理、および、個々の分類器毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮影響度が１つである場合には、当該仮影響度を影響度として定め、最小の誤差に対応する仮影響度が複数個存在する場合には、前記複数の仮影響度に基づいて影響度を定める影響度算出処理を実行させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、顧客が商品やサービスを利用し始める時期を顧客毎に予測することができる。また、本発明によれば、時期に応じて商品やサービスの影響度を推定することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施形態を図面を参照して説明する。
【００２２】
なお、有料で商品やサービスを利用する者だけでなく、無料で商品やサービスを利用する者も顧客と呼ぶ。
【００２３】
また、以下に説明する影響度推定システムおよび普及予測システムは、一つの商品またはサービスに関して影響度推定や普及予測を行う。
【００２４】
実施形態１．
図１は、本発明の影響度推定システムの例を示すブロック図である。本発明の影響度推定システムは、影響度（ある期間の中で商品またはサービスの顧客が他の者にその商品またはサービスの利用を喚起させる度合い）を推定する影響度推定装置３と、顧客データベース（以下、顧客ＤＢと記す）２とを備える。製品などの完成品だけでなく、製品の機能を維持するための最小単位も商品の概念に含まれる。
【００２５】
顧客ＤＢ２は、顧客データを記憶する記憶手段であり、顧客データ記憶手段と呼ぶことができる。顧客データは、個々の顧客毎に定められたデータの集合であり、以下、個々の顧客毎のデータを個別データと呼ぶ。顧客ＤＢ２において、各顧客毎の個別データは、利用開始情報と、利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む。利用開始情報とは、顧客が商品またはサービスを利用し始めている場合には、その商品またはサービスを利用し始めた時期を表し、顧客が商品またはサービスを未利用である（すなわち、まだ利用開始していない）場合には未利用である旨を表す情報である。利用開始情報以外の顧客の属性を表す項目として、例えば、性別、年齢、住所の地域区分、勤務地の地域区分、他の商品の利用履歴、様々な嗜好性などの特徴を用いることができるが、これらに限定されるわけではない。個々の個別情報は、これらの項目を一つ以上含む。顧客の属性を表す項目は、例えば、店頭での店員による入力、商品を利用開始時点での登録、顧客会員カード、アンケートなど、様々な方法で収集することができる。
【００２６】
影響度推定装置３は、現時刻データ生成部３１と、前時刻データ群生成部３２と、前時刻分類器群生成部３３と、誤差群算出部３４と、影響度算出部３５とを備える。
【００２７】
現時刻データ群生成部３１は、現時刻と、その現時刻の一定時間前を指定するための時刻間隔と、複数の仮影響度とが入力される。後述するように、キーボード等の入力装置を介して、現時刻データ群生成部３１に、現時刻、時刻間隔、および複数の仮影響度が入力されてもよい。本実施形態における現時刻とは、影響度の推定対象時刻（影響度推定対象時刻）として用いられる時刻であり、時刻間隔は、影響度を推定しようとする期間である。そして、本実施形態では、過去のある時点を影響度推定対象時刻として、その時点から時刻間隔分遡った時刻からその影響度推定対象時刻までの期間における影響度を推定する。従って、過去のある時点での時刻が現時刻として入力される。現時刻から時刻間隔前の時刻（現時刻から時刻間隔分遡った時刻）を、前時刻と記す。現時刻データ群生成部３１は、現時刻から時刻間隔を減算して前時刻を計算する。
【００２８】
また、入力される仮影響度は、求めようとしている影響度の候補であり、影響度推定装置３は、複数の仮影響度から影響度を求める。仮影響度として現時刻データ群生成部３１に入力される数値は、０以上の数値である。例えば、影響度推定システムのユーザが、０以上から５０程度までの値の中から影響度の候補を複数選択し、仮影響度として入力する。候補として仮影響度を多く入力すれば、影響度の推定精度が高くなる。
【００２９】
また、現時刻データ群生成部３１は、現時刻と顧客ＤＢ２とに基づいて、１つの現時刻データを生成する。現時刻データは、現時刻で商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、現時刻で商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付けたデータである。第１ラベルは、商品またはサービスの利用を開始している状態を示す情報であり、第２ラベルは、商品またはサービスの利用を開始していない状態を示す情報である。以下、第１ラベルを正（または＋）と記し、第２ラベルを負（または−）と記す。現時刻データ群生成部３１は、顧客ＤＢ２を用いて（すなわち、顧客データＤＢ２に記憶された顧客データに基づいて）、現時刻データを生成する。
【００３０】
前時刻データ群生成部３２は、前時刻と複数の仮影響度と顧客ＤＢ２に記憶されている顧客データとに基づいて、複数の前時刻データを生成する。前時刻データは、前時刻で商品またはサービスの利用を開始している顧客の個別データに第１ラベル（正）をラベル付け、前時刻で商品またはサービスの利用を開始していない顧客の個別データに第２ラベル（負）をラベル付け、仮影響度に応じて重み付けを行ったデータである。重み付けとは、第２ラベルをラベル付けた個別データ数に対して、第１ラベルをラベル付けた個別データ数を相対的に変動させることである。前時刻データ群生成部３２は、仮影響度毎に前時刻データを生成する。仮影響度は複数あるので、複数の前時刻データを生成することになる。
【００３１】
前時刻分類器群生成部３３は、前時刻データ群生成部３２によって生成された各前時刻データ毎に１つずつ分類器を生成する。従って、前時刻分類器群生成部３３は、複数の分類器を生成することになる。分類器は、顧客の属性を表す項目からその顧客の個別データに正（第１ラベル）と負（第２ラベル）のいずれをラベル付けるかを判定するルールである。換言すれば、顧客の属性を表す項目を独立変数として、従属変数のとり得る値を正または負とし、その独立変数から従属変数を定めるルールである。
【００３２】
誤差群算出部３４は、前時刻分類器群生成部３３で生成された各分類器を用いて、現時刻データのラベルを予測する。すなわち、誤差群算出部３４は、分類器と、現時刻データ内の各個別データの項目（顧客の属性を示す項目）と照合し、現時刻データ内の各個別データ毎に、その個別データにラベル付けられるラベルを予測する。また、その現時刻データ内の各個別データには既に実際にラベル付けが行われている。誤差群算出部３４は、分類器と項目とから予測したラベルと、実際に現時刻データでラベル付けられているラベルとの誤差を算出する。誤差群算出部３４は、この処理を分類器毎に行う。したがって、誤差群算出部３４は複数の誤差を算出する。
【００３３】
影響度算出部３５は、個々の分類器毎に算出された誤差のうちの最小の誤差を特定し、最小の誤差に対応する仮影響度を影響度として定める。具体的には、最小の誤差に対応する仮影響度の数が一つである場合、影響度算出部３５は、その仮影響度を影響度として定める。また、最小の誤差に対応する仮影響度が複数個存在する場合には、その複数の仮影響度に基づいて影響度を定める。例えば、最小の誤差に対応する仮影響度が複数個存在する場合、その複数の仮影響度の平均値を計算し、その平均値を影響度として定める。以下、最小の誤差に対応する仮影響度が複数個存在する場合、その仮影響度の平均値を影響度と定める場合を例にして説明する。
【００３４】
影響度推定装置３が備える現時刻データ生成部３１、前時刻データ群生成部３２、前時刻分類器群生成部３３、誤差群算出部３４、および影響度算出部３５は、例えば、影響度推定プログラムに従って動作するＣＰＵによって実現される。すなわち、影響度推定システムに設けられた記憶装置から影響度推定プログラムを読み込んだＣＰＵが現時刻データ生成部３１、前時刻データ群生成部３２、前時刻分類器群生成部３３、誤差群算出部３４、および影響度算出部３５として動作してもよい。
【００３５】
なお、キーボード等の入力装置を介して、現時刻データ群生成部３１に現時刻、時刻間隔、および複数の仮影響度が入力されてもよい。また、影響度算出部３５が求めた影響度を出力するための出力装置が設けられていてもよい。図２は、入力装置および出力装置を備えた影響度推定システムの例を示すブロック図である。図１に示す構成要素と同様の構成要素については、図１と同一の符号を付して説明を省略する。
【００３６】
入力装置１は、例えばキーボードなどの入力装置である。このような入力装置１を介して現時刻、時刻間隔、および複数の仮影響度が入力されてもよい。ただし、他の態様で現時刻、時刻間隔、および複数の仮影響度が現時刻データ群生成部３１に入力されてもよい。
【００３７】
また、出力装置４は、例えばディスプレイ装置などの出力装置である。影響度算出部３５は、求めた影響度を出力装置４に出力してもよい。例えば、出力装置４がディスプレイ装置である場合、出力装置４に影響度を表示させてもよい。また、出力装置４が印刷装置であってもよい。
【００３８】
次に、動作について説明する。
図３は、本発明の影響度推定システムの処理経過の例を示すフローチャートである。例えば入力装置１（図２参照）を介して、現時刻データ生成部３１に現時刻、時刻間隔、および複数の仮影響度が入力されると、影響度推定システムは以下のように動作する。
【００３９】
まず、現時刻データ生成部３１は、前時刻を計算し、現時刻データを作成する（ステップＡ１）。さらに、ステップＡ１において、現時刻データ生成部３１は、誤差群算出部３４が計算する誤差のうちの最小値を示す変数（ＥｒｒｏｒＭｉｎとする。）の初期値を設定し、変数ｉ，ｐに対して、ｉ＝１，ｐ＝０という初期値を設定する。ＥｒｒｏｒＭｉｎの初期値は、誤差群算出部３４が計算する誤差のとり得る値の最大値、あるいは、その誤差のとり得る値に比べて十分に大きな値であればよい。変数ｉは、入力された複数の仮影響度を順番に指定するための変数である。例えば、ｉ＝１であれば、１番目の仮影響度を指定していることを意味する。また、ｐは、最小の誤差に対応する仮影響度を指定するための変数である。例えば、最小の誤差に対応する仮影響度がｐ個あったとすると、その最小誤差に対応する仮影響度の１番目からｐ番目までをそれぞれ、Ｉｍｐ［１］，・・・，Ｉｍｐ［ｐ］とする。
【００４０】
ステップＡ１において、現時刻データ生成部３１は、前時刻を、現時刻−時刻間隔と設定する。すなわち、現時刻から時刻間隔を減算した時刻を前時刻とする。
【００４１】
また、ステップＡ１において、現時刻データ生成部３１は、顧客ＤＢ２に記憶された顧客データを読み込む。そして、現時刻で商品またはサービスの利用を開始している顧客の個別データ（利用開始情報が現時刻以前の時刻を表している個別データ）に正をラベル付け、現時刻で商品またはサービスの利用を開始していない顧客の個別データに負をラベル付けることによって、現時刻データを生成する。
【００４２】
このとき、現時刻データ生成部３１は、顧客ＤＢ２に記憶されている顧客データに属する個別データのうち、前時刻で商品またはサービスの利用を開始していた顧客の個別データを除外した個別データの集合から現時刻データを生成してもよい。すなわち、利用開始情報が前時刻以前の時刻となっている個別データを除外し、残りの個別データに対して正または負のラベル付けを行ってもよい。以下、このように、利用開始情報が前時刻以前の時刻となっている個別データが現時刻データに含まれないように除外する場合を例にして説明するが、現時刻データ生成部３１は、顧客データに属する各個別データに対して正または負のラベル付けを行ってもよい。
【００４３】
顧客データから現時刻データを生成する動作を具体的に示す。図４は、顧客ＤＢ２される顧客データの例を示す説明図である。図４に示す各行はそれぞれ一人の顧客の個別データとなっていて、その個別データの集合が顧客データである。図４示す例では、個々の個別データの識別情報（ＩＤ）が付与されている場合を示している。図４では、顧客が商品またはサービスの利用を開始した月を利用開始時期としている場合を例示しているが、利用開始時期を日単位や時間単位などで表してもよい。また、利用開始情報が“？”で表されている場合、その“？”は、「未利用（すなわち、利用開始していない状態）」を意味しているが、他の記号で「未利用」を表してもよい。また、図４では、それぞれの個別データが、利用開始情報以外の顧客の属性を表すＮ個の項目を含んでいる場合を例示している。本例では、項目１が性別である。各項目に関し、不明である場合は欠損値を示す記号で表せばよい。本例では、欠損値を表す記号として“？”を用いている。
【００４４】
現時刻が２００７年４月であり、計算した前時刻が２００７年２月であるとする。現時刻データ生成部３１は、各項目の項目値はそのままとして、利用開始情報を無くし、代わりに利用を開始しているか否かを示すクラスを作成し、個別データに正または負をラベル付ける。なお、後の分類器を作成するステップで必要となるならば、男性／女性を０，１等の数値に変換してもよい。また、現時刻データ生成部３１は、図４に示す顧客データ内の個別データのうち、利用開始情報が前時刻（２００７年２月）以前の時刻となっている個別データ（ＩＤ＝１の個別データ）を除外し、他の個別データに対して、現時刻（２００７年４月）で商品またはサービスを利用開始しているならば正をラベル付け、そうでなければ負をラベル付ける。例えば、ＩＤ＝２の個別データでは、２００７年３月から利用開始となっているので、正とする。また、ＩＤ＝３の個別データでは、２００７年５月から利用開始となっていて、２００７年４月では商品またはサービスの利用を開始していないので、負とする。また、利用開始情報が“？（未利用）”となっている個別データについても負とする。図５は、このようにして図２に示す顧客データから生成された現時刻データの例を示す説明図である。前時刻以前の２００７年１月から利用を開始していた顧客の顧客データ（ＩＤ＝１）は、現時刻データでは除かれ、２００７年４月以前に利用開始した顧客の顧客データ（ＩＤ＝２）は正（＋）とラベル付けられ、他の顧客データは負（−）とラベル付けられている。なお、図５では、分かりやすさのためにＩＤを残した現時刻データを示しているが、分類に無関係な項目は予め削除してもよい。
【００４５】
ステップＡ１の後、前時刻データ群生成部３２は、ｉ番目の仮影響度（以下、Ｆａｌｓｅ［ｉ］と記す。）を用いて、仮影響度Ｆａｌｓｅ［ｉ］に対応する前時刻データを生成する（ステップＡ２）。前時刻データ群生成部３２は、顧客ＤＢ２に記憶された顧客データを読み込み、前時刻以前で商品またはサービスの利用を開始している顧客の個別データに正をラベル付け、前時刻で商品またはサービスの利用を開始していない顧客の個別データに負をラベル付ける。すなわち、利用開始情報（図４参照）が前時刻以前の時刻となっている個別データに正をラベル付け、利用開始情報が前時刻以前の時刻でない個別データに負をラベル付ける。この時点では、また仮影響度［ｉ］に応じた重み付けは行っていない。図６は、前時刻データ生成過程において重み付けが行われる前のデータの例を示す説明図である。ＩＤ＝１の個別データでは２００７年１月から利用開始となっていて、前時刻（２００７年２月）では利用が開始されているので、正（＋）をラベル付けている。また、ＩＤ＝２以降の個別データでは、利用開始の時期が前時刻（２００７年２月）よりも後であり、前時刻では利用開始されていなかったので、ＩＤ＝２以降の個別データにはいずれも負（−）をラベル付ける（図４、図６参照）。なお、前時刻データを生成する際には、個別データを除外しない。
【００４６】
そして、前時刻データ群生成部３２は、仮影響度Ｆａｌｓｅ［ｉ］に応じた重み付けを行う。すなわち、仮影響度Ｆａｌｓｅ［ｉ］に応じて、正とした個別データの数を、負とした個別データの数に対して相対的に変動させる。本例では、仮影響度Ｆａｌｓｅ［ｉ］の関数の関数値を計算し、正をラベル付けた個別データをその関数値倍に増加させる場合を例にする。
【００４７】
仮影響度Ｆａｌｓｅ［ｉ］の関数として、例えば、前時刻で商品またはサービスの利用を開始している顧客数と前時刻で未だその商品またはサービスの利用を開始していない顧客数との比率を仮影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
【００４８】
Ｆａｌｓｅ［ｉ］×（前時刻の未利用者数）／（前時刻の利用者数）
【００４９】
上記の関数において、「前時刻の未利用者数」は、前時刻で未だ商品またはサービスの利用を開始していない顧客の数である。すなわち、顧客データにおいて、利用開始情報が前時刻以前ではない個別データの数である。また、「前時刻の利用者数」は、前時刻で商品またはサービスの利用を開始している顧客の数である。すなわち、顧客データにおいて、利用開始情報が前時刻以前となっている個別データの数である。このように、「前時刻の未利用者数」を「前時刻の利用者数」で除算して得た比率をＦａｌｓｅ［ｉ］の係数とする関数を用いてもよい。
【００５０】
また、仮影響度Ｆａｌｓｅ［ｉ］の関数として、例えば、前時刻で商品またはサービスの利用を開始している顧客数と全顧客数との比率を仮影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
【００５１】
Ｆａｌｓｅ［ｉ］×（顧客人数）／（前時刻の利用者数）
【００５２】
上記の関数において、「顧客人数」は、全顧客数（顧客データ内の全個別データ数）であり、前時刻で利用を開始している顧客の数と、前時刻で未だ利用を開始していない顧客の数の和である。「前時刻の利用者数」は、上述の関数の場合と同様である。このように、「顧客人数」を「前時刻の利用者数」で除算して得た比率をＦａｌｓｅ［ｉ］の係数とする関数を用いてもよい。
【００５３】
前時刻データ群生成部３２は、このような関数の関数値倍に、正をラベル付けた個別データを増加させる。例えば、仮影響度がＦａｌｓｅ［ｉ］のときの関数値が５であるとする。この場合、正をラベル付けた個別データの数が５倍になるように、正をラベル付けた個別データの複製を生成すればよい。この結果得られるデータが前時刻データである。図７は、重み付けを行って得た前時刻データの例を示す説明図である。図６に示す例では、ＩＤ＝１の個別データが正となっていて、他の個別データが負となっている。従って、前時刻データ群生成部３２は、ＩＤ＝１の個別データと同内容のデータを５つ生成する。ただし、ＩＤはそれぞれ１’，１’’等として、区別している。
【００５４】
なお、正とラベル付けた個別データのコピーだけを生成する場合には、正とラベル付けた個別データに対する重み付けを行ってから、他の個別データに対して負のラベル付けを行ってもよい。
【００５５】
また、例示した２つの関数における仮影響度の係数の値は、いずれも時間が経過して利用者数が増えるに従って減少する。仮影響度の係数は、このような係数に限定されない。また、仮影響度Ｆａｌｓｅ［ｉ］の値をそのまま関数値として用いてもよい。この場合係数を１としていることになる。
【００５６】
また、上記の例では、正とラベル付けた個別データを関数値倍に増加させる場合を示しているが、重み付けでは、正とラベル付けた個別データ数を、負とラベル付けた個別データ数に対して相対的に変化させればよい。例えば、重み（関数値）が５で、正とラベル付けた個別データ数を１０倍とするならば、負とラベル付けた個別データ数（未利用者数）を２倍にすればよい。また、重みが０．５で、正とラベル付けた個別データ数を１倍とするならば、負とラベル付けた個別データ数を２倍にすればよい。なお、ここでは、個別データ数を１０倍とする等の例を挙げたが、このように、個別データ数をｋ倍にする等の条件を定める場合、そのｋ等は予め外部から入力しておけばよい。
【００５７】
また、ここでは、実際に個別データの複製を作成することで個別データを増加させていたが、次のステップで分類器を作成する際に、仮影響度Ｆａｌｓｅ［ｉ］の関数値を重み付けパラメタとして用いてもよい。すなわち、正とラベル付けた個別データを何倍に増やすかということを決めておき、その結果をパラメータとして分類器を生成してもよい。
【００５８】
ステップＡ２で前時刻データ群生成部３２がＦａｌｓｅ［ｉ］に応じた前時刻データを生成した後、前時刻分類器群生成部３３は、その前時刻データを用いて、その前時刻データに対応する分類器（前時刻分類器ｉと記す。）を生成する（ステップＡ３）。ＩＤは分類器作成に不要であり、前時刻分類器群生成部３３は、ＩＤを削除してよい。前時刻分類器群生成部３３は、データマイニングの様々な手法により分類器を生成すればよい。例えば、重回帰分析、決定木、ニューラルネットワーク、サポートベクタマシン、ベイジアンネットワークなどの手法のいずれかあるいはその組合せなどにより分類器を生成すればよい。
【００５９】
以下、分類器として決定木を用いる場合を例にして、分類器の具体例を説明する。本例では、「ゴルフをするか否か」を従属変数とし、「天気」、「天候」、「湿度」、「風が強いか否か」を独立変数とする場合を例にして説明する。図８は、既知の独立変数および従属変数の組み合わせの例を示す説明図である。図９は、分類器の例を示し、ここでは、決定木を分類器としている。図１０は、分類器から予測される従属変数の例を示す説明図である。図８に示すように、既知の独立変数および従属変数の組み合わせがあれば、その既知の独立変数および従属変数から決定木を生成することができる。そして、その決定木と既知の独立変数から従属変数を予測することができる。例えば、図９に示す決定木が得られていれば、図１０に例示する独立変数から、図１０に例示する従属変数を予測することができる。項目の項目値に応じて枝分かれさせることを分割という。
【００６０】
図８に示す例では、各行が、「ゴルフをする／しない」とラベル付けられた個別データに相当する。以下、図８に示す各行を個別データとして説明する。また、「ゴルフをする」は、正（＋）のラベルに相当し、「ゴルフをしない」は、負（−）のラベルに相当する。決定木では、従属変数のとり得るラベル毎（例えば、「する（正）」、「しない（負）」というラベル毎）に個別データ数をまとめた情報をノードとする。例えば、図８に示すルートのノードでは、「する：９，しない：５」という情報をノードとしている。
【００６１】
前時刻分類器群生成部３３は、前時刻データが与えられると、どの項目で最初に分割させるかを決定する。このとき、前時刻分類器群生成部３３は、項目１〜Ｎの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択する。ここでは、分割前のノードのエントロピーと、分割後のエントロピーの差を評価値とする場合を例にするが、他の計算方法で評価値を求めてもよい。ノードのエントロピーは、ラベルが正（＋）の個別データの割合をｑとし、ラベルが負（−）の個別データの割合を１−ｑとすると、−ｑｌｏｇｑ−（１−ｑ）ｌｏｇ（１−ｑ）で表される。分割後のノードのエントロピーは、分割後の各ノードのエントロピーの加重平均である。
【００６２】
例えば、前時刻データにおいて、「正」が９データあり、「負」が５データあるとするとルートのノードは「正：９，負：５」となる。この場合、正（＋）のデータが９データあり、負（−）のデータが５データあるので、ルートのノードのエントロピーは、−（９／１４）×ｌｏｇ（９／１４）−（５／１４）×（５／１４）＝０．９４０となる。
【００６３】
前時刻分類器群生成部３３は、一つの項目でルートのノードを分割して得られるノードを求める。すなわち、その項目の項目値毎に、正および負の個別データ数を表す情報（ノード）を生成する。例えば、その項目１のとり得る値が「０」または「１」であり、項目１の値が「０」のときには、正が５データあり、負が２データあるとし、項目１の値が「１」のときには、正が０データあり、負が７データあるとする。この場合、項目１の値が「０」か「１」かで分岐するノードとして、「正：５，負：２」というノードと、「正：０，負：７」というノードとを生成する。前時刻分類器群生成部３３は、分割後の各ノードのエントロピーを計算し、分割後の各ノードにおける正または負としてカウントされる個別データ数に応じて各ノードのエントロピーの加重平均を求める。上記の例では「正：５，負：２」というノードにおいても、「正：０，負：７」というノードにおいても個別データの総数は７であるので、加重平均を行う際の重み付け係数は各ノードでいずれも（７／１４）となる。従って、本例の場合、前時刻分類器群生成部３３は、分割後のエントロピーを以下のように計算する。
【００６４】
（７／１４）×｛−（５／７）×ｌｏｇ（５／７）−（２／７）×ｌｏｇ（２／７）｝
＋（７／１４）×｛−（０／７）×ｌｏｇ（０／７）−（７／７）×ｌｏｇ（７／７）｝
＝０．４３２
【００６５】
従って、本例の場合、前時刻分類器群生成部３３は、項目１で分割した場合の評価値を、０．９４０−０．４３２＝０．５０８と計算する。
【００６６】
前時刻分類器群生成部３３は、項目１だけでなく、他の項目についても同様に、その項目で分割したときの評価値を計算し、評価値が最大となる項目で分割すると決定する。このようにして、ルートのノードを分割する項目を決定する。
【００６７】
なお、上記の項目１の例では、項目１のとり得る値が「０」または「１」の二つだけである場合を示した。項目値が年齢であり、その値が２０，２１，２２のように連続する値の場合には、どこで項目値で分割させるのかも決める。この場合、前時刻分類器群生成部３３は、各項目値間の中間値をしきい値とし、各しきい値毎に、その「しきい値以下」および「そのしきい値より大」とに分割させた場合の評価値を求める。そして、評価値が最大となる場合を選択することによって、どの項目値で分割させるのかも決定する。例えば、項目値が２０，２１，２２，・・・と連続する場合では、「２０．５以下」および「２０．５より大」で分割した場合の評価値、「２１．５以下」および「２１．５より大」で分割した場合の評価値等をそれぞれ計算し、評価値が最も高くなるように分割すればよい。
【００６８】
前時刻分類器群生成部３３は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次、繰り返す。また、前時刻分類器群生成部３３は、所定の条件が満たされたときには、ノードの分割を停止する。所定の条件とは、例えば、「ノードにおける個別データのクラスが全て同じになる」という条件や、「ノードにおける正または負としてカウントされる個別データ数が所定数（例えば２）以下になる」という条件を用いてよい。前者の条件を採用すると、ノードにおける個別データが全て正または負になると、そのノードの分割を継続しない。このように、前時刻分類器群生成部３３は、ルートのノードから順次、分割を繰り返し、木構造の決定木を生成する。
【００６９】
また、前時刻分類器群生成部３３は、上記のように、木構造の決定木を生成した後、その決定木に対する枝刈りを行う。決定木において、分割されて生成された最終的なノードを葉と呼ぶ。ある葉に分類されたデータ数がＮであるとする（すなわち、正または負としてカウントされる個別データ数がＮであるとする）。この葉に分類されたＮデータ中、Ｅデータが誤りであるとする。この仮定では、Ｎ回の試行中、誤りという事象をＥ回観測したとみなし、大きさＮの標本で、誤りという事象が起きる確率がｒである二項分布と考えることができる。予め与えられた信頼度ＣＦに対して、ｒの上限をＵ＿ＣＦ（Ｅ，Ｎ）と表すことにすると、Ｎデータでの誤りの発生する期待値は、Ｎ×Ｕ＿ＣＦ（Ｅ，Ｎ）となる。前時刻分類器群生成部３３は、子のノードが全て葉である親のノードに対し、親における誤りの期待値（誤りの発生する期待値）と、子である葉の誤りの期待値の合計とを比較する。そして、子での期待値の合計の方が親の誤りの期待値よりも大きければ、前時刻分類器群生成部３３は、葉を縮退して、その親を葉とする。前時刻分類器群生成部３３は、この処理を順次繰り返すことで、決定木全体の葉の枝刈りを行う。
【００７０】
葉を縮退する場合、前時刻分類器群生成部３３は、葉を削除して、その削除した葉の親のノードを葉とすればよい。例えば、図９に例示する決定木において、「湿度」という項目の値に応じて分割したノードを縮退する場合、前時刻分類器群生成部３３は、湿度の項目値が７０％以下となっている個別データ数を表すノード「する：２，しない：０」と、湿度の項目値が７０％より高くなっている個別データ数を表すノード「する：０，しない：３」とを削除して、その２つののノードの親ノード「する：２，しない：３」を葉とすればよい。
【００７１】
分類器として決定木を生成する場合、例えば、上記のように、決定木を定めて枝刈りを行うことで、決定木を生成すればよい。
【００７２】
ステップＡ３でＦａｌｓｅ［ｉ］に応じた前時刻データから分類器（前時刻分類器ｉ）を生成すると、誤差群算出部３４は、その前時刻分類器ｉを用いて、現時刻データのラベルを予測する（ステップＡ４）。すなわち、誤差群算出部３４は、現時刻データ内の各個別データ毎に、その個別データにおける顧客の属性を示す項目と、前時刻分類器ｉとを照合し、その個別データにラベル付けられるラベルを予測する。
【００７３】
例えば、分類器が決定木である場合、誤差群算出部３４は、そのルートのノードの項目に関して現時刻データ内の個別データの項目値を参照し、その項目値に応じて子ノードを辿る。誤差群算出部３４は、葉のノードまで辿ったならば、葉のノードでカウント数の多い方のラベルを予測結果とすればよい。例えば、葉のノードで、「正：３，負：０」となっていれば、「正」と予測すればよい。
【００７４】
ステップＡ４の後、誤差群算出部３４は、現時刻データ内の各個別データにラベル付けられるラベルの予測結果と、現時刻データとの誤差を算出する（ステップＡ５）。すなわち、現時刻データ内の各個別データには、現時刻データ生成時に正または負のラベルがラベル付けられているので、ステップＡ４での予測結果と、実際の現時刻データでラベル付けされているラベルとの誤差を予測する。この誤差をＥｒｒ［ｉ］と記す。
【００７５】
誤差群算出部３４は、ステップＡ５において、例えば、現時刻データ内の個別データ毎に予測したラベルと、実際に現時刻データの各個別データにラベル付けられているラベルとを比較し、両者が異なっている個別データ数をカウントして、そのカウント値をＥｒｒ［ｉ］として求めてもよい。
【００７６】
あるいは、誤差群算出部３４は、現時刻データ内の個別データ毎に予測したラベルのうち、正がラベル付けられると予測した個別データの数と、現時刻データの中で実際に正がラベル付けられた個別データの数との差を計算して、その差をＥｒｒ［ｉ］として求めてもよい。すなわち、正のラベルの予測数と、実際に現時刻データの中で正がラベル付けられた個別データ数（実際の利用者数）との差の絶対値をＥｒｒ［ｉ］としてもよい。
【００７７】
ステップＡ５の後、影響度算出部３５は、誤差Ｅｒｒ［ｉ］と最小誤差値ＥｒｒｏｒＭｉｎとを比較し、Ｅｒｒ［ｉ］がＥｒｒｏｒＭｉｎ未満であるか否かを判定する（ステップＡ６）。Ｅｒｒ［ｉ］がＥｒｒｏｒＭｉｎ未満であるならば（ステップＡ６におけるＹｅｓ）、影響度算出部３５は、ｐを０に初期化し、ＥｒｒｏｒＭｉｎにＥｒｒ［ｉ］を代入する（ステップＡ１１）。Ｅｒｒ［ｉ］がＥｒｒｏｒＭｉｎ未満ということは、これまで最小としていた誤差よりもさらに小さい最小値が見つかったことを意味する。この場合、ステップＡ１１において、その最小値でＥｒｒｏｒＭｉｎを更新し、また、その誤差に対応する仮影響度が複数ある場合に各仮影響度を個別に指定するための変数ｐを初期化している。
【００７８】
ステップＡ１１の後、影響度算出部３５は、ｐの値を１インクリメントし、Ｉｍｐ［ｐ］にＦａｌｓｅ［ｉ］を代入する（ステップＡ１２）。また、ステップＡ６において、Ｅｒｒ［ｉ］がＥｒｒｏｒＭｉｎ以上であると判定した場合（ステップＡ６におけるＮｏ）、影響度算出部３５は、Ｅｒｒ［ｉ］がＥｒｒｏｒＭｉｎと等しいか否かを判定する（ステップＡ７）。ここで等しいと判定した場合（ステップＡ７におけるＹｅｓ）にも、影響度算出部３５は、ｐの値を１インクリメントし、Ｉｍｐ［ｐ］にＦａｌｓｅ［ｉ］を代入する（ステップＡ１２）。
【００７９】
ステップＡ１１からステップＡ１２に移行した場合、ｐ＝１であり、現在着目している仮影響度Ｆａｌｓｅ［ｉ］を、誤差が最小となる１番目の仮影響度とする。また、ステップＡ７において、着目しているＦａｌｓｅ［ｉ］に対応するＥｒｒ［ｉ］がＥｒｒｏｒＭｉｎと等しく、ステップＡ１２に移行した場合、ｐは２以上の値になる。この場合、既に最小の誤差に対応する仮影響度は１つ以上見つかっていて、影響度算出部３５は、現在着目している仮影響度Ｆａｌｓｅ［ｉ］を、誤差が最小となるｐ番目の仮影響度と定めることになる。
【００８０】
ステップＡ１２の後、あるいは、ステップＡ７でＥｒｒ［ｉ］がＥｒｒｏｒＭｉｎと等しくないと判定した場合（ステップＡ７におけるＮｏ）、影響度算出部３５は、ｉの値をインクリメントする（ステップＡ８）。次に、影響度算出部３５は、ｉの値が、最初に入力された仮影響度の個数（Ｍとする。）以下であるか否かを判定する（ステップＡ９）。ｉが仮影響度数Ｍ以下であるならば（ステップＡ９におけるＹｅｓ）、ステップＡ８でインクリメントされたｉによって定まる仮影響度Ｆａｌｓｅ［ｉ］に関してステップＡ２以降の処理を行う。すなわち、着目する仮影響度を変更してステップＡ２以降の処理を行う。
【００８１】
ｉの値が仮影響度数Ｍよりも大きければ（ステップＡ９におけるＮｏ）、ステップＡ１０に移行する。ここで、ｉは、誤差算出が終了した仮影響度の数を表している。ステップＡ１０において、影響度算出部３５は、最小誤差に対応する各仮影響度の平均値を計算し、その平均値を影響度として出力する（ステップＡ１０）。最小誤差に対応する仮影響度が１つしかなければ、ｐ＝１となっている。このとき、影響度算出部３５は、Ｉｍｐ［１］を影響度として出力すればよい。また、最小誤差に対応する仮影響度が複数ある場合、ｐは２以上の値となっている。このとき、影響度算出部３５は、Ｉｍｐ［１］からＩｍｐ［ｐ］までの各影響度の平均値を計算し、その平均値を影響度として出力すればよい。
【００８２】
影響度算出部３５は、例えば、出力装置４に影響度を表示させる。あるいは、他の出力態様で影響度を出力してもよい。例えば、出力装置４が印刷装置であって、出力装置４に影響度を印刷させてもよい。
【００８３】
次に、第１の実施形態の効果について説明する。
第１の実施の形態では、入力された複数の仮影響度のそれぞれに対し予測誤差を求め、その誤差が最小となる仮影響度の平均を影響度とする。従って、前時刻から現時刻までの期間における影響度を推定することができる。また、影響度を調べようとする期間にあわせて、入力する現時刻および時刻間隔を定めることにより、調べようとする期間における影響度を推定することができる。
【００８４】
また、誤差群算出部３４が、予測したラベルと実際に現時刻データの各個別データにラベル付けられているラベルとを比較し、両者が異なっている個別データ数をカウントして、そのカウント値を誤差（Ｅｒｒ［ｉ］）とする場合には、影響度の推定性能を高めることができる。
【００８５】
また、誤差群算出部３４が、現時刻データ内の個別データ毎に予測したラベルのうち、正がラベル付けられると予測した個別データの数と、現時刻データの中で実際に正がラベル付けられた個別データの数との差を誤差（Ｅｒｒ［ｉ］）とする場合には、現時刻で利用を開始すべき顧客が次の時刻で開始したり、次の時刻で利用を開始すべき顧客が現時刻で早めに利用を開始したりするといった細かな変動を均して影響度を推定することができる。
【００８６】
また、上記の実施形態では、入力された１つの現時刻における影響度を推定する場合を説明したが、複数種類の現時刻が入力され、その各現時刻に対して、それぞれステップＡ１以降の処理を行い、各現時刻毎に影響度を求めてもよい。この場合、刻々と変動する影響度を推定することができる。
【００８７】
また、例えば、複数の現時刻が入力され、各現時刻毎に影響度を求める場合、以下の様に動作してもよい。すなわち、影響度推定システムのユーザから各現時刻毎に影響度を求めるように指定された場合に、各現時刻毎にステップＡ１以降の処理を行って、各現時刻毎の影響度を求め、影響度算出部３５は、それらの現時刻毎の影響度の平均値を影響度として求めてもよい。このように影響度を求めれば、広告・販売促進活動の影響を受けにくい期間で多くの時刻を用いると影響度の推定誤差を減少できると思われる場合に、推定誤差の少ない影響度を求めることができる。また、各現時刻毎の影響度の平均値を求めるときに、最近に近いほど（すなわち、現時刻が遅くなっているほうの影響度ほど）重みを付けて、重み付き平均の値を求め、その重み付き平均の値を影響度としてもよい。
【００８８】
また、影響度推定システムのユーザが複数の現時刻を指定する場合、現時刻の最小値、最大値、および現時刻を変化させる間隔を現時刻データ生成部３１に入力してもよい。現時刻データ生成部３１は、現時刻の最小値、最大値、および現時刻を変化させる間隔が入力されると、その現時刻の最小値から最大値までの期間をその間隔毎に区切って、入力された最小値および最大値の他に、その境界の時刻を現時刻としてもよい。そして、それらの現時刻毎に影響度を求め、その移動平均あるいは移動重み付き平均を求めてもよい。
【００８９】
また、複数の現時刻が入力され、各現時刻毎に各仮影響度における誤差を計算し、その各現時刻における各仮影響度の誤差から影響度を定めてもよい。例えば、複数の現時刻Ｔ１〜Ｔｘが入力されているとする。本例では、影響度推定システムは、現時刻Ｔ１に関し、ステップＡ１〜Ａ５を行い、Ｅｒｒ［１］を求める。ステップＡ５の後に誤差算出部３５は、ステップＡ８およびステップＡ９を行い、さらにｉ＝２以上の場合の誤差Ｅｒｒ［２］〜Ｅｒｒ［Ｍ］を順次求める。同様に、他の現時刻に関してもＥｒｒ［１］〜Ｅｒｒ［Ｍ］を求める。図１１は、このように現時刻毎に求めた各仮影響度における誤差を示している。各現時刻におけるＥｒｒ［１］〜Ｅｒｒ［Ｍ］を求めた後、誤差算出部３５は、１〜Ｍまでの各ｉ毎に、各現時刻におけるＥｒｒ［ｉ］の和を計算し、その和が最小となるｉによって定められる仮影響度を影響度としてもよい。図１１に示す例では、各行毎に、Ｅｒｒ［ｉ］の和を求め、その和が最小となるｉによって定まるＦａｌｓｅ［ｉ］を影響度としてもよい。
【００９０】
また、影響度推定システムのユーザが複数の仮影響度を指定する場合、仮影響度の最大値、最小値、および仮影響度を変化させる間隔を現時刻データ生成部３１に入力してもよい。現時刻データ生成部３１は、仮影響度の最大値、最小値、および仮影響度を変化させる間隔が入力されると、その仮影響度の最小値から最大値までの値の範囲をその期間毎に区切って、入力された最小値および最大値の他に、その境界の値を仮影響度として定めてもよい。
【００９１】
また、第１の実施の形態では、影響度を出力するよう記載したが、影響度の信頼性をユーザーが知るため、算出した誤差などを出力してもよい。例えば、影響度算出手段３５が、影響度の他に、Ｅｒｒ［ｉ］を出力装置４に出力させてもよい。
【００９２】
また、第１の実施形態では、影響度推定システムが顧客ＤＢ２を備える場合を説明したが、顧客ＤＢ２が影響度推定システムの外部に設けられ、影響度推定システムがその顧客ＤＢ２を参照して処理を行う構成であってもよい。
【００９３】
実施形態２．
図１２は、本発明の普及予測システムの例を示すブロック図である。第１の実施形態と同様の構成要素については、図１と同一の符号を付す。本発明の普及予測システムは、個々の顧客毎に、予測対象の時刻において商品またはサービスの利用を開始するか否かを判定する普及予測装置５と、顧客データベース（以下、顧客ＤＢと記す）２とを備える。
【００９４】
本実施形態の顧客ＤＢ２は、顧客データを記憶する記憶手段であり、第１の実施形態における顧客ＤＢ２（図１参照）と同様である。本実施形態の顧客ＤＢ２が記憶する顧客データも、第１の実施形態における顧客データと同様である。すなわち、顧客データは、図４に示すように、個々の顧客毎に定められた個別データの集合である。顧客ＤＢ２において、各個別データは、利用開始情報と、利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む。顧客が商品またはサービスを利用し始めている場合には、その商品またはサービスを利用し始めた時期が利用開始情報となる。また、顧客が商品またはサービスを未利用である場合には、未利用である旨が利用開始情報となる。
【００９５】
普及予測装置５は、現時刻と影響度とが入力される。第２の実施形態における現時刻は、顧客が商品またはサービスを利用し始めたか否かの判定対象時刻を定める。また、影響度は、第１の実施形態の影響度推定システムが求めた影響度であることが好ましいが、普及予測システムのユーザが決めた影響度であってもよい。また、本実施形態における現時刻は、将来の時刻であってもよい。
【００９６】
普及予測装置５は、テストデータ生成部５１と、学習データ生成部５２と、分類器生成部５３と、テストデータラベル判定部５４とを備える。
【００９７】
テストデータ生成部５１は、現時刻と顧客ＤＢ２とに基づいて、現時刻に利用を開始していない顧客の個別データを含むテストデータを生成する。
【００９８】
テストデータは、現時刻において、商品またはサービスの利用を開始していない顧客の個別データを含むデータである。テストデータは、現時刻で商品またはサービスの利用を開始していない顧客の個別データのみを含むことが好ましいが、現時刻で商品またはサービスの利用を開始している顧客の個別データを含んでいてもよい。以下、テストデータが、現時刻で商品またはサービスの利用を開始していない顧客の個別データのみを含む場合を例にして説明する。
【００９９】
学習データ生成部５２は、入力された現時刻および影響度と顧客ＤＢ２に記憶されている顧客データとに基づいて、学習データを生成する。学習データは、現時刻で商品またはサービスの利用を開始している顧客の個別データに第１ラベルをラベル付け、現時刻で商品またはサービスの利用を開始していない顧客の個別データに第２ラベルをラベル付け、入力された影響度に応じて重み付けを行ったデータである。第１の実施形態で述べたように、重み付けとは、第２ラベルをラベル付けた個別データ数に対して、第１ラベルをラベル付けた個別データ数を相対的に変動させることである。また、第１の実施形態と同様に、第１ラベルを正（または＋）と記し、第２ラベルを負（または−）と記す。
【０１００】
分類器生成部５３は、学習データ生成部５２が生成した学習データを用いて分類器を生成する。
【０１０１】
テストデータラベル判定部５４は、テストデータ内の各個別データのラベルを分類器によって予測する。すなわち、テストデータ内の各個別データの項目と分類器とを照合して、正または負のいずれにラベル付けられるかという判定を行う。正と判定された個別データの顧客は、現時刻の次の時刻で商品またはサービスの利用を開始すると予測されることになる。負と判定された個別データの顧客は、現時刻の次の時刻ではまだ商品またはサービスの利用を開始しないと予測されることになる。なお、現時刻の次の時刻とは、現時刻に、定められた一定時間を加算した時刻である。
【０１０２】
なお、テストデータラベル判定部５４は、テストデータ内の各個別データに対するラベルの予測結果（判定結果）を、出力装置（図１２において図示せず。）に出力させてもよい。例えば、予測結果を、ディスプレイ装置などに表示させても、印刷装置などに印刷させてもよい。
【０１０３】
また、テストデータ生成部５１および学習データ生成部５２は、外部から現時刻を入力されてもよい。また、学習データ生成部５２は、外部から影響度を入力されてもよい。このとき、例えば、キーボードなどの入力装置（図１２において図示せず。）を介して現時刻および影響度が入力されてもよい。あるいは、第１の実施形態の影響度推定システムがある現時刻における影響度を求めた場合、例えば、第１の実施形態の影響度推定システムの影響度算出手段３５が、現時刻をテストデータ生成部５１および学習データ生成部５２に渡し、影響度を学習データ生成部５２に渡してもよい。
【０１０４】
普及予測装置５が備えるテストデータ生成部５１、学習データ生成部５２、分類器生成部５３、およびテストデータラベル判定部５４は、例えば普及予測プログラムに従って動作するＣＰＵによって実現される。すなわち、普及予測装置５に設けられた記憶装置から普及予測プログラムを読み込んだＣＰＵがテストデータ生成部５１、学習データ生成部５２、分類器生成部５３、およびテストデータラベル判定部５４として動作してもよい。
【０１０５】
次に、普及予測システムの動作について説明する。
図１３は、本発明の普及予測システムの処理経過の例を示すフローチャートである。例えば、キーボートなどの入力装置（図１３において図示せず。）を介して、普及予測装置５に現時刻および影響度が入力されると、普及予測システムは以下のように動作する。
【０１０６】
まず、テストデータ生成部５１は、テストデータを生成する（ステップＢ１）。テストデータ生成部５１は、顧客データＤＢ２に記憶されている顧客データの中から、現時刻で商品またはサービスの利用を開始していない顧客の個別データのみを抜き出して、その個別データの集合をテストデータとすればよい。具体的には、利用開始情報（図４参照）が現時刻以前の時刻となっていない個別データのみを抜き出して、その個別データの集合をテストデータとすればよい。ここでは、テストデータが、現時刻で利用を開始していない顧客の個別データのみを含む場合を例にしているが、現時刻で利用を開始している顧客の個別データをテストデータに含めるようにしてもよい。
【０１０７】
ステップＢ１の後、学習データ生成部５２は、学習データを生成する（ステップＢ２）。学習データ生成部５２は、顧客ＤＢ２に記憶された顧客データを読み込み、現時刻以前で商品またはサービスの利用を開始している顧客の個別データに正をラベル付け、現時刻で商品またはサービスの利用を開始していない顧客の個別データに負をラベル付ける。すなわち、利用開始情報が現時刻以前の時刻となっている個別データに正をラベル付け、利用開始情報が現時刻以前の時刻でない個別データに負をラベル付ける。そして、学習データ生成部５２は、影響度に応じて、正とした個別データの数を、負とした個別データの数に対して相対的に変動させる。本例では、影響度の関数の関数値を計算し、その関数値倍に、正をラベル付けた個別データを増加させる場合を例にする。
【０１０８】
影響度の関数として、例えば、現時刻で商品またはサービスの利用を開始している顧客数と現時刻で未だその商品またはサービスの利用を開始していない顧客数との比率を影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
【０１０９】
影響度×（現時刻の未利用者数）／（現時刻の利用者数）
【０１１０】
上記の関数において、「現時刻の未利用者数」は、現時刻で未だ商品またはサービスの利用を開始していない顧客の数（より具体的には個別データの数）である。すなわち、顧客データにおいて、利用開始情報が現時刻以前でない個別データの数である。また、「現時刻の利用者数」は、現時刻で商品またはサービスの利用を開始している顧客の数である。すなわち、顧客データにおいて、利用開始情報が現時刻以前となっている個別データの数である。このように、「現時刻の未利用者数」を「現時刻の利用者数」で除算して得た比率を影響度の係数とする関数を用いてもよい。
【０１１１】
また、影響度の関数として、例えば、現時刻で商品またはサービスの利用を開始している顧客数と全顧客数との比率を影響度の係数とする関数を用いてもよい。すなわち、以下に例示する関数を用いてもよい。
【０１１２】
影響度×（顧客人数）／（現時刻の利用者数）
【０１１３】
上記の関数において、「顧客人数」は、全顧客数（顧客データ内の全個別データ数）である。「現時刻の未利用者数」は、上述の関数の場合と同様である。このように、「顧客人数」を「現時刻の利用者数」で除算して得た比率を影響度の係数とする関数を用いてもよい。
【０１１４】
学習データ生成部５２は、このような関数の関数値倍に、正をラベル付けた個別データを増加させる。例えば、入力された影響度を関数に代入して得た値がｊであるとする。この場合、正をラベル付けた個別データの数がｊ倍になるように、正をラベル付けた個別データの複製を生成すればよい。
【０１１５】
また、例示した２つの関数における影響度の係数の値は、いずれも時間が経過して利用者数が増えるに従って減少する。影響度の係数は、このような係数に限定されない。また、影響度の値をそのまま関数値として用いてもよい。この場合、係数を１としていることになる。
【０１１６】
また、上記の例では、正とラベル付けた個別データを関数値倍に増加させる場合を示しているが、重み付けでは、正とラベル付けた個別データ数を、負とラベル付けた個別データ数に対して相対的に変化させればよい。この点は、第１の実施形態において前時刻データ群生成部３２が行う重み付けと同様である。
【０１１７】
ステップＢ２の後、分類器生成部５３は、学習データを用いて分類器を生成する（ステップＢ３）。分類器生成部５３は、重回帰分析、決定木、ニューラルネットワーク、サポートベクタマシン、ベイジアンネットワークなどのデータマイニングによる手法のいずれかあるいはその組合せにより分類器を生成すればよい。
【０１１８】
また、第１の実施形態において前時刻データ群生成部３２の分類器生成動作として例示したように、分類器として決定木を生成してもよい。すなわち、分類器生成部５３は、学習データが与えられると、どの項目で最初に分割させるかを決定する。このとき、分類器生成部５３は、項目１〜Ｎの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択すればよい。評価値として、例えば、分割前のノードのエントロピーと、分割後のエントロピーの差を用いればよい。分割前のノードのエントロピー、および分割後のエントロピーの計算方法は、第１の実施形態で既に説明した計算方法と同様であり、説明を省略する。分類器生成部５３は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次繰り返し、所定の条件が満たされたときには、ノードの分割を停止する。そして、分類器生成部５３は、このようにして得た木構造の決定木に対して、枝刈りを行うことにより、分類器となる決定木を生成する。上記の所定の条件や枝刈りの処理も、第１の実施形態で示した所定の条件や枝刈り処理と同様であり、説明を省略する。このようにして生成した決定木（分類器）は、学習データ内で第１ラベルをラベル付けられた個別データの割合が高くなるほど、テストデータ内で第２ラベルをラベル付けられている個別データのうち、第１ラベルをラベル付けられた個別データの項目値と類似する項目値を持つ個別データに対して、第１ラベルをラベル付けると判定する頻度が高くなるという性質を有している。なお、分類器は決定木に限定されず、分類器生成部５３は、上記以外の動作で分類器を生成してもよい。
【０１１９】
ステップＢ３の後、テストデータラベル判定部５４は、ステップＢ３で生成された分類器を用いて、テストデータのラベルを予測する（ステップＢ４）。すなわち、テストデータラベル判定部５４は、テストデータ内の各個別データ毎に、その個別データにおける顧客の属性を示す項目と、ステップＢ３で生成された分類器とを照合し、その個別データに対するラベルが正であるか負であるかを判定する。例えば、分類器が決定木である場合、テストデータラベル判定部５４は、そのルートのノードの項目に関してテストデータ内の個別データの項目値を参照し、その項目値に応じて子ノードを辿る。テストデータラベル判定部５４は、葉のノードまで辿ったならば、葉のノードでカウント数の多い方のラベルを判定結果とすればよい。
【０１２０】
テストデータラベル判定部５４は、テストデータ内の個別データ毎に判定した正または負のラベルを、例えば、ディスプレイ装置などに表示させてもよい。あるいは、印刷装置に印刷させてもよい。
【０１２１】
本実施形態によれば、顧客の属性を示す項目を含む個別データの集合に対してラベル付けを行い、さらに重み付けをして得た学習データから分類器を生成する。そして、テストデータラベル判定部５４がテストデータ内の各個別データ毎に、その項目と分類器とを照合して、正または負のいずれかを判定する。すなわち、顧客の属性を示す項目を利用して分類器を生成し、利用を開始していない顧客の項目とその分類器とから、その顧客が現時刻の次の時刻で利用を開始するか否かを予測している。従って、顧客の属性を利用して、顧客が現時刻の次の時刻で利用を開始するか否かを判定することができる。
【０１２２】
また、個別データ毎にラベルの予測を行うので、個々の顧客毎に現時刻の次の時刻で商品またはサービスを利用開始するか否かを予測することができる。また、指定する現時刻を変更すれば、所望の時刻で各顧客毎に商品またはサービスを利用開始するか否かを予測することができる。すなわち、個別の顧客がある時刻で商品やサービスの利用を開始するか否かを予測できる。従って、その予測結果を、商品やサービスの販売促進に活用することができる。
【０１２３】
また、ロジスティック曲線等にデータを当てはめて普及曲線を予測する場合には、立ち上がりからのデータ（すなわち、商品やサービスの提供開始時からの提供数データ）が必要であるが、本発明では、顧客データが一部の期間におけるデータである場合にも、現時刻の次の時刻で各顧客毎に商品またはサービスを利用開始するか否かを予測することができる。
【０１２４】
次に、第２の実施形態の変形例を示す。以下に示す第２の実施形態の変形例では、テストデータに対する予測結果を顧客ＤＢ２が記憶する顧客データに反映させる。そして、現時刻を更新してテストデータに対する予測を繰り返して、商品またはサービスの普及の程度を予測する。
【０１２５】
図１４は、第２の実施形態の変形例を示すブロック図である。既に説明した構成要素と同様の構成要素は、図１２と同一の符号を付し、説明を省略する。また、図１２では、普及予測装置５に現時刻および影響度などを入力するための入力装置１と、予測結果を出力するための出力装置４とを備えている場合を例にして示している。入力装置１は、例えば、キーボードなどの入力装置であり、出力装置４は、例えば、ディスプレイ装置などの出力装置である。
【０１２６】
普及予測装置５は、テストデータ生成部５１と、学習データ生成部５２と、分類器生成部５３と、テストデータラベル判定部５４と、現時刻更新部５５とを備える。
【０１２７】
本変形例では、テストデータラベル判定部５４は、ステップＢ４での判定結果が実際の利用開始情報と異なっている個別データの利用開始情報を上書きして更新する。判定結果が実際の利用開始情報と異なっている場合とは、個別データの利用開始情報が未利用を示していて、判定結果が正である場合である。この場合、テストデータラベル判定部５４は、顧客ＤＢ２に記憶されている顧客データ内におけるその個別データの利用開始情報を現時刻に一定の時間（Ｔとする。）分を加算した時刻に更新する。このように時刻を更新して、その個別データが、顧客がその時刻から商品またはサービスの利用を開始したことを表すようにする。
【０１２８】
現時刻更新部５５は、テストデータラベル判定部５４がテストデータに対する判定を行った後、現時刻を一定の時間（Ｔ）分増加した時刻を新たな現時刻とするように、現時刻を更新する。現時刻更新部５５も、例えば、普及予測プログラムに従って動作するＣＰＵによって実現される。
【０１２９】
テストデータ生成部５１、学習データ生成部５２、分類器生成部５３、およびテストデータラベル判定部５４は、更新後の現時刻が定められた期間内であることを条件に、更新後の顧客データおよび現時刻を用いて、第２の実施形態と同様の処理を繰り返す。
【０１３０】
次に、本変形例の動作について説明する。図１５は、第２の実施形態の変形例における処理経過の例を示すフローチャートである。本変形例では、普及予測装置５に現時刻、影響度の他に、普及予測の対象とする期間（以下、予測期間と記す。）が入力される。予測期間として、例えば、普及予測の対象とする期間の最後の時刻が入力されてもよい。
【０１３１】
その後、ステップＢ１〜Ｂ４の処理を行う。ステップＢ１〜Ｂ４の処理は、第２の実施形態で既に説明したステップＢ１〜Ｂ４（図１２参照）と同様の処理である。
【０１３２】
ステップＢ４の後、テストデータラベル判定部５４は、個別データの利用開始情報が未利用を示していて、ステップＢ４での判定結果として正がラベル付けられるという結果が得られた個別データの利用開始情報を更新する（ステップＢ５）。テストデータラベル判定部５４は、顧客データ内のその個別データの利用開始情報を、現時刻に一定の時間Ｔを加算した時刻に更新する。
【０１３３】
次に、現時刻更新部５５は、現時刻を更新する（ステップＢ６）。ステップＢ６において、現時刻更新部５５は、現時刻に一定の時間Ｔを加算した時刻を新たな現時刻とする。
【０１３４】
そして、現時刻更新部５５は、更新後の現時刻が予測期間内であるか否かを判定する（ステップＢ７）。更新後の現時刻が予測期間内であると判定した場合（ステップＢ７におけるＹｅｓ）、普及予測装置５はステップＢ１以降の処理を繰り返す。
【０１３５】
また、更新後の現時刻が予測期間を越えると判定した場合（ステップＢ７におけるＮｏ）、現時刻更新部５５は、予測結果を出力装置４に出力させる（ステップＢ８）。例えば、各顧客毎の個別データにおける利用開示情報を、個々の顧客の予測される利用開始時期として出力装置４に出力させてもよい。また、商品またはサービスの普及曲線を出力装置４に出力させてもよい。普及予測システムが出力装置４としてディスプレイ装置などの表示装置を備えていて、現時刻更新部５５が出力装置４に予測結果を表示させてもよい。あるいは、普及予測システムが出力装置４として印刷装置を備えていて、現時刻更新部５５が出力装置４に予測結果を印刷させてもよい。
【０１３６】
普及曲線を出力する場合、例えば、ステップＢ１に移行する毎に、現時刻更新部５５（他の構成要素でもよい）が、現時刻において商品またはサービスの利用を開始している顧客の個別データ数を顧客ＤＢの中からカウントし、そのカウント値と現時刻とを対応付けて記憶していけばよい。そして、ステップＢ８において、例えば、現時刻を横軸にとり、カウント値を縦軸にとって、現時刻の変化に伴うカウント値の推移を示すグラフを作成し、そのグラフを出力装置４に出力させてもよい。このカウント値は、利用を開始した顧客数に相当する。
【０１３７】
第２の実施形態の変形例では、顧客の属性を示す項目を含む個別データの集合に対してラベル付けを行い、さらに重み付けをして得た学習データから分類器を生成し、その分類器でテストデータに対する予測を行うことを、現時刻を更新しながら繰り返す。従って、顧客の属性（特徴）の違いを考慮して、商品やサービスの普及の程度を高い精度で予測することができる。
【０１３８】
また、顧客のデータを増やすほど普及の予測精度を向上させることができる。
【０１３９】
また、学習データ生成時に用いる関数として、現時刻で商品またはサービスの利用を開始している顧客数と現時刻で未だその商品またはサービスの利用を開始していない顧客数との比率や、あるいは、現時刻で商品またはサービスの利用を開始している顧客数と全顧客数との比率を、影響度の係数とする関数を用いることにより、影響度だけでなく商品やサービスの普及率に応じても関数値を定め、重み付けを行うことができる。その結果、予測の精度をより高めることができる。
【０１４０】
また、学習データ生成時に用いる関数として、影響度の係数として、顧客の属性に応じた係数も含む関数を用いてもよい。例えば、学習データ生成時に、以下のような関数を用いて重み付けを行ってもよい。
【０１４１】
影響度×顧客係数×（現時刻の未利用者数）／（現時刻の利用者数）
【０１４２】
学習データ生成部５２は、個別データにおける顧客の属性を示す項目の内容に応じて顧客係数を選択し、その顧客係数を用いて、例えば、上記のような関数により関数値を計算してもよい。このように、顧客毎に個別に重み付けを行ってもよい。
【０１４３】
また、上記の変形例では、顧客ＤＢ２に記憶されている個別データの利用開始情報を上書きして更新する場合を例にして説明したが、個別データに当初から含まれている利用開始情報のコピーを利用開始時期予測情報としてコピーしておき、そのコピーを更新するようにしてもよい。この場合、実績と予測値とをそれぞれ保持しておくことができる。
【０１４４】
実施形態３．
本実施形態の普及予測システムは、影響度を算出し、その影響度を用いて、予測対象の時刻において各顧客が商品またはサービスの利用を開始するか否かを判定する。図１６は、本実施形態の普及予測システムの例を示すブロック図である。本実施形態の普及予測システムは、顧客ＤＢ２と、影響度推定装置３と、普及予測装置５とを備える。また、入力装置１および出力装置４を備えていてもよい。影響度推定装置３は、第１の実施形態で説明した影響度推定装置３と同様に動作する。また、普及予測装置５は、第２の実施形態で説明した普及予測装置５と同様に動作する。顧客ＤＢ２、入力装置１、および出力装置４も、第１の実施形態および第２の実施形態で説明した顧客ＤＢ２、入力装置１、出力装置４と同様である。
【０１４５】
顧客ＤＢ２は、顧客データを記憶する記憶手段であり、顧客ＤＢ２が記憶する顧客データも、第１の実施形態および第２の実施形態における顧客データと同様である。すなわち、顧客データは、利用開始情報と、利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である。
【０１４６】
影響度推定装置３は、例えば入力装置１を介して、現時刻、時刻間隔、および複数の仮影響度を入力される。影響度推定装置３は、その現時刻、時刻間隔、および複数の仮影響度を用いて影響度を推定し、その影響度を普及予測装置５に渡す。
【０１４７】
普及予測装置５は、例えば入力装置１を介して、現時刻を入力される。普及予測装置５は、その現時刻と、影響度推定装置３が定めた影響度とを用いて、テストデータに対する予測を行う。
【０１４８】
本実施形態において、入力される現時刻は、影響度推定装置３において影響度の推定対象時刻としても用いられる。
【０１４９】
図１７は、本実施形態の普及予測システムを詳細に示すブロック図である。ただし、入力装置１および出力装置４は省略している。
【０１５０】
影響度推定装置３は、現時刻データ生成部３１と、前時刻データ群生成部３２と、前時刻分類器群生成部３３と、誤差群算出部３４と、影響度算出部３５とを備える。普及予測装置５は、テストデータ生成部５１と、学習データ生成部５２と、分類器生成部５３と、テストデータラベル判定部５４とを備える。
【０１５１】
現時刻データ生成部３１、前時刻データ群生成部３２、前時刻分類器群生成部３３、誤差群算出部３４、影響度算出部３５は、第１の実施形態と同様に動作する。すなわち、ステップＡ１〜Ａ１０（図３参照。）を実行し、影響度を定める。影響度算出部３５は、その影響度を学習データ生成部５２に渡す。
【０１５２】
テストデータ生成部５１、学習データ生成部５２、分類器生成部５３、テストデータラベル判定部５４は、第２の実施形態と同様に動作する。すなわち、ステップＢ１〜Ｂ４（図１３参照）を実行し、個々の顧客毎に、商品またはサービスの利用が開始されるか否かを判定する。
【０１５３】
なお、影響度算出部３５は、１つの影響度を定めて、普及予測装置５は、その影響度を用いて、ステップＢ１以降の処理を行えばよい。
【０１５４】
第１の実施形態で説明した影響度推定装置３に関する種々の変形が本実施形態の影響度推定装置３に適用されてもよい。また、第２の実施形態で説明した普及予測装置５に関する種々の変形が本実施形態の普及予測装置５に適用されていてもよい。第２の実施形態の変形例（図１４参照）と同様に、普及予測装置５が現時刻更新部５５を備え、ステップＢ１〜Ｂ８を実行する構成であってもよい。例えば、普及曲線を出力装置４に出力させてもよい。
【０１５５】
現時刻データ生成部３１、前時刻データ群生成部３２、前時刻分類器群生成部３３、誤差群算出部３４、影響度算出部３５、テストデータ生成部５１、学習データ生成部５２、分類器生成部５３、およびテストデータラベル判定部５４は、例えば、普及予測プログラムに従って動作するＣＰＵによって実現される。普及予測システムが現時刻更新部５５を備える場合、現時刻更新部５５もそのＣＰＵによって実現されてよい。
【０１５６】
本実施形態においても、第２の実施形態と同様の効果を得ることができる。特に、影響度推定装置３が影響度を用いて処理を行うので、予測精度をより高くすることができる。
【０１５７】
また、第２の実施形態および第３の実施形態では、普及予測システムが顧客ＤＢ２を備える場合を説明したが、顧客ＤＢ２が普及予測システムの外部に設けられ、普及予測システムがその顧客ＤＢ２を参照して処理を行う構成であってもよい。
【０１５８】
実施形態４．
図１８は、本発明の第４の実施形態の普及予測システムの例を示すブロック図である。第４の実施形態の普及予測システムは、顧客ＤＢ２と、閾値関数推定装置６と、普及予測装置７とを備える。また、第１の実施形態から第３の実施形態で説明した入力装置１および出力装置４と同様の入力装置および出力装置を備えていてもよい。顧客ＤＢ２は、第１の実施形態から第３の実施形態で説明した顧客ＤＢ２と同様である。
【０１５９】
顧客ＤＢ２は、顧客データを記憶する記憶手段であり、顧客ＤＢ２が記憶する顧客データも、第１の実施形態から第３の実施形態における顧客データと同様である。すなわち、顧客データは、利用開始情報と、利用開始情報以外の顧客の属性を表す一つ以上の項目とを含む顧客毎の個別データの集合である。
【０１６０】
本実施形態において、閾値関数推定装置６は、商品またはサービスの普及率と閾値との関係を示す閾値関数を推定する。閾値関数推定装置６は、複数の時刻において、普及率および閾値を求め、それぞれの時刻毎の普及率および閾値から閾値関数を推定する。この閾値とは、個別データに第１ラベルがラベル付けられるか否かを判定するための閾値である。普及予測装置７は、顧客ＤＢ２に記憶された顧客データからテストデータを生成し、テストデータ内の個別データに第１のラベルがラベル付けられる確からしさのスコアを計算する。また、普及予測装置７は、商品またはサービスの普及率も計算し、閾値関数推定装置６によって推定された閾値関数にその普及率を代入して閾値を算出する。普及予測装置７は、スコアがその閾値以上である個別データに対するラベルは第１ラベルであり、スコアがその閾値未満である個別データに対するラベルは第２ラベルであると判定する。以下、既に説明した実施形態と同様に、第１ラベルを正（または＋）と記し、第２ラベルを負（または−）と記す。
【０１６１】
閾値関数推定装置６は、基準時刻データ群生成部６１と、閾値推定前時刻データ群生成部６２と、閾値推定前時刻分類器群生成部６３と、誤差群算出部６４と、関数推定部６５とを備える。
【０１６２】
基準時刻データ群生成部６１は、閾値の推定対象時刻を定めるための複数の基準時刻と、その各基準時刻の一定時間前を指定するための時刻間隔と、複数の仮閾値とが入力される。キーボード等の入力装置（図１８において図示せず。）を介して基準時刻データ群生成部６１に、複数の基準時刻、時刻間隔および複数の仮閾値が入力されてもよい。
【０１６３】
本実施形態における基準時刻とは、閾値の推定対象時刻となる後述の閾値推定前時刻を定めるための基準時刻であり、後述の基準時刻データを用いて各閾値推定前時刻毎の閾値が決定される。なお、それぞれの閾値推定前時刻毎に普及率も計算され、それぞれの閾値推定前時刻における普及率と閾値との関係から閾値関数が推定される。
【０１６４】
時刻間隔は、入力された基準時刻の一定時間前を指定するための時間である。入力される仮閾値は、閾値関数推定装置６で求めようとしている閾値の候補である。各仮閾値は、例えば、０以上１以下の数値である。
【０１６５】
基準時刻データ群生成部６１に入力される基準時刻の数をＵ個とし、仮閾値の数をＶ個とする。
【０１６６】
基準時刻データ群生成部６１は、１つの基準時刻に対して、１つの基準時刻データを生成する。従って、Ｕ個の基準時刻データが生成される。基準時刻データは、基準時刻で商品またはサービスの利用を介している顧客の個別データに正（第１ラベル）をラベル付け、基準時刻で商品またはサービスの資料を開始していない顧客の個別データに負（第２ラベル）をラベル付けたデータである。基準時刻データ群生成部６１は、顧客ＤＢ２を用いて（すなわち、顧客ＤＢ２に記憶された顧客データに基づいて）、基準時刻データを生成する。個々の基準時刻データの生成処理は、第１の実施形態における現時刻データの生成処理と同様である。また、基準時刻データ群生成部６１は、それぞれの基準時刻から時刻間隔前の時刻（基準時刻から時刻間隔分遡った時刻）を求める。この時刻を、閾値推定前時刻と記す。基準時刻データ群生成部６１は、入力された各基準時刻毎に、基準時刻から時刻間隔を減算して閾値推定前時刻を計算する。従って、閾値推定前時刻もＵ個求められる。
【０１６７】
閾値推定前時刻データ群生成部６２は、１つの閾値推定前時刻に対して、１つの閾値推定前時刻データを生成する。従って、Ｕ個の閾値推定前時刻データが生成される。閾値推定前時刻データ群生成部６２は、閾値推定前時刻毎に、閾値推定前時刻と顧客ＤＢ２に記憶されている顧客データとに基づいて、閾値推定前時刻データを生成する。閾値推定前時刻データは、閾値推定前時刻で商品またはサービスの利用を開始している顧客の個別データベースに正をラベル付け、閾値推定前時刻で商品またはサービスの利用を開始していない顧客の個別データに負をラベル付けたデータである。閾値推定前時刻データは、重み付けが行われていない点で、第１の実施形態で説明した前時刻データと異なる。
【０１６８】
また、閾値推定前時刻データ群生成部６２は、閾値推定前時刻データを用いて普及率を計算する。普及率は、顧客数に対する、閾値推定前時刻までに商品またはサービスの利用を開始した顧客数の割合である。閾値推定前時刻データ群生成部６２は、閾値推定前時刻データ毎に普及率を計算する。よって、普及率もＵ個計算される。閾値推定前時刻データ群生成部６２は、関数推定部６５で用いるために閾値推定前時刻データ毎のＵ個の普及率を記憶しておいてもよい。
【０１６９】
閾値推定前時刻分類器群生成部６３は、１つの閾値推定前時刻データに基づいて、１つの分類器を生成する。従って、Ｕ個の分類器が生成される。本実施形態における分類器は、顧客の個別データに第１ラベルがラベル付けられる確からしさのスコアを定めるルールである。
【０１７０】
誤差群算出部６４は、閾値推定前時刻分類器群生成部６３で生成された分類器を用いて、基準時刻データ内の各個別データのスコアを計算し、スコアと仮閾値とを比較することで、各個別データのラベルを予測する。このスコアは、個別データに第１ラベルがラベル付けられる確からしさのスコアである。誤差群算出部６４は、このラベル予測を分類器毎に行う。また、一つの分類器でのラベル予測では、入力されたＶ個の仮閾値毎にラベル予測を行う。誤差群算出部６４は、ある分類器および仮閾値を用いてラベル予測を行う場合、その分類器で基準時刻データ内の各個別データのスコアを計算し、スコアがその仮閾値以上となっている個別データに対するラベルが正であり、スコアがその仮閾値未満となっている個別データに対するラベルが負であると予測する。また、その基準時刻データ内の各個別データには、既に実際にラベル付けが行われている。誤差群算出部６４は、分類器および仮閾値を用いて予測したラベルと、実際に基準時刻データでラベル付けられているラベルとの誤差を算出する。この予測したラベルと実際のラベルとの誤差の算出は、第１の実施形態における誤差群算出部３４が予測したラベルと実際のラベルとの誤差を算出する処理と同様である。Ｕ個の分類器が生成され、各分類器に関しそれぞれＶ個の仮閾値について誤差を算出するので、Ｕ×Ｖ個の誤差を算出することになる。
【０１７１】
関数推定部６５は、Ｕ個の分類器それぞれに対し、Ｖ個の仮閾値毎に算出された誤差のうち、最小の誤差を特定し、最小の誤差に対応する仮閾値を分類器に対応する閾値（すなわち、閾値推定前時刻に対応する閾値）として定める。具体的には、最小の誤差に対応する仮閾値の数が一つである場合、関数推定部６５は、その仮閾値を閾値として定める。また、最小の誤差に対応する仮閾値が複数個存在する場合には、その複数の仮閾値に基づいて、閾値推定前時刻に対応する閾値を定める。例えば、最小の誤差に対応する仮閾値が複数個存在する場合、その複数の仮閾値の平均値を計算し、その平均値を閾値推定前時刻に対応する閾値と定める。以下、最小の誤差に対応する仮閾値が複数個存在する場合、その仮閾値の平均値を閾値と定める場合を例にして説明する。
【０１７２】
分類器毎に閾値を定めるので、各閾値推定前時刻に対応する閾値が定まる。また、閾値推定前時刻データ群生成部６２によって、閾値推定前時刻毎の普及率が計算されている。よって、閾値推定前時刻毎の閾値および普及率の組がＵ組得られる。関数推定部６５は、この閾値および普及率の組から閾値関数を推定する。
【０１７３】
閾値関数推定装置６が備える基準時刻データ群生成部６１、閾値推定前時刻データ群生成部６２、閾値推定前時刻分類器群生成部６３、誤差群算出部６４、および関数推定部６５は、例えばプログラムに従って動作するＣＰＵによって実現される。すなわち、閾値関数推定装置６に設けられた記憶装置からプログラムを読み込んだＣＰＵが、基準時刻データ群生成部６１、閾値推定前時刻データ群生成部６２、閾値推定前時刻分類器群生成部６３、誤差群算出部６４、および関数推定部６５として動作してもよい。
【０１７４】
普及予測装置７は、テストデータ生成部７１と、ラベル付けデータ生成部７２と、分類器生成部７３と、テストデータラベル判定部７４とを備える。
【０１７５】
普及予測装置７には現時刻が入力される。この現時刻は、第２の実施形態で説明した現時刻データと同様に、顧客が商品またはサービスを利用し始めたか否かの判定対象時刻を定める。入力装置（図１８において図示略）を介して普及予測装置７に現時刻が入力されてもよい。
【０１７６】
テストデータ生成部７１は、現時刻と顧客ＤＢ２とに基づいて、現時刻に利用を開始していない顧客の個別データを含むテストデータを生成する。以下、テストデータが、現時刻で商品またはサービスの利用を開始していない顧客の個別データのみを含む場合を例にして説明する。
【０１７７】
ラベル付けデータ生成部７２は、現時刻および顧客ＤＢ２に記憶されている顧客データに基づいて、ラベル付けデータを生成する。ラベル付けデータは、現時刻で商品またはサービスの利用を開始している顧客の個別データに正（第１ラベル）をラベル付け、現時刻で商品またはサービスの利用を開始していない顧客の個別データに負（第２ラベル）をラベル付けたデータである。ラベル付けデータは、重み付けが行われていない点で、第２の実施形態で説明した学習データと異なる。重み付けを行うか否かという点以外では、本実施形態におけるラベル付けデータ生成処理と、第２の実施形態における学習データ生成処理は同様である。
【０１７８】
また、ラベル付けデータ生成部７２は、生成したラベル付けデータを用いて普及率を計算する。
【０１７９】
分類器生成部７３は、ラベル付けデータ生成部７２が生成したラベル付けデータを用いて分類器を生成する。この分類器は、閾値推定前時刻分類器群生成部６３が生成する分類器と同じく、顧客の個別データに第１ラベルがラベル付けられる確からしさのスコアを定めるルールである。
【０１８０】
テストデータラベル判定部７４は、分類器生成部７３で生成された分類器を用いて、テストデータ内の各個別データのスコアを計算する。また、テストデータラベル判定部７４は、関数推定部６５で推定された閾値関数と、ラベル付けデータから計算された普及率とを用いて、閾値を計算する。すなわち、閾値関数に普及率を代入して閾値を計算する。そして、スコアとその閾値とを比較して、テストデータラベル内の各個別データのラベルを判定する。具体的には、テストデータラベル判定部７４は、テストデータラベル内の各個別データのうち、スコアが閾値以上となっている個別データに対するラベルが正であると判定し、スコアが閾値未満の個別データに対するラベルが第２ラベルであると判定する。正と判定された個別データの顧客は、現時刻の次の時刻で商品またはサービスの利用を開始すると予測されることになる。負と判定された個別データの顧客は、現時刻の次の時刻ではまだ商品またはサービスの利用を開始しないと予測されることになる。なお、現時刻の次の時刻とは、現時刻に、定められた一定時間を加算した時刻である。
【０１８１】
テストデータラベル判定部７４は、テストデータ内の各個別データに対するラベルの予測結果（判定結果）を、出力装置（図１８において図示せず。）に出力させてもよい。
【０１８２】
普及予測装置７が備えるテストデータ生成部７１、ラベル付けデータ生成部７２、分類器生成部７３、およびテストデータラベル判定部７４は、例えば普及予測プログラムに従って動作するＣＰＵによって実現される。すなわち、普及予測装置７に設けられた記憶装置から普及予測プログラムを読み込んだＣＰＵがテストデータ生成部７１、ラベル付けデータ生成部７２、分類器生成部７３、およびテストデータラベル判定部７４として動作してもよい。
【０１８３】
また、閾値関数推定装置６および普及予測装置７が同一の情報処理装置によって実現されてもよい。そして、基準時刻データ群生成部６１、閾値推定前時刻データ群生成部６２、閾値推定前時刻分類器群生成部６３、誤差群算出部６４、関数推定部６５、テストデータ生成部７１、ラベル付けデータ生成部７２、分類器生成部７３、およびテストデータラベル判定部７４が、普及予測プログラムに従って動作するＣＰＵによって実現されていてもよい。
【０１８４】
次に、動作について説明する。
図１９および図２０は、本実施形態における閾値関数推定装置６の処理経過の例を示すフローチャートである。例えば、入力装置（図１８において図示せず。）を介して基準時刻データ群生成部６１に複数の基準時刻、時刻間隔、および複数の仮閾値が入力されると、普及予測システムは以下のように動作する。なお、複数の基準時刻をＣＴｉｍｅ［ｔ］と記す。変数ｔは、入力された複数の基準時刻を順番に指定するための変数であり、ｔ＝１，・・・，Ｕである。例えば、ｔ＝１であれば、１番目の基準時刻を指定していることを意味し、ＣＴｉｍｅ［１］は１番目の基準時刻を表している。時刻間隔をΔｔと記す。また、複数の仮閾値をＦａｌｓｅＴｈｒ［ｉ］と記す。ここで、変数ｉは、入力された複数の仮閾値を順番に指定するための変数であり、ｉ＝１，・・・，Ｖである。例えば、ｉ＝１であれば、１番目の仮閾値を指定していることを意味し、ＦａｌｓｅＴｈｒ［１］は１番目の仮閾値を表している。入力される基準時刻の数をＵ個とし、仮閾値の数をＶ個としている。
【０１８５】
基準時刻データ群生成部６１は、基準時刻を指定する変数ｔを初期化してｔ＝１とする。ｔ＝１であるので、１番目の基準時刻ＣＴｉｍｅ［１］を選択していることになる。基準時刻データ群生成部６１は、ＣＴｉｍｅ［１］から時刻間隔Δｔを減算して、閾値推定前時刻を求める。すなわち、閾値推定前時刻をＣＴｉｍｅ［１］−Δｔに設定する（以上、ステップＣ１）。次に、基準時刻データ群生成部６１は、ｔ≦Ｕであるか否かを判定し（ステップＣ２）。ｔ≦Ｕであれば（ステップＣ２におけるＹｅｓ）、ステップＣ３に移行し、ｔ＞Ｕであれば（ステップＣ２におけるＮｏ）、ステップＣ１８に移行する。
【０１８６】
ステップＣ２でｔ≦Ｕと判定した場合、基準時刻データ群生成部６１は、ｔにより定まる基準時刻ＣＴｉｍｅ［ｔ］と、顧客ＤＢ２に記憶された顧客データとに基づいて、基準時刻データを生成する（ステップＣ３）。基準時刻データ群生成部６１は、顧客ＤＢ２に記憶された顧客データを読み込み、基準時刻ＣＴｉｍｅ［ｔ］で商品またはサービスの利用を開始している顧客の個別データ（利用開始情報がＣＴｉｍｅ［ｔ］以前の時刻を表している個別データ）に正をラベル付け、基準時刻ＣＴｉｍｅ［ｔ］で商品またはサービスの利用を開始していない顧客の個別データに負をラベル付けることによって、基準時刻データを生成する。このとき、基準時刻データ群生成部６１は、例えば、顧客ＤＢ２に記憶されている顧客データに属する個別データのうち、ＣＴｉｍｅ［ｔ］に対応する閾値推定前時刻（ＣＴｉｍｅ［ｔ］−Δｔ）で商品またはサービスの利用を開始していた顧客の個別データを除外して基準時刻データを生成する。すなわち、利用開始情報が閾値推定前時刻以前の時刻となっている個別データを顧客データから除外し、残りの個別データに対して正または負のラベル付けを行って、基準時刻データを生成する。以下、閾値推定前時刻で利用開始していた顧客の個別データを除外して基準時刻データを生成する場合を例にして説明する。ステップＣ３の基準時刻データ生成処理は、第１の実施形態における現時刻データ生成処理と同様の処理である。
【０１８７】
ステップＣ３の次に、閾値推定前時刻データ群６２は、変数ｔにより定まる閾値推定前時刻（ＣＴｉｍｅ［ｔ］−Δｔ）と、顧客ＤＢ２に記憶された顧客データとに基づいて、閾値推定前時刻データを生成する（ステップＣ４）。閾値推定前時刻データ群６２は、顧客ＤＢ２に記憶された顧客データを読み込み、閾値推定前時刻以前で商品またはサービスの利用を開始している顧客の個別データに正をラベル付け、閾値推定前時刻で商品またはサービスの利用を開始していない顧客の個別データに負をラベル付けることにより、閾値推定前時刻データを生成する。すなわち、使用開始情報が閾値推定前時刻以前の時刻となっている個別データに正をラベル付け、利用開始情報が前時刻以前の時刻でない個別データに負をラベル付けて、閾値推定前時刻データを生成する。
【０１８８】
次に、閾値推定前時刻データ群６２は、その閾値推定前時刻データを用いて普及率を計算する（ステップＣ５）。普及率は、顧客数に対する、閾値推定前時刻までに商品またはサービスの利用を開始した顧客数の割合であり、閾値推定前時刻データ中の各個別データは各顧客に対応している。従って、閾値推定前時刻データ中の全個別データ数に対する、閾値推定前時刻データ中の正がラベル付けられた個別データの数の割合が普及率となる。閾値推定前時刻データ群６２は、閾値推定前時刻データ中の正がラベル付けられた個別データの数を、閾値推定前時刻データ中の全個別データ数で除算して普及率を求めればよい。この普及率を変数ｔを用いてＤ［ｔ］と記す。閾値推定前時刻データ群６２は、計算した普及率Ｄ［ｔ］を記憶しておく。
【０１８９】
ステップＣ５の後、閾値推定前時刻分類器群生成部６３は、閾値推定前時刻データを用いて、分類器を生成する（ステップＣ６）。例えば、分類器生成部６３は、重回帰分析、回帰木、ニューラルネットワーク、サポートベクタマシン、ベイジアンネットワーク、決定木のアンサンブル学習などの出力が連続値であるデータマイニング手法のいずれかあるいはその組合せにより分類器を生成すればよい。
【０１９０】
閾値推定前時刻分類器群生成部６３は、例えば、アンサンブル学習の一種であるバギングを決定木に適用して、複数の決定木を生成し、その複数の決定木の組を分類器としてもよい。この場合の分類器作成処理の例を説明する。閾値推定前時刻分類器群生成部６３は、閾値推定前時刻データから重複を許して一部の個別データを取り出して、その個別データの集合を用いて決定木を生成する。この処理を複数回繰り返すことにより、複数の決定木を生成し、その複数の決定木の組み合わせを一つの分類器とする。例えば、閾値推定前時刻データから取り出す個別データ数をＫ個とすると、閾値推定前時刻分類器群生成部６３は、閾値推定前時刻データから重複を許してＫ個の個別データを取り出し、Ｋ個の個別データから決定木を生成することを繰り返せばよい。例えば、この繰り返し処理を５００回行えば、５００個の決定木が作成される。
【０１９１】
以下の説明では、上記のようにバギングにより複数の決定木を生成し、その複数の決定木を分類器とする場合を例にする。
【０１９２】
取り出した個別データから決定木を生成する処理は、第１の実施形態で前時刻データ群生成部３２の分類器生成動作として例示した処理と同様である。すなわち、閾値推定前時刻分類器群生成部６３は、どの項目（顧客の属性を表す項目）で最初に分割するのかを決定する。このとき、項目１〜Ｎの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択すればよい。評価値として、例えば、分割前のノードのエントロピーと、分割後のエントロピーの差を用いればよい。閾値推定前時刻分類器群生成部６３は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次繰り返し、所定の条件が満たされたときには、ノードの分割を停止する。閾値推定前時刻分類器群生成部６３は、このようにして得た木構造の決定木に対して、枝刈りを行うことにより、決定木を生成する。上記の所定の条件や枝刈りの処理も、第１の実施形態で示した所定の条件や枝刈り処理と同様である。
【０１９３】
また、閾値推定前時刻データから取り出すＫ個の個別データの組み合わせが異なることにより、生成される決定木も異なる。個別データに対して上記のように得られた複数の決定木を適用し、その個別データのスコア（ラベルが正となる確からしさ）を求める場合、個々の決定木毎に、個別データに対するラベルの判定を行い、正（利用する）と判定された回数を、判定回数で除算することによってスコアを求める。例えば、分類器として５００個の決定木を生成した場合、個別データに対して、それぞれの決定木を用いてラベル判定を行う。その結果、正と判定された回数をＸ回とすると、スコアとしてＸ／５００を求める。
【０１９４】
ステップＣ６において分類器が生成されると、誤差群算出部６４は、誤差の最小値を示す変数ＥｒｒｏｒＭｉｎの初期値を設定し、変数ｉ，ｐに対して、ｉ＝１，ｐ＝０という初期値を設定する（ステップＣ７）。ＥｒｒｏｒＭｉｎの初期値は、閾値算出部６４が計算する誤差のとり得る値の最大値、あるいは、その誤差のとり得る値に比べて十分に大きな値であればよい。変数ｐは、最小の誤差に対応する仮閾値を指定するための変数である。例えば、最小語の誤差に対応する仮閾値がｐ個あったとすると、その最小誤差に対応する仮閾値の１番目からｐ番目までをそれぞれ、Ｔｈｒｅｓ［１］，・・・，Ｔｈｒｅｓ［ｐ］とする。
【０１９５】
ステップＣ７の次に、誤差群算出部６４は、仮閾値の番号ｉが仮閾値の数Ｖ以下であるか否かを判定する（ステップＣ８）。ｉ≦Ｖならば（ステップＣ８のＹｅｓ）、ステップＣ９に移行し、ｉ＞Ｖならば（ステップＣ８のＮｏ）、ステップＣ１６に移行する。
【０１９６】
ステップＣ９では、誤差群算出部６４は、ステップＣ６で生成された閾値推定前時刻分類器と、仮閾値ＦａｌｓｅＴｈｒ［ｉ］とを用いて、ステップＣ３で生成された基準時刻データ内の各個別データのラベルを予測する（ステップＣ９）。本例では、誤差群算出部６４は、基準時刻データ内の各個別データ毎に、その個別データにおける顧客の属性を示す項目と、分類器として生成されたそれぞれの決定木とを照合し、その個別データに対するラベルを判定する。決定木は複数存在するので、誤差群算出部６４は、この判定を決定木毎に行い、その判定回数（決定木数）に対する正と判定された回数の割合を個別データのスコアとして求める。すなわち、誤差群算出部６４は、一つの個別データに関し、「正と判定された回数／判定回数」を計算し、その値をスコアとする。さらに、誤差群算出部６４は、変数ｉにより定まる仮閾値ＦａｌｓｅＴｈｒ［ｉ］とそのスコアとを比較し、スコアがＦａｌｓｅＴｈｒ［ｉ］以上であれば、個別データに対するラベルが正であると予測し、スコアがＦａｌｓｅＴｈｒ［ｉ］未満であれば、個別データに対するラベルが負であると予測する。
【０１９７】
次に、誤差群算出部６４は、基準時刻データ内の各個別データにラベル付けられるラベルの予測結果と、基準時刻データとの誤差を算出する（ステップＣ１０）。すなわち、基準時刻データ内の各個別データには、基準時刻データ生成時に正または負のラベルがラベル付けられているので、ステップＣ９での予測結果と、実際の基準時刻データでラベル付けられているラベルとの誤差を予測する。この誤差をＥｒｒｏｒと記す。
【０１９８】
誤差群算出部６４は、ステップＣ１０において、例えば、基準時刻データ内の個別データ毎に予測したラベルと、実際に基準時刻データの各個別データにラベル付けられているラベルとを比較し、両者が異なっている個別データ数をＥｒｒｏｒとしてもよい。
【０１９９】
あるいは、誤差群算出部６４は、基準時刻データ内の個別データのうちステップＣ９で正がラベル付けられると予測した個別データの数と、ステップＣ３で生成された基準時刻データにおいて実際に正がラベル付けられた個別データの数との差の絶対値をＥｒｒｏｒとしてもよい。
【０２００】
ステップＣ１０の後、関数推定部６５は、ステップＣ１０で計算された誤差Ｅｒｒｏｒと最小誤差値ＥｒｒｏｒＭｉｎとを比較し、ＥｒｒｏｒがＥｒｒｏｒＭｉｎ未満であるか否かを判定する（ステップＣ１１）。ＥｒｒｏｒがＥｒｒｏｒＭｉｎ未満である場合（ステップＣ１１におけるＹｅｓ）、関数推定部６５は、ｐを０に初期化し、ＥｒｒｏｒＭｉｎにＥｒｒｏｒを代入する（ステップＣ１３）。また、ステップＣ１３において、関数推定部６５は、変数Ｓｕｍを０に初期化する。なお、変数Ｓｕｍは、誤差が最小となる仮閾値の和を格納するための変数であり、その仮閾値の平均値を計算するために用いられる。ＥｒｒｏｒがＥｒｒｏｒＭｉｎ未満ということは、これまで最小としていた誤差よりもさらに小さい最小値が見つかったことを意味する。この場合、ステップＣ１３において、その最小値でＥｒｒｏｒＭｉｎを更新し、また、その誤差に対応する仮閾値が複数ある場合に各仮閾値を個別に指定するための変数ｐを初期化している。
【０２０１】
ステップＣ１３の後、関数推定部６５は、ｐの値を１インクリメントし、Ｓｕｍの値に仮閾値ＦａｌｓｅＴｈｒ［ｉ］を加算することによって、Ｓｕｍを更新する（ステップＣ１４）。すなわち、Ｓｕｍ＋ＦａｌｓｅＴｈｒ［ｉ］の値を新たなＳｕｍの値とするようにＳｕｍを更新する。また、ＥｒｒｏｒがＥｒｒｏｒＭｉｎ以上であると判定した場合（ステップＣ１１におけるＮｏ）、関数推定部６５は、ＥｒｒｏｒがＥｒｒｏｒＭｉｎと等しいか否かを判定する（ステップＣ１２）。ここで等しいと判定した場合（ステップＣ１２におけるＹｅｓ）にも、関数推定部６５は、ｐの値を１インクリメントし、Ｓｕｍの値にＦａｌｓｅＴｈｒ［ｉ］を加算してＳｕｍを更新する（ステップＣ１４）。
【０２０２】
ステップＣ１３からステップＣ１４に移行した場合、ｐ＝１であり、現在着目している仮閾値ＦａｌｓｅＴｈｒ［ｉ］を、誤差が最小となる１番目の仮閾値とする。また、ステップＣ１２でＥｒｒｏｒ＝ＥｒｒｏｒＭｉｎとなり、ステップＣ１４に移行した場合、ｐは２以上の値となる。この場合、既に最小の誤差に対応する仮閾値は１つ以上見つかっていて、関数推定部６５は、現在着目している仮閾値ＦｌａｓｅＴｈｒ［ｉ］を、誤差が最小となるｐ番目の仮閾値として定めることになる。
【０２０３】
ステップＣ１４の後、あるいは、ステップＣ１２でＥｒｒｏｒがＥｒｒｏｒＭｉｎと等しくないと判定した場合、関数推定部６５は、仮閾値を示す変数ｉをインクリメントする（ステップＣ１５）。その後、ステップＣ１５でインクリメントされたｉを用いて、ステップＣ８移行の処理を繰り返す。
【０２０４】
また、ステップＣ８でｉ＞Ｖと判定された場合、関数推定部６５は、ｔに対応する閾値（Ｔｈｒｅｓ［ｔ］と記す。）の値を、Ｓｕｍ／ｐとする（ステップＣ１６）。すなわち、最小誤差に対応する仮閾値の合計となるＳｕｍをその仮閾値の個数ｐで除算し、平均値を閾値とする。最小誤差に対応する仮閾値が１つしかなければ、Ｓｕｍはその仮閾値の値となっているので、その仮閾値をＴｈｒｅｓ［ｔ］とすることになる。
【０２０５】
ステップＣ１６の後、関数推定部６５は、基準時刻を順番に指定するための変数ｔをインクリメントする（ステップＣ１７）。ステップＣ１７の後、インクリメントされたｔを用いて、ステップＣ２以降の処理を繰り返す。
【０２０６】
ステップＣ２でｔ＞Ｕと判定された場合、関数推定部６５は、各閾値推定前時刻毎に求めた普及率Ｄ［ｔ］および閾値Ｔｈｒｅｓ［ｔ］から、普及率に対する閾値の関数である閾値関数を求める（ステップＣ１８）。ステップＣ１８に移行した時点で、各ｔにおける閾値推定間時刻が計算され、その閾値推定前時刻に対応する普及率Ｄ［ｔ］および閾値Ｔｈｒｅｓ［ｔ］が求められている。すなわち、普及率Ｄ［ｔ］および閾値Ｔｈｒｅｓ［ｔ］の組がＵ組求められている。関数推定部６５は、この普及率Ｄ［ｔ］および閾値Ｔｈｒｅｓ［ｔ］の関係を曲線近似して、閾値関数を求めればよい。例えば、Ｔｈｒｅｓ［ｔ］がＤ［ｔ］を用いて、以下の式（１）で表されるとみなし、式（１）のパラメタａ，ｂを推定すればよい。
【０２０７】
Ｔｈｒｅｓ［ｔ］＝ａ・Ｄ［ｔ］＋ｂ          式（１）
【０２０８】
式（１）において、ａ，ｂは推定すべきパラメタである。普及率Ｄ［ｔ］および閾値Ｔｈｒｅｓ［ｔ］の組み合わせがＵ個求められており、関数推定部６５は、例えば、そのＵ個の組み合わせ（閾値および普及率の組み合わせ）を用いて、最小二乗法によってパラメタａ，ｂを計算してもよい。なお、パラメタａの値は、商品またはサービスの普及率が時間の経過と共に急激に上昇するなら低く、普及率の上昇が緩やかなら高くなる。ａは、例えば、０．５などの値となる。パラメタｂは、普及開始段階での普及率が急激に上昇するなら低く、普及率がほとんど上昇しないなら低くなる値であり、０以上１以下で、例えば０．０５等の小さな値となる。
【０２０９】
また、式（１）は、パラメタが定まっていない閾値関数の例であり、推定すべきパラメタを含む閾値関数は式（１）に限定されない。式（１）に例示する推定すべきパラメタを含む閾値関数は、普及予測システムのユーザに入力されてもよい。あるいは、予め定められていてもよい。
【０２１０】
関数推定部６５は、例えば最小二乗法などによりパラメタａ，ｂを計算することによって、閾値関数を決定する。関数推定部６５は、閾値関数を普及予測装置７（テストデータラベル判定部７４）に入力する。
【０２１１】
図２１は、本実施形態における普及予測装置７の処理経過の例を示すフローチャートである。普及予測装置７は、例えば、関数推定部６５から閾値関数が入力され、また、キーボードなどの入力装置を介して現時刻が入力されると、以下のように動作する。
【０２１２】
テストデータ生成部７１は、テストデータを生成する（ステップＤ１）。この動作は、第２の実施形態におけるステップＢ１と同様である。ここでは、現時刻で商品またはサービスの利用を開始していない顧客の個別データのみを含むテストデータを生成する場合を例にして説明する。テストデータ生成部７１は、顧客ＤＢ２に記憶されている顧客データの中から、現時刻で商品またはサービスの利用を開始していない顧客の個別データのみ（すなわち、利用開始情報が現時刻以前の時刻でない個別データのみ）を読み込み、その個別データの集合をテストデータとする。
【０２１３】
次に、ラベル付けデータ生成部７２は、ラベル付けデータを生成する（ステップＤ２）。ラベル付けデータ生成部７２は、顧客ＤＢ２に記憶された顧客データを読み込み、現時刻以前で商品またはサービスの利用を開始している顧客の個別データに正をラベル付け、現時刻で商品またはサービスの利用を開始していない顧客の個別データに負をラベル付けることにより、ラベル付けデータを生成する。
【０２１４】
次に、ラベル付けデータ生成部７２は、そのラベル付けデータから普及率を計算する（ステップＤ３）。ラベル付けデータ中の各個別データは各顧客に対応しているので、ラベル付けデータ中の全個別データに対する、ラベル付けデータ中の正がラベル付けられた個別データの数の割合が普及率となる。ラベル付けデータ生成部７２は、ラベル付けデータ中の正がラベル付けられた個別データの数を、ラベル付けデータ中の全個別データ数で除算して普及率を求めればよい。
【０２１５】
次に、分類器生成部７３は、ラベル付けデータを用いて分類器を生成する（ステップＤ４）。この分類器は、閾値関数推定装置６の閾値推定前時刻分類器群生成部６３が生成する分類器と同様である。本例では、バギングにより複数の決定木を生成し、その複数の決定木を分類器とするものとする。すなわち、分類器生成部７３は、ラベル付けデータから重複を許して一部の個別データを取り出して、その個別データの集合を用いて決定木を生成する処理を繰り返して、複数の決定木を生成する。ラベル付けデータから取り出す個別データの数をＫ個とすると、分類器生成部７３は、ラベル付けデータから重複を許してＫ個の個別データを取り出し、Ｋ個の個別データから決定木を生成することを繰り返せばよい。
【０２１６】
取り出した個別データから決定木を生成する処理は、第１の実施形態で前時刻データ群生成部３２の分類器生成動作として例示した処理と同様である。分類器生成部７３は、どの項目（顧客の属性を表す項目）で最初に分割するのかを決定する。このとき、項目１〜Ｎの各項目について、分割時の評価値を計算し、その評価値が最大の項目を、分割に最も適した項目として選択すればよい。評価値として、例えば、分割前のノードのエントロピーと、分割後のエントロピーの差を用いればよい。分類器生成部７３は、分割後の各ノードについても、上記と同様の処理を行い、次にどの項目で分割するのかを決定する処理を順次繰り返し、所定の条件が満たされたときには、ノードの分割を停止する。また、分類器生成部７３は、このようにして得た木構造の決定木に対して、枝刈りを行うことにより、決定木を生成する。上記の所定の条件や枝刈りの処理も、第１の実施形態で示した所定の条件や枝刈り処理と同様である。
【０２１７】
テストデータラベル判定部７４は、関数推定部６５が推定した閾値関数に、ステップＤ３で算出した普及率を代入して、閾値を計算する（ステップＤ５）。
【０２１８】
次に、テストデータラベル判定部７４は、ステップＤ４で生成された分類器およびステップＤ５で計算された閾値を用いてテストデータのラベルを予測する（ステップＤ６）。テストデータラベル判定部７４は、ステップＤ６において、テストデータ中の各個別データ毎に以下の処理を行う。テストデータラベル判定部７４は、個別データにおける顧客の属性を示す項目と、分類器として生成されたそれぞれの決定木とを照合し、その個別データに対するラベルを判定する。決定木は複数存在するので、テストデータラベル判定部７４は、この判定を決定木毎に行い、その判定回数（決定木数）に対する正と判定された回数の割合を個別データのスコアとして求める。すなわち、テストデータラベル判定部７４は、一つの個別データに関し、「正と判定された回数／判定回数」を計算し、その値をスコアとする。さらに、テストデータラベル判定部７４は、ステップＤ５で計算された閾値とそのスコアとを比較し、スコアが閾値以上であれば、その個別データに対するラベルが正であると判定し、スコアが閾値未満であれば、その個別データに対するラベルが負であると判定する。
【０２１９】
テストデータラベル判定部７４は、テストデータ内の個別データ毎に判定した正または負のラベルを、ディスプレイ装置などに表示させたり、印刷装置に印刷させたりしてもよい。
【０２２０】
本実施形態によれば、第２の実施形態と同様に、顧客が商品やサービスを利用し始める時期を顧客毎に予測することができる。また、本実施形態では、閾値関数を求めるときには、入力された複数の基準時刻毎に、また、複数の仮閾値毎にそれぞれ予測誤差（Ｅｒｒｏｒ）を求め、誤差が最小となる閾値を求めて、閾値関数を推定するので、刻々と変動する受容性を閾値関数として推定することができる。また、重み付けを行う場合には、重み付けを行う毎に分類器を生成することになるが、本実施形態では、重み付けは行わないので、各仮閾値毎に誤差（Ｅｒｒｏｒ）を算出するときに、仮閾値毎に分類器を生成する必要はなく、一つの分類器を用いてそれぞれの仮閾値における誤差を求めることができる。よって、分類器生成のための計算時間を短縮することができる。
【０２２１】
次に、第４の実施形態の変形例を示す。以下に示す第４の実施形態の変形例では、第２の実施形態の変形例（図１４、図１５参照）と同様に、現時刻を更新してテストデータに対する予測を繰り返す。
【０２２２】
図２２は、第４の実施形態の変形例を示すブロック図である。既に説明した構成要素と同様の構成要素は、図１８と同一の符号を付し、詳細な説明を省略する。普及予測装置７は、テストデータ生成部７１と、ラベル付けデータ生成部７２と、分類器生成部７３と、テストデータラベル判定部７４と、現時刻更新部７５とを備える。現時刻更新部７５は、第２の実施形態の変形例で示した現時刻更新部５５と同様である。
【０２２３】
本変形例では、テストデータラベル判定部７４は、ステップＤ６での判定結果が実際の利用開始情報と異なっている個別データの利用開始情報を上書きして更新する。すなわち、個別データの利用開始情報が未利用を示していて、ステップＤ６で正と判定した場合、テストデータラベル判定部７４は、顧客ＤＢ２に記憶されている顧客データ内におけるその個別データの利用開始情報を現時刻に一定の時間（Ｔとする。）分を加算した時刻に更新する。
【０２２４】
現時刻更新部７５は、テストデータラベル判定部７４がテストデータに対する判定を行った後、現時刻を一定の時間（Ｔ）分増加した時刻を新たな現時刻とするように、現時刻を更新する。現時刻更新部７５も、例えば、普及予測プログラムに従って動作するＣＰＵによって実現される。
【０２２５】
テストデータ生成部７１、ラベル付けデータ生成部７２、分類器生成部７３、テストデータラベル判定部７４は、現時刻が更新されると、更新後の現時刻および更新後の顧客データを用いて、ステップＤ１以降の処理を繰り返す。
【０２２６】
なお、この繰り返し処理の終了条件は、例えば、第２の実施形態の変形例と同様に、更新後の現時刻が、定められた期間（予測期間）を越えることとすればよい。現時刻更新部７５は、更新後の現時刻が予測期間内であることを条件に現時刻の更新を行えばよい。予測期間は、例えば、普及予測システムのユーザによって予め入力されればよい。
【０２２７】
現時刻更新部７５は、更新後の現時刻が予測期間を越えると判定した場合、予測結果を出力装置（図２２において図示せず。）に出力させてもよい。この出力態様は、図１４に例示する第２の実施形態の変形例と同様である。例えば、普及曲線を出力してもよい。この場合、ステップＤ１に移行する毎に、現時刻更新部７５（他の構成要素でもよい）が、現時刻において商品またはサービスの利用を開始している顧客の個別データ数を顧客ＤＢの中からカウントし、そのカウント値と現時刻とを対応付けて記憶していけばよい。そして、現時刻更新部７５は、現時刻を横軸にとり、カウント値を縦軸にとって、現時刻の変化に伴うカウント値の推移を示すグラフを作成して出力すればよい。
【０２２８】
なお、本変形例において、顧客ＤＢ２に記憶されている個別データの利用開始情報を上書きするのではなく、個別データに当初から含まれている利用開始情報のコピーを利用開始時期予測情報としてコピーしておき、そのコピーを更新してもよい。
【０２２９】
図２３は、第４の実施形態の他の変形例を示すブロック図である。図１８および図２２では、普及予測システムが閾値関数推定装置６を備える場合を説明したが、図２３に示すように、閾値関数推定装置６を備えていない構成であってもよい。図２３に示すテストデータ生成部７１、ラベル付けデータ生成部７２、分類器生成部７３、テストデータラベル判定部７４の動作は、既に説明した動作と同様である。閾値関数推定装置６を備えない構成では、普及予測システムの外部から閾値関数が、テストデータラベル判定部７４に入力されればよい。例えば、普及予測システムのユーザが、閾値関数を入力してもよい。本変形例においても、閾値関数推定装置６は現時刻更新部７５を備えてよい。
【実施例】
【０２３０】
本実施例では、性別、年齢、既存の製品の購買履歴、イノベータ特性、接触メディアを、顧客の特徴を示す項目とし、それらの項目とともに利用開始時期を含む顧客データを顧客ＤＢ２に予め記憶させた。特定製品の発売時期から４年間の間にその製品の利用を開始した顧客の個別データに関しては、顧客がその製品の利用開始時期を利用開始情報として定めた。その４年間の間にまだ製品の利用を開始していない顧客の個別データに関しては、利用開始情報として未利用を意味する「？」を定めた。利用開始情報として購買時期（利用開始時期）が記述された顧客は顧客ＤＢ２に記憶された顧客数全体の８．４％であり、利用開始情報として未利用を意味する「？」が記述された顧客は顧客ＤＢ２に記憶された顧客数全体の９１．６％であった。また、各顧客毎に、顧客の特徴を示す上記の項目を定めた。項目の値が不明な場合には、その項目の値として、不明を意味する「？」を記述した。
【０２３１】
以上のような顧客データを顧客ＤＢ２に予め記憶させ、第１の実施形態の影響度推定システムに適用した。その結果、影響度推定システムが影響度を推定した結果、影響度は０．１９１であった。
【０２３２】
また、この影響度０．１９１を、第２の実施形態の普及予測システム（図１４）に適用した。普及予測システムが出力した普及曲線の例を図２４に示す。発売開始後４年目の普及率は８．４％であり、このときの関数値は、０．１９１×（１００−８．４）／８．４≒２であり、４年目を現時刻とする予測では利用開始した顧客は未利用の顧客の２倍に重み付けた。以降の時刻を現時刻とするときにも影響度は０．１９１で一定としたが、関数値は普及率の増加に伴い減少し、重み付けも少なくした。
【０２３３】
また、普及予測システムによって得られた普及曲線を検証するため、製品発売後４年目から６年目までの２年間の普及実績も調査した。
【０２３４】
図２４に示す実線は、普及予測システムが出力した普及曲線である。また、＋でプロットした曲線は、製品発売後４年目までの普及の実績を示している。四角形でプロットした曲線は、製品発売後４年目から６年目までの２年間の普及の実績を示している。図２４に示すように、普及予測システムが出力した普及曲線（図２４に示す実線）は、普及の実績（図２４に示す四角形のプロット）に、極めて近かった。
【産業上の利用可能性】
【０２３５】
本発明は、例えば、個別の顧客毎に商品やサービスの利用開始時期を予測する普及予測システムに好適に適用される。また、指定した時点での影響度を推定する影響度推定システムに好適に適用される。
【図面の簡単な説明】
【０２３６】
【図１】本発明の影響度推定システムの例を示すブロック図である。
【図２】入力装置および出力装置を備えた影響度推定システムの例を示すブロック図である。
【図３】本発明の影響度推定システムの処理経過の例を示すフローチャートである。
【図４】顧客データの例を示す説明図である。
【図５】現時刻データの例を示す説明図である。
【図６】前時刻データ生成過程において重み付けが行われる前のデータの例を示す説明図である。
【図７】前時刻データの例を示す説明図である。
【図８】既知の独立変数および従属変数の組み合わせの例を示す説明図である。
【図９】分類器の例を示す説明図である。
【図１０】分類器から予測される従属変数の例を示す説明図である。
【図１１】現時刻毎に求めた各仮影響度における誤差を示す説明図である。
【図１２】本発明の普及予測システムの例を示すブロック図である。
【図１３】本発明の普及予測システムの処理経過の例を示すフローチャートである。
【図１４】第２の実施形態の変形例を示すブロック図である。
【図１５】第２の実施形態の変形例における処理経過の例を示すフローチャートである。
【図１６】第３の実施形態の普及予測システムの例を示すブロック図である。
【図１７】第３の実施形態の普及予測システムを詳細に示すブロック図である。
【図１８】第４の実施形態の普及予測システムの例を示すブロック図である。
【図１９】第４の実施形態における閾値関数推定装置の処理経過の例を示すフローチャートである。
【図２０】第４の実施形態における閾値関数推定装置の処理経過の例を示すフローチャートである。
【図２１】第４の実施形態における普及予測装置の処理経過の例を示すフローチャートである。
【図２２】第４の実施形態の変形例を示すブロック図である。
【図２３】第４の実施形態の他の変形例を示すブロック図である。
【図２４】普及予測システムが出力した普及曲線の例を示すグラフである。
【符号の説明】
【０２３７】
２  顧客データベース
３１  現時刻データ生成部
３２  前時刻データ群生成部
３３  前時刻分類器群生成部
３４  誤差群算出部
３５  影響度算出部
５１  テストデータ生成部
５２  学習データ生成部
５３  分類器生成部
５４  テストデータラベル判定部
５５  現時刻更新部
６１  基準時刻データ群生成部
６２  閾値推定前時刻データ群生成部
６３  閾値推定前時刻分類器群生成部
６４  誤差群算出部
６５  関数推定部
７１  テストデータ生成部
７２  ラベル付けデータ生成部
７３  分類器生成部
７４  テストデータラベル判定部
【図１】
0005104496.tif 000002
【図２】
0005104496.tif 000003
【図３】
0005104496.tif 000004
【図４】
0005104496.tif 000005
【図５】
0005104496.tif 000006
【図６】
0005104496.tif 000007
【図７】
0005104496.tif 000008
【図８】
0005104496.tif 000009
【図９】
0005104496.tif 000010
【図１０】
0005104496.tif 000011
【図１１】
0005104496.tif 000012
【図１２】
0005104496.tif 000013
【図１３】
0005104496.tif 000014
【図１４】
0005104496.tif 000015
【図１５】
0005104496.tif 000016
【図１６】
0005104496.tif 000017
【図１７】
0005104496.tif 000018
【図１８】
0005104496.tif 000019
【図１９】
0005104496.tif 000020
【図２０】
0005104496.tif 000021
【図２１】
0005104496.tif 000022
【図２２】
0005104496.tif 000023
【図２３】
0005104496.tif 000024
【図２４】
0005104496.tif 000025