7

モデル生成にRcaretモジュールを使用しようとしていますが、交差検定関数を使用したいと思います。一緒に機能する唯一の相互検証機能rpartLOOCV(相互検証を1つ除外する)であることがわかりました。

次のコードはエラーをスローします:

library(cart)
data(trees)
formula=Volume~Girth+Height
train(formula, data=trees,  method='rpart')

警告メッセージ:nominalTrainWorkflow(dat = trainData、info = trainInfo、method = method、:リサンプリングされたパフォーマンス測定値に欠落した値がありました。

このエラーはどういう意味ですか?どうすればエラーを解消できますか?私はインターネットで検索しましたが、このエラーメッセージは1回もヒットしませんでした。rpartエラーをモデル生成まで追跡しました。それはどういうわけかこのエラーメッセージを出力します、他のすべてのモード生成方法はうまくいきます!

を使用すると、すべて正常に動作しますLOOCV

警告をworkflows.Rファイルまでたどりましたが、なぜこの警告がスローされるのかわかりません。

> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_GB.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_GB.UTF-8        LC_COLLATE=en_GB.UTF-8    
 [5] LC_MONETARY=en_GB.UTF-8    LC_MESSAGES=en_GB.UTF-8   
 [7] LC_PAPER=C                 LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] parallel  stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
 [1] earth_3.2-3           plotrix_3.4           plotmo_1.3-1         
 [4] leaps_2.9             doMC_1.2.5            multicore_0.1-7      
 [7] iterators_1.0.6       forecast_3.20         RcppArmadillo_0.3.0.2
[10] Rcpp_0.9.10           fracdiff_1.4-1        tseries_0.10-28      
[13] zoo_1.7-7             quadprog_1.5-4        caret_5.15-023       
[16] foreach_1.4.0         cluster_1.14.2        reshape_0.8.4        
[19] plyr_1.7.1            lattice_0.20-6        mda_0.4-2            
[22] class_7.3-3           rpart_3.1-52          data.table_1.8.0     

loaded via a namespace (and not attached):
[1] codetools_0.2-8 compiler_2.15.0 grid_2.15.0    
4

1 に答える 1

9

R メーリングリストとcaret著者の助けを借りて、次の解決策を見つけました。

何らかの理由で生成されたモデルが一定である場合、エラーが発生します。この場合、定数とは、すべての入力値に対してモデルが常に同じ値を生成することを意味します。この場合、R^2 の計算は失敗します。R^2 はデフォルトでキャレットによって計算されます。キャレットはモデル選択に R^2 値を使用しないため、このエラーをスキップできます。

2 つの質問が残っています。

  • モデルが定数の場合に R^2 の計算が失敗する理由は明確ではありません。caretモデル予測に少なくとも 2 つの異なる値がない場合、コードは明示的に失敗します。R^2 の計算を、これらの制限のない自作の計算に置き換えました。
  • rpart が定数モデルを生成することがある理由は、まだ未解決です。特に、LOOCV 以外のクロス検証用の定数モデルのみを生成する理由。

つまり、警告を無視して、必要に応じて独自の R^2 を記述して警告を修正できます。

于 2012-05-17T17:20:45.550 に答える