【DataRobotデモ】～営業ターゲティング～

# はじめに
今回は機械学習プラットフォームDataRobotデモ、営業ターゲティングへの活用例を紹介したいと思います。

# DataRobotとは
DataRobotは自動機械学習（AutoML）プラットフォームであり、機械学習モデルの構築、トレーニング、評価、デプロイメントを自動化することができます。複雑なデータ分析を迅速かつ簡単に実行し、優れた予測モデルの作成をサポートすることが可能です。

https://www.datarobot.com/jp/

# 営業ターゲティングとは
営業ターゲティングは、企業が自社の商品やサービスを売り込む対象を絞り込むことを指します。具体的には、顧客層や市場セグメント、地理的なエリアなど、様々な観点から対象を選定し、それに合わせて営業戦略を立てることです。
営業ターゲティングを行うことで、例えば以下のようなメリットがあります。
- リソースの最適化
- ターゲットに合わせたアプローチ
- 収益の最大化
- 競合他社との差別化

# 課題と扱うデータについて

本記事では、店舗や現場アルバイトのシフト管理や給与の支払いを行うサブスクリプションサービスを提供している会社における営業ターゲティングを考えていきたいと思います。
この会社では自社のWebサイト上でサービスの概要を紹介していますが、より詳細に知りたい人向けに、サービスの詳細に加えて、アルバイトを定着させるノウハウを紹介する資料をダウンロードできるようにしています。
このサービス概要＋資料ダウンロードページへの流入経路は下記3通りです。
- 検索サイト
- メールマガジン
- サービスの内容を90秒間にまとめた動画広告

資料のダウンロードページでは、ダウンロード前に簡単なアンケートに答えてもらうようになっており、ダウンロードした方の所属やダウンロード目的などが収集できるようになっています。
また、この会社では並行して「ブラック企業と言われないために」といったセミナー開催、より詳細な顧客情報や顧客が抱える課題等を入手するために、「抽選で5名の方にTシャツをプレゼント」するキャンペーンなどの活動も行っています。

資料をダウンロードした人のリストは定期的にマーケティング部門と営業部門に共有されます。このリストを元に、**これまでは資料をダウンロードしてくれた人全員にコンタクトをしていたのですが、サービスの購入に至る成約率が5％と低く、効率が悪いので、今後は、成約しそうな企業に絞って営業をかけていきたい**と考えています。
今回は**成約しそうな企業の見極めのため、過去の資料ダウンロード履歴を使い、成約するか否を判別する機械学習モデルを作っていきたい**と思います。

こちらが学習に使うためのデータです。過去のダウンロード履歴で成約したかわかっているデータを3,000件用意しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/1de5beb6-b584-d836-0675-67d78bc8f137.png)

具体的な項目はこちらです。

| 項目名 | 内容 | 入力値例 |
|:-----------|:------------|:------------|
| 会社ID  |資料をダウンロードした会社ID |65989|
| 業種     | 業種名(選択式) | IT関連ハードウェア製造業|
| 従業員数       | おおよその従業員数(選択式)|1000 |
| 担当者ID         | 資料をダウンロードした担当者ID | 529499|
| 職種       | 職種名(選択式)|経営 |
|役職|役職名(選択式)|経営者・役員クラス|
| 関与    | サービス導入についての関与(選択式) |自社の導入を決定する立場|
|ダウンロードからの日数|資料をダウンロードした日からの日数|5|
|ダウンロードの目的|資料ダウンロードの目的(選択式)|新規の製品／サービス導入の検討・比較のため|
|導入予定時期|サービスの自社または顧客への導入予定時期(選択式)|3ヶ月以内|
|導入予算状況|サービスの導入予算(選択式)|すでに導入予算を計上済み|
|流入経路|ダウンロードページへの流入経路|メールマガジン|
|セミナー受講履歴|別途実施しているセミナーの受講履歴があるか|True|
|キャンペーン応募履歴|別途実施しているキャンペーンへの応募履歴があるか|False|
|成約|成約したかどうか|True|

