2017-03-21 11 views
0

したがって、モデルをトレーニングし、ランダムフォレスト回帰を使用してテストしようとしています。私の応答変数は数値で、数値と文字を組み合わせた23の変数があります。私は、次のエラーを取得していランダムフォレスト(回帰)のためのキャレットパッケージを使用するエラー

library(e1071) 
library(dplyr) 
library(class) 
library(caret) 
library(kernlab) 

data=read.csv(choose.files()) 


set.seed(1) 
mydata=data 
n=dim(mydata)[1] 
p=dim(mydata)[2]-1 
x=mydata[,-3] 
y=mydata[,3] 

n_train=35 
n_test=9 

random_order=sample(n) 
test_index=random_order[1:n_test] 
train_index=random_order[-(1:n_test)] 
y_train=y[train_index] 
y_test=y[test_index] 
x_train=x[train_index,] 
x_test=x[test_index,] 

traindata=data.frame(x=x_train,y=(y_train)) 
testdata = data.frame(x=x_test,y=(y_test)) 

fitControl <- trainControl(## 10-fold CV 
    method = "repeatedcv",classProbs=TRUE, 
    number = 10, 
    ## repeated ten times 
    repeats = 10) 

set.seed(1) 
newrf=train(y ~ ., data = traindata , method = "rf", 
      trControl = fitControl) 

newrf 
bestmodel_rf= newrf$finalModel 
ypredcaret=predict(bestmodel_rf, newdata = testdata) 
table(predict=ypredcaret, truth=y_test) 
plot(newrf) 
bestmodel_rf 

警告メッセージ:train.defaultで (X、Y、重み= W、...): を私は次のコードブロックを使用していtrain.defaultで (W、X、Y、重み=、...):回帰 警告メッセージのクラス確率を計算cannnot あなたはindはtrainControlclassProbs=Tを、指定した回帰

答えて

2

のクラス確率を計算cannnot分類モデル(応答変数が離散クラスラベルで構成されている)に対してクラス確率を計算する必要があります。ただし、その引数の設定は数値応答変数(回帰モデルが訓練されることを示します)と競合し、その結果、回帰のためにクラス確率を計算できないというエラーメッセージが表示されます。

あなたの説明と数値応答変数はこれが回帰の問題であることを示しているため、コードからclassProbs=T(デフォルト設定はclassProbs=F)を削除するとエラーが解決するはずです。

関連する問題