【DataRobot】モデル構築はしてみたけど、この後どうやって精度を上げる？

# はじめに
はじめまして。社内でデータサイエンティストを務めております@nttd-okadakntです。

NTTデータ デザイン＆テクノロジーコンサルティング事業本部では、お客様企業のAI・データ活用を、コンサルティングから基盤構築、実行支援を通じた成果創出までワンストップで創出しており、その支援テクノロジーの一つとして DataRobot を提供しております。

本記事では、「DataRobotのオートパイロットでモデル構築をしてみたけど、その後どうやって精度改善をしていけば良いか」というご質問をよく頂くので解説したいと思います。

# DataRobotとは
DataRobot社は、AIに対するユニークなコラボレーション型のアプローチによって
ユーザーをAIサクセスに導くバリュー・ドリブン AIのリーダーです。

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

DataRobot社の製品であるDataRobotは、10年以上にわたってユーザーの自動機械学習（AutoML）活用を支援してきたAIライフサイクル・プラットフォームであり、機械学習モデルの構築、トレーニング、評価、デプロイメントを自動化することができます。複雑なデータ分析を迅速かつ簡単に実行し、優れた予測モデルの作成と管理をサポートすることが可能です。近年では生成AI機能も強化し、予測AIとのコラボレーションによってさらなるAIサクセスの実現を加速させています。

# 前提
以下が適切に設計されており、正しい精度評価が出来る状態であることを想定しています。
- ターゲット
- パーティション

その上で、とりあえず一度オートパイロットを実行してみたというシチュエーションです。

この後掲載しているDataRobot画面のキャプチャは、
金融業における消費者の貸し倒れ予測のデータを用いています。

# 解説
### 1.精度向上に向けて考えること
一度モデルを構築した後に、私は以下を確認するようにしています。
- 【アウトプットの観点】今回扱っているデータの中で、精度の高い・低い集団はどこで、それはどのような違いがあるのか
→闇雲に改善を行うのではなく、精度の高い集団と低い集団の差異とその差が生まれる条件を特定することで、精度の低い集団に対する効果的な対策に繋がります。

- 【プロセスの観点】今回作成したモデルは、自身の仮説やドメイン知識に沿ったもの(特徴量の利き方等)になっているのか
→1stステップとしてシンプルなベースラインとなるモデルを作成すると思います。そのときの各特徴量の効き方を確認することで、特徴量エンジニアリングの方向性を得るためにこの観点を確認します。

- 【インプットの観点】特徴量が足りているのか
→そもそもで、今使っているデータには含まれない・記録されていない事象から影響を受けてしまっている、今の特徴量ではそれを表現することが出来ない、というケースです。

### 2.DataRobotで確認する方法

#### 誤差を確認する

まずは、DataRobotの特徴量毎の作用タブから、特徴量毎に「予測」と「実測」の生じ方を確認していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3738576/ac52ed47-0e5b-22e1-9f58-20c1997e4ece.png)

##### どのように確認をしていくか
ここで確認をしたいのは、「その特徴量によって、誤差が生じているか」という点です。
以下図の左側のケースは直感的にも問題なさそうに思えますが、右側のケースでも実は問題ありません。
この特徴量によって誤差の生じ方が変わらないということは、この特徴量以外の要因によって誤差が発生しているということであるため、他の要因に目を向けていけば良い、ということになります。
特徴量のとある範囲のみ精度が悪い、ということが無いか確認をしていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3738576/aa7cf997-e2fe-38ad-0d35-d730db913e74.png)

年収を確認してみると、
年収が低い領域は問題無さそうですが、高い領域になると誤差が出でいるようですね。
（そもそもで対象データ数が少なく、偶然そのように見えると理由かもしれません。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3738576/9ae4667c-f1f8-2870-3e72-c01f62753342.png)

次にローン申請額です。
こちらも年収と同様な傾向がみられます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3738576/82d0b1ec-8e3c-93fb-3dab-2e191deee001.png)

最後に、都道府県です。
北海道は貸し倒れ予測が下振れ（リスクを低く見積もっている）、
千葉、兵庫、福岡、長野、福島は上振れしている（リスクを高く見積もっている）
という結果でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3738576/30cd908c-0d64-d7bd-5442-b3fadcb31214.png)


ここまでの結果を踏まえて考察してみます。
【アウトプットの観点】
「年収や貸し倒れは規模が大きくなるほど、誤差が出やすくなっている。低年収帯と高年収帯では傾向が異なっていて、1つのモデルで全てを表現するのは無理なのか？高年収帯特化モデルを別途作成してみるか。」
【インプットの観点】
「都道府県ごとに誤差が出やすい地域とそうでない地域が存在している。上振れ/下振れする地域には何らかの共通点があって、それらを表現する特徴量が足りていないのかもしれない。例えば、それぞれの都道府県では雇用形態や企業に差異があるのか？都道府県毎の雇用に関する統計データなどを探してみるか。」

このように、誤差の生じ方を確認するだけでも、様々な検討に繋がっていきます。

#### 特徴量の効き方を確認する

次に、特徴量の効き方も確認してみます。
DataRobotの特徴量毎の作用タブから、特徴量毎に「部分依存」の生じ方を確認していきます。
部分依存とは、他の特徴量の数値は元のデータのままで、興味のある特徴量の数値を全て特定の値に変えた時の予測の平均値です。この特徴量の値を操作したときに、予測値にどのような影響を与えるか確認することが出来ます。

年収を確認してみます。
年収が上がれば上がるほど、返済能力が高まるので、貸し倒れリスクが低くなるのは肌感覚に合います。
ただし、年収の高さに対して線形に比例する形で貸し倒れリスクが低くなるのではない、ということにも気づけます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3738576/9aa40b22-0d10-9922-1b92-37b91ed94306.png)

一方で、ローン申請額は、貸し倒れリスクに対して線形に効いていそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3738576/5be74bc0-50cf-389e-6507-26b91911b844.png)

これらを踏まえて、私なら以下のように考えます。
【プロセスの観点】
「年収はそのままの値を特徴量として入力するのではなく、何か変換を施すような特徴量エンジニアリングをした方が良いかもしれない。金融業界における貸し倒れと年収の関係に関する文献を調査してみよう。」

今回のケースではありませんでしたが、
ある値を閾値として、急に特徴量の効果が表れるようなケースもあります。
そのような場合には、閾値を超えるまでは特徴量の値を0にして、閾値を超えたら元のそのままの値にする、などの変換も考えられます。

このように、一度モデルを作成してみてから特徴量の効き方を確認することで、特徴量エンジニアリングのヒントを得られることができます。

# まとめ
今回は、DataRobotでモデル構築をした後に、どうやって精度改善をしていけば良いかの考え方の一例をご紹介しました。
誤差の出方や特徴量の効き方を確認することで、考察をすることが出来ます。

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>