Dataiku インタラクティブスコアリングを用いた学習モデルの理解

# はじめに

Dataiku Version9から追加された「Interactive Scoring（インタラクティブスコアリング）」をDataiku Academyのハンズオンを利用して試してみましたので、ここで紹介します。

# インタラクティブスコアリングとは
Dataikuのインタラクティブスコアリングでは、What-if分析（感度分析）を実行して、指定した特徴量の値にもとづいて、対話的にスコアリングすることができます。これにより、特定の特徴量の変更が与える影響を把握することができます。

# インタラクティブスコアリングのハンズオン
Dataiku Academyの[「Hands-On Tutorial: What-If Analysis With Interactive Scoring」](https://academy.dataiku.com/crash-course-dataiku-dss-9/761942)でインタラクティブスコアリングを体験することができます。これ以降では、このハンズオンで実施した内容を記載します。

## 事前準備

- 手元で利用できるDataikuを用意します。VirtualBoxを利用してDataikuを用意する場合は、[「Virtualbox または VMWare を使って Dataiku をインストール」](https://www.dataiku.com/ja/%E8%A3%BD%E5%93%81/%E5%A7%8B%E3%82%81%E3%82%8B/virtualbox/)に手順が記載されていますので、この内容を参考に環境を準備します。また、[「Dataiku DSSをVirtual Boxを使って利用する方法」](https://qiita.com/goya1021/items/0b244ffec4a971b0f736)も参考にしてください。
- Dataiku　Academyを実施する際はユーザ登録しておくと、参照したページの履歴が残るので、ユーザ登録をお薦めします。

## プロジェクトを作成

Dataikuのホームページから［+ New Project］> DSS Tutorials > General Topics > Haiku Starterをクリックして、Haiku Starterプロジェクトを作成します。

## インタラクティブスコアリングのダッシュボードを表示

ダッシュボードの中の［What-if Analysis］スライドを表示します。
このスライドでは、Haiku Tシャツ販売会社で顧客のLTVが高いかどうか判断するモデルに対して、What-if分析（感度分析）が実施できるようになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417992/47d82fc7-910a-9e9b-c2d1-2d3738587814.png)

画面の左側には、特徴量を指定できるシミュレータ、右側には、シミュレータで設定した特徴量に基づく予測結果、およびその予測に寄与する特徴量が表示されます。

## 指定した特徴量の予測結果の確認

このシミュレータで特徴量の値を変えることで、指定した特徴量での予測結果、その予測に寄与する特徴量を把握することができます。

例えば、東京の新規顧客がどの程度LTVが高いと予測されるか確認する場合は、次のようにします。

- 新規のお客様の場合には事前にはわからない情報である、［order_date_year_distinct］や［order_day_of_week_distinct］、［order_date_month_distinct］、［ip_address_geopoint］は、［ignore feature］をクリックして、シミュレーションでは使用しないようにします。
- ［ip_address_country］に「Japan」、［ip_address_city］に「Tokyo」を指定します。
これにより、LTVが高いと予測される確率が28%程度になることが分かります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417992/a4e10b6d-c87d-a07d-c4ba-6a14e91a4fa9.png)

:::note info
二値分類、他クラス分類、回帰に対して、それぞれに応じた予測の表示がされます。
上記は二値分類の場合ですが、他クラス分類の場合は各カテゴリの予測確率とカテゴリが、回帰の場合は予測確率密度関数と予測値が表示されます。
:::

## 複数のWhat-if分析結果を比較する

What-if分析結果は、［ADD TO COMPARATOR］ボタンをクリックして、保存できます。保存した結果は、［COMPARE］ボタンをクリックして参照します。
例えば、下図は、東京の場合と、ニューヨークや、パリの場合を比較するために作成したビューになります。
東京、ニューヨーク、パリの場合のLTVの高い顧客の割合や、それに影響を与える特徴量を比較できます。

:::note info
ニューヨークやパリは次の特徴量を指定します。
・ニューヨーク：［ip_address_country］に「United States」、［ip_address_city］に「New York」
・パリ：［ip_address_country］に「France」、［ip_address_city］に「Paris」
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417992/c566e433-903d-5a11-8f19-67f2fc55c739.png)

## データをコピーして特徴量に入力

データセットから分析したいデータをコピーして、シミュレータに貼り付けて予測結果などを確認できます。

- データセット上で予測結果を確認したいレコード上で右クリックして、［Copy row as JSON］をクリックします。
- シミュレーションの左側にある［...］をクリックして、［Paste features］をクリックします。［Paste］画面でCtrl＋Vをクリックします。先ほどコピーしたデータが表示されるので、確認して［Paste］をクリックします。左側の特徴量に貼り付けたデータが反映され、その特徴量に応じて右側のビューが更新されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417992/b078c899-3337-68f5-0f69-5ef612c9caf6.png)

# おわりに

今回は、機械学習モデルのWhat-if分析ができる［Interactive Scoring（インタラクティブスコアリング）］について紹介しました。先日、Dataiku Version 10がリリースされ、MLOps関連の機能など追加されているようです。新しい機能を触りましたら、また紹介したいと思います。

# 参考資料

- [Interactive scoring](https://doc.dataiku.com/dss/latest/machine-learning/supervised/interactive-scoring.html)
- [Hands On: What-If Analysis With Interactive Scoring](https://academy.dataiku.com/crash-course-dataiku-dss-9/761942)