この項目のうち、**成約**が**予測したいターゲット**となります。
過去のダウンロード履歴と成約の組合せから関係を学習し、成約するかどうかを予測するモデルを作成していきたいと思います。



# DataRobotへのデータインポート
早速DataRobotを使っていきたいと思います。まずはデータのインポートです。
こちらがDataRobotのトップ画面になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/03bf7c81-ee83-9aa6-b6da-e68ecac92d6b.png)
データに関しては、直接ドラッグ＆ドロップの他、各種データベースとの連携やURLを入力する形でのアップロードが可能です。


無事にアップロードできるとこちらの画面になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/a289e521-dbec-e775-cc1e-a16781b27e66.png)
下にスクロールしていくと、アップロードした各項目について、データ型やユニーク数、欠損の数、数値特徴量について平均値、最大値、最小値のような統計量が表形式で確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/7d9023a6-4272-50e6-a004-588764249a72.png)
全3,000件データに対し、担当者IDのユニーク数が2,996となっているので、特定の担当者IDのレコードが重複している可能性がありそうです。(今回は一旦そのまま進めますが)、除外を検討すべきかもしれません。

各項目については、項目名をクリックすることで分布の表示もできます。この図では業種をクリックしていますが、一番多いのはSI(システムインテグレータ)です。自社向けというよりは顧客向けに導入を検討するために資料をダウンロードしているケースのほうが多そうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/d5a754d1-72f1-5dd8-d0a5-c97aaa4ba855.png)

# モデリング開始

今回のターゲットである**成約**を入力します。ターゲットの入力が完了すると開始ボタンが押下できるようになります。あとは押下するだけで、簡単に機械学習モデルが作成できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/ea3b0282-85d3-b961-daf3-901894954892.png)

課題によっては細かなカスタマイズが必要になってくるケースもあります。DataRobotでは高度なオプションからパーティションの設定やダウンサンプリング、特定サンプルの重みづけなどアドバンスな設定ができます。
時間による傾向変化がかなり強いサービスの場合だと、過去のデータを使って学習し直近のデータで評価する学習方法にしたりと、データや課題に合わせて工夫したりします。詳しくは後日、別の記事で紹介したいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/58e162ed-9cd0-8709-8ba5-78ba12c14deb.png)

開始ボタンを押下すればあとは待つだけです。DataRobotには数千の設計図（ブループリント）を用意されており、アップロードしたデータの分布やデータ型に合ったアルゴリズムを数十程度ピックアップしてモデルを作成していきます。
こちらはモデル作成途中の画面になりますが、画面右側で複数のモデルが作成されている様子が確認できます。アルゴリズムはXGBoostやLightGBMのような木型のアルゴリズム、logistic回帰やEureqaのような数式表現するようなものなど様々なものが含まれています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/c3454f47-2e29-13f1-0d9e-c5d930244218.png)

# モデルの精度評価

学習が完了したモデルはモデルタブから確認ができます。
リーダーボードには各モデルが精度がよい順(画面では`AUC`順)に並んでいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/8a4ba108-03a7-641b-c8a5-285bfd95dcf6.png)

今回のようなターゲティングの場合、全体的な精度よりは、予測値上位、つまり営業アプローチかける対象に対しての精度が重要なケースであり、その観点でよいモデルを選択することが多いです。こちらは`AUC`から`RateTop10%`に評価指標を変更しています。モデルの表示順序が少し入れ替わっていますね。`RateTop10%`はこのモデルを使って成約スコアを予測したときの値上位10%のグループにおける、成約の割合を示しています。交差検定のスコアを確認すると、上位のモデルではスコアは0.17～0.19程度あるので、仮に「このモデルの予測値上位10%に営業アプローチをしましょう！」とすると、成約できる割合は17～19%になる見込みがありそうです。（現行運用だと5%！！）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/c8b6e761-5207-6ac8-9bb1-b7ed248b6460.png)


では、`RateTop10%`の指標で精度が上位だった`Eureqa Generalized Additive Model Classifier (10000 Generations)`の詳細を確認していきます。ブループリントではモデルがどのように作成されたか処理を確認することができます。数値変数については欠損値を補完、カテゴリ変数についてはエンコーディング処理等を実施したうえでEureqaモデルを作成しています。**DataRobotではモデルごとに適したデータ前処理が自動的に行われるようになっているので、ユーザは特に意識することなく様々なモデルを作成**することが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/18ec09c7-307c-3428-ac27-e25b1105d0db.png)

日頃から機械学習モデルを活用されている方にとってはおなじみですが、ROC曲線や混同行列などを確認するための画面も用意されています。上記では`RateTop10%`で上位10%に対しての精度を確認しましたが、「上位N%にアプローチする場合の精度だったらどうだろう？」とか「上位X社にアプローチする場合はどうか？」といった形で閾値を変えた場合のシミュレーションもこの画面から行うことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/255b0e46-d48a-5f1f-ef68-eb96fa40868b.png)


# モデルの解釈
先ほどまでで、作成されたモデルの性能はどうやらよさそうだということがわかりました。ただ、実際に営業アプローチをしていく立場の方からすると「理由はわからないがAIが成約確率が高いと予測しているからアプローチをしろ」と言われても、なかなか納得できない部分もあるかと思います。
**性能だけではなく、モデルがどういった項目を見ているのか、どのような要素が成約するか否かに影響しているのか、しっかり納得することも機械学習モデルの活用においてはとても重要なポイント**です。

まずは、どのような特徴が成約に対して影響が大きいのか確認していきたいと思います。
特徴量のインパクト機能では、成約を予測するにあたり一番有効であった特徴量を100%とした際の相対評価の結果が確認できます。
最も効いていたのは**流入経路**、次いで**導入予定時期**、**ダウンロードの目的**、**業種**、と続いています。
たしかにこれらの項目は製品導入において重要な観点ですし、納得感はありそうです。
また、（少し悲しい結果ではありますが）キャンペーンやセミナー受講は成約予測にはあまり重要ではなかったようです。少しキャンペーンやセミナーの詳細を確認して、場合によっては内容の見直しなど考えてもいいのかもしれません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/99862015-b5a3-56d6-bd8b-a19113058ad0.png)

では、最も成約予測モデルで重要と判断された**流入経路**について、具体的に流入経路がどのような項目であれば成約しやすい(しにくい)のか確認していきます。
DataRobotでは**特徴量ごとの作用**で各特徴量に注目して、その特徴量が変化したときに予測値がどうなるのかのシミュレーションができます。
こちらは流入経路に着目したときの特徴量の作用です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/e064edf8-f83d-579b-26f8-2237062ccb22.png)
（件数自体は少ないですが）動画広告の場合に、他の流入経路より成約が高くなる傾向があるようです。
静止画でなく、具体的にサービスがどのような動きをするのか確認していただくことが大事なのかもしれないですね。

別の項目でも確認していきましょう。
**職種**では、広告・宣伝や財務・会計・経理の成約が良い一方、コンサルタントや調査担当等では成約が良くないようです。購入意思はなく、あくまで情報収集のためにカタログをダウンロードしているのかもしれません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/392538fc-c86b-f5fa-2fbb-c1edc18ceca4.png)


さらにDataRobotでは、全体傾向だけでなく、それぞれの予測に対して、なぜそのような予測を行ったのか根拠も確認する**予測の説明**機能も用意されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/3a855bc6-bf5f-41da-2fe7-b1ef6a619ea7.png)

こちらはこのモデルで成約スコアが高いと予測した例です。
流入経路が動画広告、ダウンロードの目的が運用の導入済み製品/サービスの改変・運用効率化のため、導入予定時期が１年以内、という理由で成約スコアを高くしている、ということです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/e44fe2f8-84ac-8f39-f369-fd1aa8fae011.png)

