validation croisée avec package caret et fonction localpoly.reg

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

souad becher
Messages : 43
Enregistré le : 04 Oct 2015, 13:06

validation croisée avec package caret et fonction localpoly.reg

Messagepar souad becher » 05 Déc 2018, 13:28

Bonjour tout le monde,
Je fais une régression polynomial locale par la fonction localpoly.reg du package "NonpModelCheck".
Je veux faire une prédiction et validation croisée.
J'utilise le package "caret" mais comme cette fonction n'est pas présente dans les options "method" je dois la faire moi meme.

Code : Tout sélectionner

#k-folds cross validation
# Define training control
set.seed(123)
train.control <- trainControl(method = "cv", number = 10)
# Train the model
loc.reg<-list(type = "Regression",
                       library = "NonpModelCheck",
                       loop = NULL,
              parameters=data.frame(c('degree.pol','kernel.type',
                                      'bandwidth'),
                                    class=c('numeric','character','character'),
                                    label='parameter'),
              ##grid = function(x, y, len = NULL, search = "grid")
               ## data.frame(parameter = "none"),
              loop = NULL,
              fit = function(x, y, wts, param, lev, last, classProbs, ...) {         
                ## mboost requires a data frame with predictors and response
                dat <- if(is.data.frame(x)) x else as.data.frame(x)
                dat$y <- y
                mod <- localpoly.reg(xtr,ytr, degree.pol = 1,
                                     kernel.type = "gaussian",bandwidth = "CV")
              },
              predict = function(modelFit, newdata, submodels = NULL) {
                loc.mod1<-localpoly.reg(xtr,ytr, points=xte,degree.pol = 1, kernel.type = "gaussian",bandwidth = "CV")
                y_pred<-loc.mod1$predicted
              },
              #prob = NULL,
              #predictors = function(x, ...) {
              #  unique(as.vector(variable.names(x)))
              #},
              #tags = c("Ensemble Model", "Boosting", "Implicit Feature Selection"),
              levels = NULL,
              #sort = function(x) x
)


J'ai cette erreur

Code : Tout sélectionner

Error in list(type = "Regression", library = "NonpModelCheck", loop = NULL,  :
  argument 10 is empty
 


Je me suis basé sur le lienhttp://topepo.github.io/caret/using-your-own-model-in-train.html#illustrative-example-1-svms-with-laplacian-kernels pour faire cela mais je n'ai pas pu le faire exqctement. Pourriez vous m'aider svp?

souad becher
Messages : 43
Enregistré le : 04 Oct 2015, 13:06

Re: validation croisée avec package caret et fonction localpoly.reg

Messagepar souad becher » 05 Déc 2018, 14:53

En fait je ne comprends pas trop à quoi correspond"grid"
ce code me donne une erreur sur le train

Code : Tout sélectionner

set.seed(123)
train.control <- trainControl(method = "cv", number = 10)
# Train the model
loc.reg<-list(type = "Regression",
                       library = "NonpModelCheck",
                       loop = NULL,
              parameters=data.frame(c('degree.pol','kernel.type',
                                      'bandwidth'),
                                    class=c('numeric','character','character'),
                                    label='parameter'),
              grid = function(x, y, len = NULL, search = "grid")
                data.frame(parameter = "none"),
              loop = NULL,
              fit = function(x, y, wts, param, lev, last, classProbs, ...) {         
                ## mboost requires a data frame with predictors and response
                dat <- if(is.data.frame(x)) x else as.data.frame(x)
                dat$ytr <- y
                mod <- localpoly.reg(x,y, degree.pol = param$degree.pol,
                                     kernel.type = param$kernel.type,bandwidth = param$bandwidth)
              },
              predict = function(modelFit, newdata, submodels = NULL) {
                loc.mod1<-localpoly.reg(x,y, points=newdata,degree.pol = param$degree.pol,
                                        kernel.type = param$kernel.type,bandwidth = param$bandwidth)
                y_pred<-loc.mod1$predicted
              },
              prob = NULL,
              #predictors = function(x, ...) {
              #  unique(as.vector(variable.names(x)))
              #},
              #tags = c("Ensemble Model", "Boosting", "Implicit Feature Selection"),
              levels = NULL
              #sort = function(x) x
)
localpol <- train (x = as.data.frame(xtr), y = ytr,
               method = loc.reg,
               #preProc = c("center", "scale"),
               degree.pol = 1,
               kernel.type = 'guassian',
               bandwidth = 'CV',
               trControl=train.control)


Error: The tuning parameter grid should have columns

souad becher
Messages : 43
Enregistré le : 04 Oct 2015, 13:06

Re: validation croisée avec package caret et fonction localpoly.reg

Messagepar souad becher » 08 Déc 2018, 10:13

Bonjour,
y a-t-il quelqu'un pour m'aider svp. Je reformule ma question : je veux faire une cross validation sur prédiction par local polynomial regression. c'est urgent svp. Je ne veux pas utiliser le package caret car ma fonction n'entre pas dans la liste des fonctions prises en compte par ce package.
Je vous remercie d'avance.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité