プロジェクトライブラリ
データ & MLCerabyte Health · Data Science Intern · 2022

見事に見えた無断キャンセル予測モデル——未来を読んでいたと気づくまで

投稿者:M. Alvarez · 元ヘルステックData Scienceインターン

共有者はヘルステックの面接でまさにこのプロジェクトを語り、インターンシップの内定を獲得しました。

この面接を練習する

実際の深掘り4問 · うち難問1 · 約12分

各質問に自分で答えると、本人の実際の答えが見られます。

本人はこう語った

クリニックの無断キャンセルを予測する小さなモデルが、初週から怪しいほど高い精度を出しました。この話の本題は、私が見つけたリーケージと、それをどう突き止めたかです。

全文を読む

ヘルステックのスタートアップで、私のプロジェクトは、どの患者が予約を無断キャンセルしそうかを予測して、クリニックが追加のリマインダーを送れるようにするモデルでした。最初のバージョンのAUCは0.94前後で、正直、サマーインターンにしては出来すぎだと感じました。特徴量重要度を見ると、1つの特徴量が支配的でした。予約の「status」フィールドです。調べてみると、このフィールドは来院後に更新されていて、その人が実際に来たかどうかをすでに含んでいました。典型的なリーケージで、モデルは答えを読んでいたわけです。予約時刻以降に書き込まれる特徴量をすべて落とし、予約が入った時点で分かるものだけで作り直しました。リードタイム、過去の無断キャンセル回数、曜日、距離のバケット、予約種別です。AUCは約0.71まで落ちました。見栄えは悪くなりましたが、本物です。確率のしきい値は、クラスが不均衡だったので精度の最大化ではなく、受付が実際にさばけるリマインダーのキャパシティを見て決めました。最終ドキュメントにはリーケージの経緯を明示的に書きました。次の人にあのstatusフィールドを信用してほしくなかったからです。クリニックはリスク上位バケットにリマインダーを送る小規模なパイロットを実施しました。私はこれを「解決済みの問題」ではなく「有望なシグナル」として位置づけました。

実際に聞かれた質問

statusフィールドが単に予測力が高いのではなく、リークしていると具体的にどう確認したのですか?

難しい

なぜAUCなのですか?単純に正解率を報告しなかったのはなぜですか?

普通

分類のしきい値はどう選んだのですか?

普通

着手前の想定に対して、実際のインパクトはどうでしたか?

易しい