こちらは逆に予測値が小さいサンプルです。システムインテグレータが情報収集のためにダウンロードしているようで、たしかに成約はしなさそうですね、、、。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/e1cf2f57-a78f-86f5-8be1-7a5537be9ff0.png)


# 予測

作成したモデルを使った予測も簡単に実行ができます。
予測を作成画面ではデータをアップロードしたときと同様に、予測したい対象データをドラッグ＆ドロップなどすることでまだ成約するかわからない未知のデータについての予測ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/e42b13c2-1253-21bc-2ce8-8211d82a9539.png)

試しに10件のデータを使って予測させてみました。いくつか成約スコアが大きいものがあるので、これらの会社からアプローチしていくことで、効率的に成約が得られそうです。（この例は予測値のみ出力していますが、上記の予測の説明も併せて出すこともできます!!）
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459346/d305a5f1-472a-57c3-4610-e518809d6e8e.png">

本格的に運用するとなると毎回予測画面を開いて予測して…とするのは大変なので、自動化及びシステム連携も必要になってきます。DataRobotでは機械学習モデルの運用をサポートする機能**MLOps**もかなり充実しており、この辺りのサポートもとても豊富です。
こちらについては後日紹介記事を書きたいと思っていますのでご期待ください！

# まとめ

今回は、DataRobotの基本機能を使って、営業ターゲティングデモを行ってみました。
記事では伝わりづらいですが、コーディング等を行うことなく、簡単に機械学習モデルを作成することができました。
今後も他の課題を想定したデモ記事や、機能紹介記事を紹介していきたいと思います！！

## 仲間募集

NTTデータ テクノロジーコンサルティング事業本部 では、以下の職種を募集しています。

<details><summary>1. クラウド技術を活用したデータ分析プラットフォームの開発・構築(ITアーキテクト/クラウドエンジニア)</summary>

クラウド／プラットフォーム技術の知見に基づき、DWH、BI、ETL領域におけるソリューション開発を推進します。
https://enterprise-aiiot.nttdata.com/recruitment/career_sp/cloud_engineer

</details>

<details><summary>2. データサイエンス領域（データサイエンティスト／データアナリスト）</summary>

データ活用／情報処理／AI／BI／統計学などの情報科学を活用し、よりデータサイエンスの観点から、データ分析プロジェクトのリーダーとしてお客様のDX／デジタルサクセスを推進します。
https://enterprise-aiiot.nttdata.com/recruitment/career_sp/datascientist

</details>

<details><summary>3.お客様のAI活用の成功を推進するAIサクセスマネージャー</summary>

DataRobotをはじめとしたAIソリューションやサービスを使って、
お客様のAIプロジェクトを成功させ、ビジネス価値を創出するための活動を実施し、
お客様内でのAI活用を拡大、NTTデータが提供するAIソリューションの利用継続を推進していただく人材を募集しています。
https://nttdata.jposting.net/u/job.phtml?job_code=804

</details>

<details><summary>4.DX／デジタルサクセスを推進するデータサイエンティスト《管理職/管理職候補》</summary>
データ分析プロジェクトのリーダとして、正確な課題の把握、適切な評価指標の設定、分析計画策定や適切な分析手法や技術の評価・選定といったデータ活用の具現化、高度化を行い分析結果の見える化・お客様の納得感醸成を行うことで、ビジネス成果・価値を出すアクションへとつなげることができるデータサイエンティスト人材を募集しています。

https://nttdata.jposting.net/u/job.phtml?job_code=898

</details>


## ソリューション紹介

<details><summary> Trusted Data Foundationについて</summary><div>

～データ資産を分析活用するための環境をオールインワンで提供するソリューション～
https://enterprise-aiiot.nttdata.com/tdf/
最新のクラウド技術を採用して弊社が独自に設計したリファレンスアーキテクチャ（Datalake+DWH+AI/BI）を顧客要件に合わせてカスタマイズして提供します。
可視化、機械学習、DeepLearningなどデータ資産を分析活用するための環境がオールインワンで用意されており、これまでとは別次元の量と質のデータを用いてアジリティ高くDX推進を実現できます。

