5

Amelia パッケージを使用して 40 個の帰属データセットを作成しました。それらは a.out に保存されています。

次に、lapply 関数を使用して、データ セットにランダム フォレスト モデルを作成しました。

rf.amelia.out = lapply(a.out$imputations, function(i) randomForest(y + x1+x2, data = i) )

ここで、これらのモデルを組み合わせて、一連の a.test.out で予測を行いたいと思います。これは、amelia 帰属データのテスト データのリストです。

これらのランダム フォレスト モデルを組み合わせる方法がわかりません。私はランダムフォレストの結合機能を試しましcombine(rf.amelia.out)たが、うまくいきませんでした。問題は、rf.amelia.outがモデル オブジェクトではなく、どちらでもないことですrf.amelia.out[1]

また、zelig を使用して複数のモデルを自動的に結合しようとしました。

rf.z.out = zelig(y~x1+x2, data = a.out, model = "rf")

しかし、zelig はランダム フォレスト モデルをサポートしていないと思います。

複数のランダム フォレスト モデルにアクセスして結合し、1 つの予測を行うにはどうすればよいですか?

4

1 に答える 1

2

rf.amelia.outはすでにリストであるため、リストに再度変換しようとすると、 の関数はそのメソッドcombineを失います。randomForest次の 2 つの修正のいずれかをお勧めします。

  1. 関数を変更してcombineから、変更したバージョンを使用します。

    body(combine)[[4]] <- substitute(rflist <- (...))

    rf.all <- combine(rf.amelia.out)

  2. または使用:

    combine(rf.amelia.out[[1]].rf.amelia.out[[2]],...)

最初の方法の方が簡単だと思います(そして、手動ではありません)。

于 2015-05-03T22:17:38.900 に答える