0

キャレット パッケージを使用して機能ランキング用のカスタム関数を実装しようとしています。問題は、サマリー関数が初めて呼び出されるたびに、10 エントリしか得られないことです。これはここでは問題ではありませんが、1 つのクラスがすべてのエントリのごく一部 (たとえば 5%) にすぎない大きなデータセットでは、まったく選択されない可能性があります。

l = lmFuncs
l$summary = function (data, lev = NULL, model = NULL) 
{
  print(dim(data))
  if (is.character(data$obs)) 
    data$obs <- factor(data$obs, levels = lev)
  postResample(data[, "pred"], data[, "obs"])
}

rfe(data.frame(matrix(rnorm(100*3), ncol=3)), sample(2, 100, replace=T), sizes=1:3, rfeControl=rfeControl(functions=l, number=20))

出力:

[1] 10  2
[1] 32  3
[1] 32  3
[1] 32  3
[1] 40  3
[1] 40  3
[1] 40  3
[1] 37  3
[1] 37  3
[1] 37  3
...

R セッション情報:

R version 2.15.1 (2012-06-22)
Platform: x86_64-pc-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

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

other attached packages:
 [1] pROC_1.5.4         kernlab_0.9-14     e1071_1.6-1        class_7.3-5        caret_5.15-044     foreach_1.4.0      cluster_1.14.3     reshape_0.8.4      plyr_1.7.1        
[10] lattice_0.20-10    Biobase_2.18.0     BiocGenerics_0.4.0

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

1 に答える 1

1

rfetrainおよびsbfすべてのモデル関数を実行する前に、要約関数の予備チェックを行います (チェックするメトリックの名前を取得するためなど)。

これらの関数が最初に行うことの 1 つは、データ セットのランダム サンプル (n = 10) を取得し、summary 関数を実行することです。

したがって、これは実際のモデリング プロセスとは関係ありません。

マックス

于 2012-12-12T16:47:25.097 に答える