見込み顧客の受注予測とは データ分析講座(その252)

投稿日

データ分析

 

法人相手のビジネスやECサイト、個別面談を通すようなビジネスなどでは、顧客をIDベースで追えるケースが多いのです。運が良ければ、リード(見込み顧客)の段階で、何かしらデータを得ているケースもあります。法人相手のビジネスなどは最たる例でしょう。その場合、そのリード(見込み顧客)が顧客になる可能性が分かると非常に嬉しいのです。それは対応すべき優先順位の参考にしたりできるからです。そのためには、リード(見込み顧客)の受注を予測しなければなりません。

 

このリード(見込み顧客)の受注を予測するためのモデルを、機械学習のアルゴリズムで構築するケースが増えています。今回は「教師なし学習と教師あり学習を使った『リード(見込み顧客)の受注予測』」というお話しをします。

 

【目次】
1.「教師なし学習」による顧客理解と 「教師あり学習」による予測
2.「教師なし学習」による顧客理解
  (1) 異常データを含めるかどうか
  (2) 顧客を特徴づける変数は何か
  (3) 変数を増やして減らして……
3.リード(見込み顧客)のクラスタリング
   (1)顧客の属するクラスターを予測
4.リード(見込み顧客)の受注予測モデルの構築

 

【この連載の前回:データ分析講座(その251)需要予測モデル構築時の検討すべきポイントへのリンク】

1.「教師なし学習」による顧客理解と「教師あり学習」による予測

機械学習のアルゴリズムには、大きく「目的変数のない教師なし学習」と「目的変数のある教師あり学習」があります。他にも、強化学習などありますが、ここでは一旦この2つ「教師なし学習」と「教師あり学習」に絞ってお話しを勧めます。

 

「リード(見込み顧客)の受注予測」をする場合の目的変数は、「受注の有無」です。受注したのか、失注したのかを表す変数です。例えば、受注を「1」、失注を「0」などの数字で表現したりします。受注を表す「1」の確率を予測モデルで、「教師あり学習」のアルゴリズムを使って構築します。

 

では、「教師なし学習」はどこで使うのか?「教師なし学習」は、例えば、「教師あり学習」で構築する予測モデルを作る前に使ったりします。例えば、以下のような順番です。

 

  • 「教師なし学習」で顧客理解
  • 「教師あり学習」で予測モデル構築

 

2.「教師なし学習」による顧客理解

「教師なし学習」の代表的なアルゴリズムは、例えば以下です。

 

  • 異常データの検出
  • 主成分分析/因子分析(次元削減・集約)
  • クラスタリング

 

これらのアルゴリズムを使った顧客理解方法を紹介します。今回紹介するのは一例です。

 

(1) 異常データを含めるかどうか

異常検知なども含めた「異常データの検出」のためのアルゴリズムには、どのデータがどのような異常なのかというラベルのある「教師あり学習」と、ラベルのない「教師なし学習」があります。「教師なし学習」による「異常データの検出」は、仲間はずれを探す、という感じです。

 

例えば、10万レコードのデータセットがあって、ある1レコードだけ他のどのレコードとも全く似ていないのなら異常かもしれない、と考えるということです。

 

異常スコアのようなものが出力されますので、そのスコアの高いレコードに対し、ありえるデータなのか、ありえないデータなのか、データセットに混ぜるべきか、起こり得ない事例として除外すべきか、を検討する必要があります。

 

最近では、Random Forest(ランダムフォレスト)ベースのIsolation Forestが、よく利用されている印象があります。他にも、One-class SVMやLocal Outlier Factorなど色々なアルゴリズムがあります。

 

(2) 顧客を特徴づける変数は何か

例外的な異常データを取り除いたデータセットに対し、リード(見込み顧客)のデータセットと顧客のデータセットで共通する変数を比べます。例えば、2つのデータセットの分布(量的変数であればヒストグラム)を作り比べ、同じ分布とみなせるのか?別の分布とみなせるのか?を検討し顧客の特徴を考えていきます。

 

例えば、ある2つの分布が一致しているかどうかを調べるために、KS検定(Kolmogorov-Smirnov test、コルモゴロフ・スミルノフ検定)を実施したりします。別の分布とみなせる変数から順番に、グラフ化しどのような違いが生じていそうかを解釈していきます。リード(見込み顧客)と顧客の違いから、顧客の特徴を把握することができます。

 

(3) 変数を増やして減らして

リード(見込み顧客)をグルーピングするために、リード(見込み顧客)のデータセットに対しクラスタリングを実施(クラスター分析)していきます。

 

その前処理として、例えば、One Hot Encoding、主成分分析/因子分析を実施したりします。

 