</div></details>


<details><summary> TDFⓇ-AM（Trusted Data Foundation - Analytics Managed Service）について</summary><div>

～データ活用基盤の段階的な拡張支援（Quick Start) と保守運用のマネジメント（Analytics Managed）をご提供することでお客様のDXを成功に導く、データ活用プラットフォームサービス～
https://enterprise-aiiot.nttdata.com/service/tdf/tdf_am
TDFⓇ-AMは、データ活用をQuickに始めることができ、データ活用の成熟度に応じて段階的に環境を拡張します。プラットフォームの保守運用はNTTデータが一括で実施し、お客様は成果創出に専念することが可能です。また、日々最新のテクノロジーをキャッチアップし、常に活用しやすい環境を提供します。なお、ご要望に応じて上流のコンサルティングフェーズからAI/BIなどのデータ活用支援に至るまで、End to Endで課題解決に向けて伴走することも可能です。

</div></details>


<details><summary>NTTデータとTableauについて </summary><div>

ビジュアル分析プラットフォームのTableauと2014年にパートナー契約を締結し、自社の経営ダッシュボード基盤への採用や独自のコンピテンシーセンターの設置などの取り組みを進めてきました。さらに2019年度にはSalesforceとワンストップでのサービスを提供開始するなど、積極的にビジネスを展開しています。

これまでPartner of the Year, Japanを4年連続で受賞しており、2021年にはアジア太平洋地域で最もビジネスに貢献したパートナーとして表彰されました。
また、2020年度からは、Tableauを活用したデータ活用促進のコンサルティングや導入サービスの他、AI活用やデータマネジメント整備など、お客さまの企業全体のデータ活用民主化を成功させるためのノウハウ・方法論を体系化した「デジタルサクセス」プログラムを提供開始しています。
https://enterprise-aiiot.nttdata.com/service/tableau

</div></details>


<details><summary>NTTデータとAlteryxについて </summary><div>
Alteryxは、業務ユーザーからIT部門まで誰でも使えるセルフサービス分析プラットフォームです。

Alteryx導入の豊富な実績を持つNTTデータは、最高位にあたるAlteryx Premiumパートナーとしてお客さまをご支援します。

導入時のプロフェッショナル支援など独自メニューを整備し、特定の業種によらない多くのお客さまに、Alteryxを活用したサービスの強化・拡充を提供します。

https://enterprise-aiiot.nttdata.com/service/alteryx

</div></details>

<details><summary>NTTデータとDataRobotについて </summary><div>
DataRobotは、包括的なAIライフサイクルプラットフォームです。

NTTデータはDataRobot社と戦略的資本業務提携を行い、経験豊富なデータサイエンティストがAI・データ活用を起点にお客様のビジネスにおける価値創出をご支援します。

https://enterprise-aiiot.nttdata.com/service/datarobot

</div></details>

<details><summary> NTTデータとInformaticaについて</summary><div>

データ連携や処理方式を専門領域として10年以上取り組んできたプロ集団であるNTTデータは、データマネジメント領域でグローバルでの高い評価を得ているInformatica社とパートナーシップを結び、サービス強化を推進しています。
https://enterprise-aiiot.nttdata.com/service/informatica

</div></details>

<details><summary>NTTデータとSnowflakeについて </summary><div>
NTTデータでは、Snowflake Inc.とソリューションパートナー契約を締結し、クラウド・データプラットフォーム「Snowflake」の導入・構築、および活用支援を開始しています。

NTTデータではこれまでも、独自ノウハウに基づき、ビッグデータ・AIなど領域に係る市場競争力のあるさまざまなソリューションパートナーとともにエコシステムを形成し、お客さまのビジネス変革を導いてきました。
Snowflakeは、これら先端テクノロジーとのエコシステムの形成に強みがあり、NTTデータはこれらを組み合わせることでお客さまに最適なインテグレーションをご提供いたします。

https://enterprise-aiiot.nttdata.com/service/snowflake

</div></details>