Functional Classification usign k-fold CV
Computes Functional Classification using k-fold cross-validation
classif.kfold( formula, data, classif = "classif.glm", par.classif, kfold = 10, param.kfold = NULL, measure = "accuracy", cost, models = FALSE, verbose = FALSE )
formula |
an object of class |
data |
|
classif |
character, name of classification method to be used in fitting the model, see |
par.classif |
|
kfold |
|
param.kfold |
|
measure |
|
cost |
|
models |
|
verbose |
|
Parameters for k-fold cross validation:
Number of basis elements:
Data-driven basis such as Functional Principal Componetns (PC). No implemented for PLS basis yet.
Fixed basis (bspline, fourier, etc.).
Option used in some classifiers such as classif.glm
, classif.gsam
, classif.svm
, etc.
Bandwidth parameter. Option used in non-parametric classificiation models such as classif.np
and classif.gkam
.
Best fitted model computed by the k-fold CV using the method indicated
in the classif
argument and also returns:
param.min
, value of parameter (or parameters) selected by k-fold CV.
params.error
, k-fold CV error for each parameter combination.
pred.kfold
, predicted response computed by k-fold CV.
model
, if TRUE
, list of models for each parameter combination.
Manuel Febrero-Bande, Manuel Oviedo de la Fuente manuel.oviedo@usc.es
## Not run: data(tecator) cutpoint <- 18 tecator$y$class <- factor(ifelse(tecator$y$Fat<cutpoint,0,1)) table(tecator$y$class ) x <- tecator[[1]] x2 <- fdata.deriv(tecator[[1]],2) data <- list("df"=tecator$y,x=x,x2=x2) formula <- formula(class~x+x2) # ex: default excution of classifier (no k-fold CV) classif="classif.glm" out.default <- classif.kfold(formula, data, classif = classif) out.default out.default$param.min out.default$params.error summary(out.default) # ex: Number of PC basis elements selected by 10-fold CV # Logistic classifier kfold = 10 param.kfold <- list("x"=list("pc"=c(1:8)),"x2"=list("pc"=c(1:8))) out.kfold1 <- classif.kfold(formula, data, classif = classif, kfold = kfold,param.kfold = param.kfold) out.kfold1$param.min min(out.kfold1$params.error) summary(out.kfold1) # ex: Number of PC basis elements selected by 10-fold CV # Logistic classifier with inverse weighting out.kfold2 <- classif.kfold(formula, data, classif = classif, par.classif=list("weights"="inverse"), kfold = kfold,param.kfold = param.kfold) out.kfold2$param.min min(out.kfold2$params.error) summary(out.kfold2) # ex: Number of fourier basis elements selected by 10-fold CV # Logistic classifier ibase = seq(5,15,by=2) param.kfold <- list("x"=list("fourier"=ibase), "x2"=list("fourier"=ibase)) out.kfold3 <- classif.kfold(formula, data, classif = classif, kfold = kfold,param.kfold = param.kfold) out.kfold3$param.min min(out.kfold3$params.error) summary(out.kfold3) # ex: Number of k-nearest neighbors selected by 10-fold CV # non-parametric classifier (only for a functional covariate) output <- classif.kfold( class ~ x, data, classif = "classif.knn", param.kfold= list("x"=list("knn"=c(3,5,9,13)))) output$param.min output$params.error output <- classif.kfold( class ~ x2, data, classif = "classif.knn", param.kfold= list("x2"=list("knn"=c(3,5,9,13)))) output$param.min output$params.error ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.