One Hot Encodingを実施することで、カテゴリカル変数を0-1データにしていきます。この処理によって、変数の数がそれなりに増えます。主成分分析や因子分析を実施することで、変数の数を減らしていきます(次元削減・集約)。ここでポイントになるのは、顧客の特徴を表現する変数(厳密には主成分)は削らないようにする、ということです。

 

3.リード(見込み顧客)のクラスタリング

次に、リード(見込み顧客)をグルーピング(クラスタリング)するために、クラスタ分析を実施していきます。クラスタリングのアルゴリズムは、階層型でも非階層型でも何でも構いません。クラスタ分析を実施すると、幾つかのクラスターにリード(見込み顧客)が分類されるかと思います。

 

そのクラスターの特徴を把握するために、クラスター別に変数を集計し見比べてもいいでしょう。そこでポイントが1つあります。それは、先程述べた「2つのデータセットを見比べて把握した顧客の特徴」を持ったクラスターがあるかどうかです。

 

そのような特徴をもったクラスターがある場合は、次に進みます。無い場合には、クラスタリング方法を再検討してください。クラスター数を変える、アルゴリズムを変えるなどです。

 

(1) 顧客の属するクラスターを予測

いい感じで、リード(見込み顧客)をクラスタリングできたら、次に各顧客がどのクラスターに所属するのかを予測し、各顧客をクラスターに振り分けます。リード(見込み顧客)のクラスタ分析の結果(クラスタリングルール)を使って、顧客を振り分けるということです。

 

クラスター分析を実施したときに、クラスターを予測するクラスター予測モデルが一緒に構築されているのなら、そのクラスター予測モデルをそのまま使って、各顧客がどのクラスターに属するのか予測します。クラスター予測モデルが無いのであれば、「教師あり学習」の分類問題系のアルゴリズム(例:ロジスティック回帰など)を使って、クラスター予測モデルを、リード(見込み顧客)のデータセットを使って構築します。

 

何はともあれ、リード(見込み顧客)のクラスターに、各顧客を振り分けることができるはずです。振り分けたら、どのクラスターに顧客がより多く振り分けられたのかを分析しましょう。単純に、N数比較でも十分です。

 

多くの場合、特定のクラスターに多く振り分けられます。その特定のクラスターに属するリード(見込み顧客)は、おそらく顧客になりやすいリード(見込み顧客)です。そして、その特定のクラスターを特徴づける変数が、リード(見込み顧客)の受注予測モデルを構築するときの、非常に重要な特徴量(説明変数)となることでしょう。

 

