2017-12-23 18 views
0

これまでのところ、RandomForestでCARETパッケージを使用してトレーニングを行っていました。"RSNNS"パッケージでCARETの列車機能を使用できません

私は、CARETのtrainのクロスバリデーション機能を使用しており、すべてがうまくいきます。

これは、ニューラルネットワークを使ってみたいと思って、RSNNSパッケージをアップロードするまでです。今、私が電車を使用しようとしているとき(私の古いrfアルゴリズムで)、次のエラーが出る。

Error in UseMethod("train") : no applicable method for 'train' applied to an object of class "c('tbl_df', 'tbl', 'data.frame')"

このバグはありますか?なぜRSNNSがそれを引き起こすのですか?

答えて

3

問題は、がマスキングcaret::train()です。なぜなら、キャレットの後にRSNNSバージョンがロードされたからです。 packageName::function()の構文を使用してcaret::train()を呼び出して、問題を解決します。

library(caret) 
library(RSNNS) 

library(mlbench) 
data(Sonar) 

inTraining <- createDataPartition(Sonar$Class, p = .75, list=FALSE) 
training <- Sonar[inTraining,] 
testing <- Sonar[-inTraining,] 
fitControl <- trainControl(method = "cv", 
          number = 3) 
# error because RSNNS::train does not work like caret::train() 
system.time(fit <- train(Class ~ ., method="rf",data=Sonar,trControl = fitControl)) 
# correct by calling caret::train() 
system.time(fit <- caret::train(Class ~ ., method="rf",data=Sonar,trControl = fitControl)) 
fit 

...と出力:

> system.time(fit <- train(Cx=Sonar[,-61],y=Sonar[,61], method="rf",data=Sonar,trControl = fitControl)) 
Error in UseMethod("train") : 
    no applicable method for 'train' applied to an object of class "data.frame" 
Timing stopped at: 0.033 0 0.034 
> # correct by calling caret::train() 
> system.time(fit <- caret::train(x=Sonar[,-61],y=Sonar[,61], method="rf",data=Sonar,trControl = fitControl)) 
    user system elapsed 
    3.888 0.069 3.981 
> fit 
Random Forest 

208 samples 
60 predictor 
    2 classes: 'M', 'R' 

No pre-processing 
Resampling: Cross-Validated (3 fold) 
Summary of sample sizes: 139, 138, 139 
Resampling results across tuning parameters: 

    mtry Accuracy Kappa  
    2 0.8175983 0.6292393 
    31 0.7645963 0.5249374 
    60 0.7694272 0.5336925 

Accuracy was used to select the optimal model using the largest value. 
The final value used for the model was mtry = 2. 
> 
+0

が魅力のように働きました!ありがとう!私はなぜそれがどこにも書かれていないのだろうかと思う。 – Mark2Bra

+1

@ Mark2Bra - これは少なくとも2002年の[r helpメーリングリスト](https://stat.ethz.ch/pipermail/r-help/2002-April/020891.html)に基づいた、少なくとも15歳の問題です。 。 'packageName :: function()'構文の使用方法は、[UCLAデジタル研究教育機関](https://stats.idre.ucla.edu/r)のこの記事のように、複数の場所で文書化されています。/faq/how-does-r-handle-overlapping-object-names /)のウェブサイトを参照してください。 –

関連する問題