機械学習モデル(GBM、NNなど)を生存分析に使用するにはどうすればよいですか?


13

Cox Proportional Hazards回帰やいくつかのKaplan-Meierモデルなどの従来の統計モデルを使用して、障害などのイベントの次の発生までの日数を予測できることを知っています。つまり、生存分析

ご質問

  1. GBMやニューラルネットワークなどの機械学習モデルの回帰バージョンを使用して、イベントが発生するまでの日数を予測するにはどうすればよいですか?
  2. 発生までの日数をターゲット変数として使用し、単に回帰モデルを実行するだけでは機能しないと思いますか?なぜ機能しないのか、どうすれば修正できますか?
  3. 生存分析問題を分類に変換してから、生存確率を取得できますか?その後、バイナリターゲット変数を作成する方法は?
  4. 機械学習アプローチとコックス比例ハザード回帰およびカプラン・マイヤーモデルなどの長所と短所は何ですか?

サンプル入力データが以下の形式であることを想像してください

ここに画像の説明を入力してください

注意:

  • センサーは10分間隔でデータをpingしますが、NAの行で表されるように、ネットワークの問題などによりデータが欠落する場合があります。
  • var1、var2、var3は予測変数、説明変数です。
  • failure_flagは、マシンが失敗したかどうかを示します。
  • マシンIDごとに10分間隔で6か月分のデータがあります

編集:

予想される出力予測は以下の形式である必要があります ここに画像の説明を入力してください

注:毎日のレベルで、今後30日間の各マシンの障害の可能性を予測します。


1
これがイベントまでの時間データである理由を説明できれば役立つと思います。正確に、モデル化する応答は何ですか?
クリフAB

予想される出力予測テーブルを編集して追加し、明確にしました。さらに質問がある場合はお知らせください。
GeorgeOfTheRF

1
:いくつかのケース、例えば、離散時間ハザードモデルでは、バイナリの結果に生存データを変換する方法がありますstatisticalhorizo​​ns.com/wp-content/uploads/Allison.SM82.pdfは。ランダムフォレストなどの一部の機械学習方法では、たとえば、分割基準としてログランク統計を使用して、イベントデータまでの時間をモデル化できます。
-dsaxton

@dsaxtonありがとう。上記の生存データをバイナリの結果に変換する方法を説明できますか?
-GeorgeOfTheRF

よく見ると、すでにバイナリの結果が得られているようですfailure_flag
dsaxton

回答:


6

ニューラルネットワークの場合、これは有望なアプローチです。WTTE-RNN-あまりハッキーな解約予測

この方法の本質は、リカレントニューラルネットワークを使用して各タイムステップでワイブル分布のパラメーターを予測し、打ち切りを考慮した損失関数を使用してネットワークを最適化することです。

著者は、Githubでの実装もリリースしました


2

これらのリファレンスをご覧ください。

https://www.stats.ox.ac.uk/pub/bdr/NNSM.pdf

http://pcwww.liv.ac.uk/~afgt/eleuteri_lyon07.pdf

また、Cox Proportional Hazards(CPH)などの従来のハザードベースのモデルは、イベント発生までの時間を予測するためではなく、i)イベントの観測、したがってii)生存曲線に対する変数の影響(相関)を推測するように設計されていることに注意してください。どうして?CPHのMLEを見てください。

したがって、「発生までの日数」のようなものをより直接的に予測したい場合、CPHはお勧めできません。上記の2つのリファレンスに記載されているように、他のモデルがより適切にタスクに役立つ場合があります。


1

@dsaxtonが言ったように、離散時間モデルを構築できます。pを予測するように設定します(前日まで生き残った場合、この日に失敗します)。入力は現在の日付(任意の表現)で、たとえば1つのホットエンコーディング、整数、..スプライン...およびその他の独立変数

したがって、データの行を作成し、時間t-1まで生き残った各サンプルについて、時間t(0/1)で死にました。

したがって、現在、時間Tまで生存する確率は、t = 1からTのp(与えられた時間tで死なない)の積です。つまり、モデルからT予測を行い、一緒に乗算します。

故障までの時間を直接予測するのがそのような考えではない理由は、問題の隠れた構造のためだと思います。たとえば、失敗しなかったマシンに何を入力しますか。基本的な構造は、独立したイベントです。つまり、指定された時刻tで失敗しても、t-1まで失敗しませんでした。したがって、たとえば、それが一定であると仮定すると、生存曲線は指数関数になります(ハザードモデルを参照)

10分間隔でモデル化するか、日レベルまで分類問題を集計できることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.