1.予定しない再入院の予測(分類問題)

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
DataRobot コミュニティ

1.予定しない再入院の予測(分類問題)

この記事では、DataRobotを使って分類問題を解決する方法をまとめています。具体的には、データのインポート、探索的データ解析、ターゲットの設定、モデリングのオプション、モデルの評価、モデルの解釈、モデルのデプロイについて学びます。

ここでは、ある病院が、これまで入院していた糖尿病患者が退院してから30日以内に再入院するかどうかを予測する、というユースケースをとりあげます。この病院は、これを予測することによって、患者の早期退院を防止したいと考えています。

トレーニングデータには、再入院したかどうかが分かっている過去のデータを使います。1行が1人の患者を示します。各列は特徴量と呼ばれ、それぞれの患者の情報を示します。例えば、性別や年令と行った個人属性や臨床記録などがあります。ターゲット(予測対象)の「再入院」 は、TRUE/FALSEのブール値ですので、これは二値分類問題となります。データは本記事の最下部にあります。ぜひ一緒にお試しください。

糖尿病患者の再入院のトレーニングデータのスナップショット糖尿病患者の再入院のトレーニングデータのスナップショット

図 1.トレーニングデータのスナップショット

データのインポート

DataRobotのスクリーンショット データのインポートDataRobotのスクリーンショット データのインポート

図 2. データインポートオプション

DataRobotにデータをインポートする方法は、以下の5通りです。

  • データソースから、データベースコネクションを介してインポート
  • URLから、Amazon S3バケットなどのURLを指定してインポート
  • HDFSから、Hadoopに接続してインポート
  • ローカルファイルから、ローカルファイルをアップロード
  • AIカタログから直接プロジェクトを作成

 

探索的データ解析

データをインポートすると、DataRobotは探索的データ解析(EDA)を行います。その結果、データセット内の各特徴量の平均値や中央値、ユニークな値の数、欠損の数などが表示されます。

特徴量名をクリックするとヒストグラムが表示され、分布を詳細に見ることができます。

DataRobotのスクリーンショット:入院期間のヒストグラムDataRobotのスクリーンショット:入院期間のヒストグラム

図3. 探索的データ分析

 

ターゲットの設定

トレーニングデータの内容をよく把握したら、ターゲットを設定してDataRobotに何を予測するかを教えます。画面の一番上までスクロールして、下図に示すテキストフィールドにターゲットとなる列の名前を入力して下さい。DataRobotは分類問題か回帰問題かを自動で判別し、ターゲットの分布のグラフを表示します。

DataRobotのスクリーンショット ターゲットの設定DataRobotのスクリーンショット ターゲットの設定

図4. ターゲットの設定例

 

モデリングのオプション

ターゲットを設定したら、あとは開始ボタンを押すだけでオートパイロットを実行することができますが、モデルを構築する前に幾つかの設定をカスタマイズすることもできます。

たとえば、[高度なオプション] > [その他]で、最適化指標を変更することができます。

DataRobotのスクリーンショット 最適化指標の選択DataRobotのスクリーンショット 最適化指標の選択

図 5. 最適化指標

 

また、[パーティション]では、パーティショニングを変更することができます。

DataRobotのスクリーンショット パーティションDataRobotのスクリーンショット パーティション

図6. パーティション

 

開始ボタンを押すと、DataRobotはモデルを30~40個作成します。まず、ブループリント(下図)を作ります。ブループリントは、トレーニングデータの内容や分布に最適と考えられる前処理とアルゴリズムの組み合わせです。DataRobotが作成するすべてのモデルにブループリントが存在します。

DataRobotのスクリーンショット ブループリントDataRobotのスクリーンショット ブループリント

図 7. ブループリントの例

 

モデルの評価

DataRobotが作成したモデルは、リーダーボードで、評価指標の良い順番にランキングされます。リーダーボードは、[モデル] タブの中にあります。

DataRobotのスクリーンショット リーダーボードDataRobotのスクリーンショット リーダーボード

図 8. リーダーボードの例

 

データ・サイエンスでよく使用される評価メトリックは、[評価] > [ROC曲線] (図 9)で見つけることができます。ここには、混同行列、ROC曲線、予測分布などがあります。

DataRobotのスクリーンショット 混同行列、ROC曲線、予測分布DataRobotのスクリーンショット 混同行列、ROC曲線、予測分布

図 9. 評価ツール

 

モデルの解釈

モデルの精度を評価したら、使用した特徴量がそれぞれ予測にどのように影響を与えているかを見てみましょう。そうしたことを見るための一連のツールは、[解釈]タブの中に用意されています。

[特徴量のインパクト]では、そのモデルにとってどの特徴量が最も重要かを見ることができます(図10)。

DataRobotのスクリーンショット 特徴量のインパクトDataRobotのスクリーンショット 特徴量のインパクト

図10 特徴量のインパクトの例

これは、アルゴリズムに依存しない手法で計算されますので、DataRobotが作成するすべてのモデルで特徴量のインパクトを見ることができます。

また、同じく[解釈]タブの中にある[特徴量ごとの作用](図11)を使えば、それぞれの特徴量が個別に予測にどのように影響を与えているかを見ることができます。下図の例では、「入院回数(過去1年)」が再入院確率をどのように高めるかが分かります。これも、部分依存と呼ばれるモデルに依存しない手法で計算されています。

DataRobotのスクリーンショット 特徴量ごとの作用DataRobotのスクリーンショット 特徴量ごとの作用

図11 特徴量ごとの作用の例

特徴量のインパクトと特徴量ごとの作用は、各特徴量の予測全体に対する影響を示します。各特徴量が予測一つ一つにどのように影響を与えるかは、[解釈] > [予測の説明] で見ることができます (図 12)。

DataRobotのスクリーンショット 予測の説明DataRobotのスクリーンショット 予測の説明

図 12. 予測の説明の例

この画面では、例として、再入院確率が高い患者3名と低い患者3名を選び、それぞれどうしてそのように予測したのか、その理由を示しています。これはデータサイエンティスト以外の人にどういうモデルなのか説明するのに非常に便利です。ドメイン知識を持っている人がこの具体例を見れば、どういうモデルなのか理解することができるはずです。この画面では一部しか示していませんが、予測の説明は全ての予測に対して取得することができます。

 

モデルのデプロイ

[予測]タブの中に、DataRobotで予測する方法が2種類用意されています。

1つ目の方法は、[予測を作成]でGUIを使用して予測データをアップロードする方法です(図13)。予測を計算したあと、「予測をダウンロード」ボタンを押すだけで予測結果をダウンロードすることができます。通常、アドホックな分析やあまり頻繁に予測を行う必要がない場合に使用します。

DataRobotのスクリーンショット 予測を作成DataRobotのスクリーンショット 予測を作成

図13 GUIによる予測

[デプロイ]で、人手を介さずにアプリケーションから直接予測するためのREST APIエンドポイントを作成できます(図14)。独立した予測サーバーを使用することで、低レイテンシー、高スループットの予測をすることができます。また、定期的に予測を実行することもできます。

DataRobotのスクリーンショット デプロイDataRobotのスクリーンショット デプロイ

図14 デプロイ

 

バージョン履歴
最終更新日:
‎07-03-2020 03:45 PM
更新者: