私は、検査値を含む高次元の臨床データを使用して予測モデルを開発しようとしています。データ空間は、5kサンプルと200変数でまばらです。アイデアは、機能選択方法(IG、RFなど)を使用して変数をランク付けし、予測モデルの開発にトップランクの機能を使用することです。
素朴なベイズのアプローチでは機能の選択はうまくいきますが、変数空間のデータが欠落している(NA)ために予測モデルの実装で問題に直面しています。欠落データのあるサンプルを慎重に処理できる機械学習アルゴリズムはありますか?
私は、検査値を含む高次元の臨床データを使用して予測モデルを開発しようとしています。データ空間は、5kサンプルと200変数でまばらです。アイデアは、機能選択方法(IG、RFなど)を使用して変数をランク付けし、予測モデルの開発にトップランクの機能を使用することです。
素朴なベイズのアプローチでは機能の選択はうまくいきますが、変数空間のデータが欠落している(NA)ために予測モデルの実装で問題に直面しています。欠落データのあるサンプルを慎重に処理できる機械学習アルゴリズムはありますか?
回答:
使用するモデルによって異なります。生成モデルを使用している場合、欠損値を処理する原則的な方法があります()。たとえば、Naive BayesやGaussian Processesなどのモデルでは、欠落している変数を統合し、残りの変数で最適なオプションを選択します。
判別モデルの場合、それは不可能なので、より複雑です。多くのアプローチがあります。GharamaniとJordanは、欠損値が隠れ変数のように扱われ、EMアルゴリズムのバリアントがそれらを推定するために使用される原則的なアプローチを説明します。同様に、スモーラ等。問題を明示的に解決するSVMアルゴリズムの変形を説明します。
多くの場合、欠損値を変数の平均値で置き換えることをお勧めします。最初の論文で説明したように、これには問題があります。時々、変数の回帰を行って欠損値を推定する論文に出くわしましたが、それがあなたのケースに当てはまるかどうかはわかりません。
ブライマンのランダムフォレストを実装するRパッケージrandomForestSRCは、幅広いクラスの分析(回帰、分類、生存、競合リスク、教師なし、多変量)の欠損データを処理します。
次の投稿を参照してください。
欠損データを取り除くために、最近傍を使用した代入を試してください。
さらに、Caretパッケージにはさまざまなアルゴリズムへのインターフェイスがあり、すべてRの予測メソッドが付属しており、これを使用して新規データを予測できます。パフォーマンスメトリックは、同じパッケージを使用したk倍交差検証を使用して推定することもできます。
lightgbmは、ボックスからのNaNを処理できます(http://lightgbm.readthedocs.io/en/latest/)。