私はSuperLearner Rパッケージを使用しています。 私は列車とテストセットの両方の予測y値を生成しようとしています。SuperLearner予測誤差
"newX"を定義せずにsuperlearnerモデルをフィッティングした後、MSEを計算して予測値と実際のY値を計算できるように列車セットの予測を取得した後、 "predict"コマンドを使用してテストは、次のコードを実行することで設定します。 :次に
sl.cv<-SuperLearner(Y = label, X = train,
SL.library=c("SL.randomForest", "SL.glmnet", "SL.svm"),
method = "method.NNLS", verbose=TRUE, cvControl=list(V=10))
pred.sl.cv <- predict(sl.cv, newdata=test, onlySL = T)
を、私は「予測」した後、次のエラーを取得する「オブジェクト$ whichScreenでエラーが発生しました:$演算子は、原子のベクトルには無効です」
私は多くを閲覧SuperLearnerモデルをフィッティングした後に「予測する」方法を学ぶためのオンライン情報源です。他の人はそうです:つまり、フィットされたSuperLearnerモデルのオブジェクト名(この場合は "sl.cv")を入力し、その後に新しいテストセットを置くことです。私は$演算子をタイプしなかった。
なぜこのエラーメッセージが表示されますか?この問題をどうやって解決するのですか?
もう1つ質問があります:オプションとしてcvControl = list(V = 10)を追加しても変更されますか? SuperLearnerモデルのデフォルト設定は、10倍のクロスバリデーションを実行することだと思います。したがって、 "cvControl = list(V = 10)"を削除しても何も変更されません。
私はあなたの助言に感謝します。ありがとうございました!
ラベルと列車のデータはどのように見えますか?これらの行列、ベクトル、int、文字列、またはそれらは何ですか? – JMA
ラベルは数字の点数で、列車のデータは単語行列(単語の袋)です。 –
Y変数ラベルはベクトルです。 X変数は行列です。列車と試験の両方のデータセットは、同じ形式のマトリックスになっています。 –