1
/
5

解釈可能なアナリティクス手法を実務で使ってみた

こんにちは。AIグループのMasatoです。普段はアナリティクスを適用する業務の選定からアルゴリズム実装、業務建付けまで幅広にお手伝いをしています。


この記事では、私が関わったいくつかのプロジェクトで課題となった「機械学習の解釈性」について書きたいと思います。

最近、アナリティクスやAIの導入と活用はCEOアジェンダに必ず入っているトピックとなってきており、お客様の中でも企業の成長には欠かせられない取り組みだと日々の業務を通して実感しています。お客様によっても様々ですが、我々のようなスペシャリストに分析を依頼したり、社内で育成や採用を通じてケイパビリティ獲得・強化を進めたりしておりデジタルもアナリティクスも導入していて当たり前な世の中になってきています。

一方、アナリティクスやAIを利用する方々と会話をするとほぼ必ず「なぜその予測結果になったか理由を知りたい」という要望が出てきます。私が利用者だった場合でも同じことを思うだろうなと思う一方、機械学習やAIは一般的にブラックボックスな処理系なので完全に理解することは難しいです。

最近、一般的にも同様の要望が多いためか説明可能なAI(Interpretable MLまたはeXplainable AI)の研究が行われています。この記事では、実際に実業務で活用してみたテーブルデータに対する手法について紹介してみたいと思います。

予測モデルの解釈は、

  1. 説明変数の重要度
  2. 部分依存性
  3. LIMESHAP-Valueといった近似手法

で全体から個別まで説明を試みることができます。


ここから先で、それぞれのアプローチを実際のデータとアルゴリズムに適用してどのような結果が見えてくるか実例を紹介したいと思います。

実データは一般に公開されている電話サービスの解約データ(Telco Customer Churn Data)を利用しています。

説明変数重要度でデータ全体の傾向を知る

説明変数の重要度は、機械学習を少しかじったことがあれば知っている手法かと思います。これは学習したデータ全体の傾向が掴めます。

勾配ブースティング系のライブラリで変数重要度を計算すると次のような結果が得られます。


この図で説明力の上位にあるContract、tenureはそれぞれ契約プランと契約月数です。

部分依存性とICEで変数と予測値の関係を知る

解約有無を予測するには契約プランや契約月数が重要なことはわかりましたが、どういうのが解約されやすいだろう?という疑問が出るので部分依存性を確認します。

部分依存性は感覚的な説明をするとWhat-if分析のように、すでにあるデータを用いてある変数だけをいろんな値に変えて予測値がどうかわるか調べる手法です。各データ個別の予測値がICE(Individual Conditional Expectation)、全予測値の平均が部分依存性(Partial Dependence)と呼ばれるものです。

ここではRでの実装を活用して計算してみました。

https://cran.r-project.org/web/packages/pdp/index.html

まず試しにContractで確認してみると


年契約系だと解約されにくいことがわかります。

ほかに利用月数を確認してみると


契約月数が長くなるにつれて解約されにくくなる関係が確認できました。

これで、どのような状態に変えれば解約されにくい状態になるか手掛かりがつかめます。

SHAP-Valueで個別の状態を把握

私が担当させていただいた案件で、デジタルによって提供サービスを細かく調整したいので誰に何をすればいいかまでアナリティクで知りたいという要望を何度か受けたことがあります。そこでSHAP-Valueを用いた要素分解を活用したので最後に紹介したいと思います。

SHAP-Valueとは、もともと複雑でブラックボックスな機械学習モデルを解釈可能なものに近似して、その近似モデルから影響要因を知る手法です。これにより与えたデータの何が予測結果にどのように影響するか、予測に用いた全情報について把握できるようになります。

例えば解約されやすそうな契約の場合このように見えます。


SHAP-Valueを算出して、財務諸表で見覚えのあるウォーターフォール図で表したのが次の図です。黒い棒グラフが最終的な予測値で2番目の<base>はベースラインのようなものです。

解約されそうな要因は契約月数、インターネットサービスの契約有無あたりが強い要因だということがわかります。あとはこの契約の該当する値を確認し部分依存性のプロットと見合わせて、何をどう変えればよいか計画するのに使えます。

もう1つ、解約されにくそうな契約を同様に可視化すると次のようになります。


先ほどとは違う項目の影響が大きいことが把握できますね。

ここまで紹介したような手法を活用し、マクロからミクロの説明情報を、業務組込みの方針やお客様の要望を取り込みながら扱いやすいように加工し、アナリティクスを実業務で活用していただけるよう日々工夫を重ねています。

Appendix

今回記事を書くために各要素をつなぎ合わせるために数百行ほどコードを書くことになりましたが、DALEXModel Ingredientsといった便利なパッケージが徐々に登場してきているので作業が楽になりそうです。

今回紹介はしていないのですが、ベイズ系の手法で因果関係を把握するためのアプローチもあります。個人的にはCausalNetがカジュアルに導入できることから、次はこれを実務で使ってみたいと狙っています。

最後に

実務を通して、日々直面する課題を解決するためにも調査・学習・適用は欠かせませんが、直接業務に使わないトピックも備えあれば患いなしという思いで、プライベートでも機械学習についてキャッチアップは欠かさないよう日々精進しています。

最近は画像系の手法や機械学習が関係する基盤技術のキャッチアップで休日があっという間に過ぎるような充実した時間を過ごしています。

分析コンペにも参加していて、上位で表彰していただいた時の達成感はたまらなかったです!


技術系だけではなく、アナリティクスを使いつついかにお客さんの組織を変革させるか、というコンサル色の濃い部分についてもなるべく学ぶように心がけています。オンライントレーニングやグローバルで開催されているオンラインの勉強会を通して常に自己鍛錬を重ねられる環境なのでとても充実して楽しい環境です!


この記事を通して、アナリティクスや業務支援を総合的に支援する現場の手触り感を感じて頂けたら幸いです。アクセンチュアで自身の強みを活かしアナリティクスを活用したお客様の支援に挑戦してみたいと思われたら、是非一緒にチャレンジしてみませんか?

▼関連採用ページ

・AIグループ採用ページはこちら

・データサイエンティスト応募はこちら

アクセンチュア株式会社では一緒に働く仲間を募集しています
今週のランキング
アクセンチュア株式会社からお誘い
この話題に共感したら、メンバーと話してみませんか?