4.リード(...

データ分析

 

法人相手のビジネスやECサイト、個別面談を通すようなビジネスなどでは、顧客をIDベースで追えるケースが多いのです。運が良ければ、リード(見込み顧客)の段階で、何かしらデータを得ているケースもあります。法人相手のビジネスなどは最たる例でしょう。その場合、そのリード(見込み顧客)が顧客になる可能性が分かると非常に嬉しいのです。それは対応すべき優先順位の参考にしたりできるからです。そのためには、リード(見込み顧客)の受注を予測しなければなりません。

 

このリード(見込み顧客)の受注を予測するためのモデルを、機械学習のアルゴリズムで構築するケースが増えています。今回は「教師なし学習と教師あり学習を使った『リード(見込み顧客)の受注予測』」というお話しをします。

 

【目次】
1.「教師なし学習」による顧客理解と 「教師あり学習」による予測
2.「教師なし学習」による顧客理解
  (1) 異常データを含めるかどうか
  (2) 顧客を特徴づける変数は何か
  (3) 変数を増やして減らして……
3.リード(見込み顧客)のクラスタリング
   (1)顧客の属するクラスターを予測
4.リード(見込み顧客)の受注予測モデルの構築

 

【この連載の前回:データ分析講座(その251)需要予測モデル構築時の検討すべきポイントへのリンク】

1.「教師なし学習」による顧客理解と「教師あり学習」による予測

機械学習のアルゴリズムには、大きく「目的変数のない教師なし学習」と「目的変数のある教師あり学習」があります。他にも、強化学習などありますが、ここでは一旦この2つ「教師なし学習」と「教師あり学習」に絞ってお話しを勧めます。

 

「リード(見込み顧客)の受注予測」をする場合の目的変数は、「受注の有無」です。受注したのか、失注したのかを表す変数です。例えば、受注を「1」、失注を「0」などの数字で表現したりします。受注を表す「1」の確率を予測モデルで、「教師あり学習」のアルゴリズムを使って構築します。

 

では、「教師なし学習」はどこで使うのか?「教師なし学習」は、例えば、「教師あり学習」で構築する予測モデルを作る前に使ったりします。例えば、以下のような順番です。

 

  • 「教師なし学習」で顧客理解
  • 「教師あり学習」で予測モデル構築

 

2.「教師なし学習」による顧客理解

「教師なし学習」の代表的なアルゴリズムは、例えば以下です。

 

  • 異常データの検出
  • 主成分分析/因子分析(次元削減・集約)
  • クラスタリング

 

これらのアルゴリズムを使った顧客理解方法を紹介します。今回紹介するのは一例です。

 

(1) 異常データを含めるかどうか

異常検知なども含めた「異常データの検出」のためのアルゴリズムには、どのデータがどのような異常なのかというラベルのある「教師あり学習」と、ラベルのない「教師なし学習」があります。「教師なし学習」による「異常データの検出」は、仲間はずれを探す、という感じです。

 

例えば、10万レコードのデータセットがあって、ある1レコードだけ他のどのレコードとも全く似ていないのなら異常かもしれない、と考えるということです。

 

異常スコアのようなものが出力されますので、そのスコアの高いレコードに対し、ありえるデータなのか、ありえないデータなのか、データセットに混ぜるべきか、起こり得ない事例として除外すべきか、を検討する必要があります。

 

最近では、Random Forest(ランダムフォレスト)ベースのIsolation Forestが、よく利用されている印象があります。他にも、One-class SVMやLocal Outlier Factorなど色々なアルゴリズムがあります。

 

(2) 顧客を特徴づける変数は何か

例外的な異常データを取り除いたデータセットに対し、リード(見込み顧客)のデータセットと顧客のデータセットで共通する変数を比べます。例えば、2つのデータセットの分布(量的変数であればヒストグラム)を作り比べ、同じ分布とみなせるのか?別の分布とみなせるのか?を検討し顧客の特徴を考えていきます。

 

例えば、ある2つの分布が一致しているかどうかを調べるために、KS検定(Kolmogorov-Smirnov test、コルモゴロフ・スミルノフ検定)を実施したりします。別の分布とみなせる変数から順番に、グラフ化しどのような違いが生じていそうかを解釈していきます。リード(見込み顧客)と顧客の違いから、顧客の特徴を把握することができます。

 

(3) 変数を増やして減らして

リード(見込み顧客)をグルーピングするために、リード(見込み顧客)のデータセットに対しクラスタリングを実施(クラスター分析)していきます。

 

その前処理として、例えば、One Hot Encoding、主成分分析/因子分析を実施したりします。

 

One Hot Encodingを実施することで、カテゴリカル変数を0-1データにしていきます。この処理によって、変数の数がそれなりに増えます。主成分分析や因子分析を実施することで、変数の数を減らしていきます(次元削減・集約)。ここでポイントになるのは、顧客の特徴を表現する変数(厳密には主成分)は削らないようにする、ということです。

 

3.リード(見込み顧客)のクラスタリング

次に、リード(見込み顧客)をグルーピング(クラスタリング)するために、クラスタ分析を実施していきます。クラスタリングのアルゴリズムは、階層型でも非階層型でも何でも構いません。クラスタ分析を実施すると、幾つかのクラスターにリード(見込み顧客)が分類されるかと思います。

 

そのクラスターの特徴を把握するために、クラスター別に変数を集計し見比べてもいいでしょう。そこでポイントが1つあります。それは、先程述べた「2つのデータセットを見比べて把握した顧客の特徴」を持ったクラスターがあるかどうかです。

 

そのような特徴をもったクラスターがある場合は、次に進みます。無い場合には、クラスタリング方法を再検討してください。クラスター数を変える、アルゴリズムを変えるなどです。

 

(1) 顧客の属するクラスターを予測

いい感じで、リード(見込み顧客)をクラスタリングできたら、次に各顧客がどのクラスターに所属するのかを予測し、各顧客をクラスターに振り分けます。リード(見込み顧客)のクラスタ分析の結果(クラスタリングルール)を使って、顧客を振り分けるということです。

 

クラスター分析を実施したときに、クラスターを予測するクラスター予測モデルが一緒に構築されているのなら、そのクラスター予測モデルをそのまま使って、各顧客がどのクラスターに属するのか予測します。クラスター予測モデルが無いのであれば、「教師あり学習」の分類問題系のアルゴリズム(例:ロジスティック回帰など)を使って、クラスター予測モデルを、リード(見込み顧客)のデータセットを使って構築します。

 

何はともあれ、リード(見込み顧客)のクラスターに、各顧客を振り分けることができるはずです。振り分けたら、どのクラスターに顧客がより多く振り分けられたのかを分析しましょう。単純に、N数比較でも十分です。

 

多くの場合、特定のクラスターに多く振り分けられます。その特定のクラスターに属するリード(見込み顧客)は、おそらく顧客になりやすいリード(見込み顧客)です。そして、その特定のクラスターを特徴づける変数が、リード(見込み顧客)の受注予測モデルを構築するときの、非常に重要な特徴量(説明変数)となることでしょう。

 

4.リード(見込み顧客)の受注予測モデルの構築

「教師なし学習」による顧客理解の結果を元に、新しい特徴量(説明変数)をデータセットに追加していきます。例えば、主成分などです。ここで言うデータセットとは、受注の有無を表す変数の付いたリード(見込み顧客)のデータです。

 

最近では、勾配ブースティング(Gradient Boosting)系のアルゴリズムが、比較的よい結果をもたらします。さらに、特徴量(説明変数)の重要度(Importance)を出力したり、各特徴量(説明変数)と目的変数の関係性を表現する部分依存(Partial Dependence)プロットを出力したりすることができ、非常に便利です。

 

おそらく、クラスタ分析の際に実施した分析結果(顧客が多く振り分けられたクラスターの特徴)が、特徴量(説明変数)の重要度(Importance)や部分依存(Partial Dependence)プロットとして出てきます。ちなみに、部分依存(Partial Dependence)プロットとは、横軸に各特徴量(説明変数)、縦軸に目的変数で表現したグラフで、各特徴量(説明変数)と目的変数の関係性を視覚的に把握することができます。

 

 

◆【特集】 連載記事紹介連載記事のタイトルをまとめて紹介、各タイトルから詳細解説に直リンク!!

◆データ分析講座の注目記事紹介

 

 

   続きを読むには・・・


この記事の著者

高橋 威知郎

データネクロマンサー/データ分析・活用コンサルタント (埋もれたデータに花を咲かせる、データ分析界の花咲じじい。それほど年齢は重ねてないけど)

データネクロマンサー/データ分析・活用コンサルタント (埋もれたデータに花を咲かせる、データ分析界の花咲じじい。それほど年齢は重ねてないけど)


「情報マネジメント一般」の他のキーワード解説記事

もっと見る
コーホートを活用した受注予測モデルとは データ分析講座(その108)

  ◆ 営業や販売のCRM系のデータ分析、どうしてもコーホート的になる  分析用データはどのような視点で分析するかによりデータセットの呼び名...

  ◆ 営業や販売のCRM系のデータ分析、どうしてもコーホート的になる  分析用データはどのような視点で分析するかによりデータセットの呼び名...


過去のデータの扱い方とは データ分析講座(その2)

 ◆ 過去のデータを紐解けるようになると、預言者になる不思議  「データから分かるのって、過去のこと。知りたいのは、これからどうすべきかをなんだ」素朴な...

 ◆ 過去のデータを紐解けるようになると、預言者になる不思議  「データから分かるのって、過去のこと。知りたいのは、これからどうすべきかをなんだ」素朴な...


小売の売上分析 データ分析講座(その87)

  ◆ 小売の売上分析、2つの指標だけで考える小売業の「データ分析的な戦略」  実践的なデータ分析・活用の話題です。小売店対象のお話で1店舗...

  ◆ 小売の売上分析、2つの指標だけで考える小売業の「データ分析的な戦略」  実践的なデータ分析・活用の話題です。小売店対象のお話で1店舗...


「情報マネジメント一般」の活用事例

もっと見る
人的資源マネジメント:製品開発の滞留を引き起こすファイルとは(その2)

 今回は、PDM/PLMに代表される製品開発業務のIT化をどのように考え、進めるのがよいのかについて解説します。    前回まで続けていたテ...

 今回は、PDM/PLMに代表される製品開発業務のIT化をどのように考え、進めるのがよいのかについて解説します。    前回まで続けていたテ...


ソフトウェア特許とは(その2)

4.ソフトウェア特許のとり方    前回のその1に続いて解説します。    ソフトウェア特許の取得方法にはノウハウがあります。特許のことを知らない...

4.ソフトウェア特許のとり方    前回のその1に続いて解説します。    ソフトウェア特許の取得方法にはノウハウがあります。特許のことを知らない...


情報システム導入企業の悩みとは

        今回は、次の事例から、自社の生産システムにあった生産管理ソフトの選択をどうすべきかを解説します。   1. 想定事例  電...

        今回は、次の事例から、自社の生産システムにあった生産管理ソフトの選択をどうすべきかを解説します。   1. 想定事例  電...