1

チューニングしようとしていますrpart。私はすでにデータをトレーニングと cv セットに分割しています。コンビニエンス関数には、tune.rpartcv セットを指定する方法がないようです。だから私は通常のtune()機能を使用しています。

データセットには 595 個の潜在的な変数があるため、数式を使用して指定したくありません。これを行うと、次のエラーが表示されます

Error in tune(rpart, train.x = trainset[, -1], train.y = trainset[, 1],  : 
Dependent variable has wrong type!
In addition: Warning message:
In if (y) ans$y <- Y :
the condition has length > 1 and only the first element will be used

コード:

load('train.dat')
load('cv.dat')
trainset$class<-factor(trainset$class)
cvset$class<-factor(cvset$class)

rpart.tune<-tune(rpart,train.x= trainset[,-1], train.y=trainset[,1],
           validation.x=cvset[,-1], validation.y=cvset[,1],
             ranges = list(
               cp = c(0.002,0.005,0.01,0.015,0.02,0.03)),
           tunecontrol = tune.control(sampling = "fix"))

データは https://docs.google.com/folder/d/0B2_rKFnvrjMAM3FGbnFvZm5laUk/editで入手できます。

4

1 に答える 1

0

使用している分類器の予測出力を確認する必要があります。tune()(分類のために) 次のいずれかを受け取ることを期待します。

(is.logical(true.y) || is.factor(true.y)) && (is.logical(pred) || is.factor(pred) || is.character(pred))

rpartたとえば、 を使用した予測では、行列が出力として生成されます。その権利を処理することを試みるsvmか、2 つのクラスだけを与えることを試みることができます。

于 2013-01-12T10:55:21.423 に答える