2016-08-16 8 views
0

私のカスタムアルゴリズムの2つのパラメータをキャレットで調整したいと思います。 Unパラメータ(ラムダ)は数値で、他のパラメータ(前)は文字です。このパラメータは、「既知」または「未知」という2つの値を取ることができます。私はラムダパラメータだけでアルゴリズムをチューニングしました。いいんだよ。私は、文字パラメータを追加する場合でも、(前に)私は次のエラーを与える:キャレットを使用してカスタムアルゴリズムを調整するエラー

1: In eval(expr, envir, enclos) : model fit failed for Resample01: lambda=1, prior=unknown Error in mdp(Class = y, data = x, lambda = param$lambda, prior = param$prior, : object 'assignment' not found

エラーが(前に)文字のパラメータを指定する方法と関連していなければなりません。あなたがフィット機能でas.character(param$prior)を指定する必要があるためである

my_mod$parameters <- data.frame(
    parameter = c("lambda","prior"), 
    class = c("numeric", "character"), 
    label = c("sample_length", "prior_type")) 

## The grid Element 

my_mod$grid <- function(x, y, len = NULL){expand.grid(lambda=1:2,prior=c("unknown", "known"))} 

mygrid<-expand.grid(lambda=1:2,prior=c('unknown','known')) 


## The fit Element 

my_mod$fit <- function(x, y, wts, param, lev, last, classProbs, ...){ 
    mdp(Class=y,data=x,lambda=param$lambda,prior=param$prior,info.pred ="yes") 
} 

## The predict Element 

mdpPred <- function(modelFit, newdata, preProc = NULL, submodels = NULL) 
    predict.mdp(modelFit, newdata) 
my_mod$predict <- mdpPred 

fitControl <- trainControl(method = "cv",number = 5,repeats = 5) 

train(x=data, y = factor(Class),method = my_mod,trControl = fitControl, tuneGrid = mygrid) 
+0

これが機能するかどうかわかりませんが、 'method =" my_mod "'、つまり引用符でチェックしてください。 'train()'と 'trainControl()'のドキュメントでは、 'train'の中のメソッドの引用符を使用しています。また、my_modが元々持っていたもの、つまりパラメータ、pred、fitなどを追加する前に指定してください。 –

+0

分類または回帰ですか? –

+0

@ SowmyaS.Manian分類。 –

答えて

0

:ここに私のコードです。

関連する問題