classif.kfold {fda.usc} | R Documentation |
Functional Classification usign k-fold CV
Description
Computes Functional Classification using k-fold cross-validation
Usage
classif.kfold(
formula,
data,
classif = "classif.glm",
par.classif,
kfold = 10,
param.kfold = NULL,
measure = "accuracy",
cost,
models = FALSE,
verbose = FALSE
)
Arguments
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 |
|
Details
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
andclassif.gkam
.
Value
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
, ifTRUE
, list of models for each parameter combination.
Author(s)
Manuel Febrero-Bande, Manuel Oviedo de la Fuente manuel.oviedo@udc.es
Examples
## 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)