Help us understand the problem. What is going on with this article?

Salesforce予測ビルダーでタイタニックのデータを分析してみた

同じデータをEinstein Discoveryで分析した記事がこちらにあります。
予測ビルダーで同じ分析してみることでEinstein Discoveryと予測ビルダーの製品としての位置付けが説明しやすいのではないかと思って試してみました。
(なお、Spring'19のバージョンをベースに記述しています。)

今回使用するデータ

前の記事と同じkaggleのタイタニックのデータです。
train.csv は生存/死亡の情報がある学習対象です。test.csv はこの項目がない予測対象です。
gender_submission.csv は予測対象の実際の生死情報なので、答え合わせに使います。

手順

  1. train.csv(生存情報をもつレコード=学習対象)とtest.csv(生存情報を持たないレコード=予測対象)をカスタムオブジェクトにロード
    Picture1.png
    インポート・ウィザードを使いましたが手段は何でも構いません。test.csvをロードした分についてはSurvivedの値はnullになります。

  2. チェックボックス(boolean)の数式項目を作成
    Survivedの項目がYesのときはtrue、それ以外はfalseとなる数式項目を作ります。これは現在予測ビルダーで予測できるのがboolean値だからです。
    Picture2.png

  3. リストビューを確認
    SurvivedのYes/Noが適切に作成した数式項目に反映されているか確認します。
    Picture3.png

  4. 設定画面より予測ビルダーをひらきます
    ここからが予測ビルダーの操作です。
    Picture4.png

  5. 新しい予測を作成します
    Picture5.png

  6. 新しい予測に名前をつけます
    Picture6.png

  7. 予測するオブジェクトを選びます
    Picture7.png

  8. 予測する項目として先程作成したbooleanの数式項目を選びます
    Picture8.png

  9. サンプルとして使用するレコードを指定します
    SurvivedにYes/Noいずれかが入っているレコードを対象とします。予測対象レコードはそれ以外のレコードです。Picture9.png
    avocado.jpg

  10. 予測の基準となる項目を選択します
    Salesforceレコードの作成者や所有者は今回の場合明らかに無関係ですので、そういった項目は外します。Picture10.png

  11. 結果を保存する項目名を指定します
    予測ビルダーは結果をカスタム項目に出力しますので、その項目を指定します。存在しない場合は予測ビルダーの方で作成しますので、事前に作成しておく必要はありません。Picture11.png

  12. 今までの設定を確認し予測を構築します。
    Picture12.png

  13. 構築には時間がかかります。
    Picture13.png
    構築中は状況が「待機中」となります。Picture14.png

  14. 構築が完了しました
    通知によって気づくことができます。Picture15.png
    状況が「レビュー準備完了」に変わりました。Picture16.png

  15. スコアカードを表示してみます
    予測品質は素晴らしいということなので一安心Picture17.png

  16. 有効化します
    結果が指定したカスタム項目に書き込まれます。これに少し時間がかかることがありますが、落ち着いて待ちましょう。Picture18.png

  17. 結果を確認します
    リストビューに予測結果の項目を追加しました。Survivedがnullのレコードに対し結果が書き込まれています。Picture19.png
    確かに女性の生存率が高く出ています。

答え合わせ

IDをマッチングさせてgender_submission.csvの生死情報を新規カラムにロードします。50を閾値として生存/死亡の予想とみなすと以下のような正答率になります。
Screen Shot 2019-06-04 at 16.28.34.png
死亡と予想していた人の98.86%が実際に死亡していて、生存と予想した人の96.75%が実際に生存したという結果になりました。

Einstein Discoveryとの違い

現時点では予想する項目値はtrue/falseのboolean値であるということはありますが(数値項目はベータ)、それ以外の大きな違いは以下のようになると思います。

ストーリーがない

スコアカードを見れば影響が大きいと判断した予測因子はわかりますし、
Screen Shot 2019-06-04 at 16.26.23.png
影響がプラスに働いたかマイナスに働いたかもわかります。
Screen Shot 2019-06-04 at 16.27.56.png
ただし、男性グループの中でも16歳以下の生存率は高い、といった分析は明示してくれません。

評価理由・改善のための推奨事項を明示しない

予測因子をどのように評価してこのような予測を行ったのか、改善に効くポイントは何なのかといった推奨事項は表示してくれません。下図はEinstein Discoveryの出力例です。
Screen Shot 2019-06-04 at 17.25.39.png

再予測は即時実行されない

Einstein Discoveryではレコードを変更すると即時に再予測することができますが、予測ビルダーの予測項目更新は1時間程度のタイムラグがあります(再予測されない訳ではありません)。下図はEinstein Discoveryでもし女性だったら生存確率がどの様になるか試してみた様子です。Untitled.gif

まとめ

Einstein Discoveryでないとできないことは当然あるわけですが、とにかく簡単に予測を作れることが魅力です。データセットを作成する必要もありませんし、オブジェクトの項目に結果が書かれるのでwritebackなどの設定も不要です。
Trailheadではレストランの予約がキャンセルされるか支払いが遅延するか、といったユースケースで課題が作成されています。ご自身のデータでも役に立つユースケースがないか一度考えてみると面白いかもしれません。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away