This function uses the one-vs-all multiclass classification strategy to fit a series of MI-SVM models for predictions on ordinal outcome data. For an ordinal outcome with K levels, we fit K MI-SVM models to predict an individual level vs not.
# S3 method for default
misvm_orova(
x,
y,
bags,
cost = 1,
method = c("heuristic", "mip", "qp-heuristic"),
weights = TRUE,
control = list(kernel = "linear", sigma = if (is.vector(x)) 1 else 1/ncol(x),
nystrom_args = list(m = nrow(x), r = nrow(x), sampling = "random"), max_step = 500,
type = "C-classification", scale = TRUE, verbose = FALSE, time_limit = 60, start =
FALSE),
...
)# S3 method for formula
misvm_orova(formula, data, ...)
# S3 method for mi_df
misvm_orova(x, ...)
An object of class misvm_orova The object contains at least the
following components:
fits: a list of misvm objects with length equal to the number of
classes in y. See misvm() for details on the misvm object.
call_type: A character indicating which method misvm_orova() was
called with.
features: The names of features used in training.
levels: The levels of y that are recorded for future prediction.
A data.frame, matrix, or similar object of covariates, where each
row represents an instance. If a mi_df object is passed, y, bags are
automatically extracted, and all other columns will be used as predictors.
A numeric, character, or factor vector of bag labels for each
instance. Must satisfy length(y) == nrow(x). Suggest that one of the
levels is 1, '1', or TRUE, which becomes the positive class; otherwise, a
positive class is chosen and a message will be supplied.
A vector specifying which instance belongs to each bag. Can be a string, numeric, of factor.
The cost parameter in SVM. If method = 'heuristic', this will
be fed to kernlab::ksvm(), otherwise it is similarly in internal
functions.
The algorithm to use in fitting (default 'heuristic'). When
method = 'heuristic', which employs an algorithm similar to Andrews et
al. (2003). When method = 'mip', the novel MIP method will be used. When
method = 'qp-heuristic, the heuristic algorithm is computed using the
dual SVM. See details.
named vector, or TRUE, to control the weight of the cost
parameter for each possible y value. Weights multiply against the cost
vector. If TRUE, weights are calculated based on inverse counts of
instances with given label, where we only count one positive instance per
bag. Otherwise, names must match the levels of y.
list of additional parameters passed to the method that control computation with the following components:
kernel either a character the describes the kernel ('linear' or
'radial') or a kernel matrix at the instance level.
sigma argument needed for radial basis kernel.
nystrom_args a list of parameters to pass to kfm_nystrom(). This is
used when method = 'mip' and kernel = 'radial' to generate a Nystrom
approximation of the kernel features.
max_step argument used when method = 'heuristic'. Maximum steps of
iteration for the heuristic algorithm.
type: argument used when method = 'heuristic'. The type argument is
passed to e1071::svm().
scale argument used for all methods. A logical for whether to rescale
the input before fitting.
verbose argument used when method = 'mip'. Whether to message output
to the console.
time_limit argument used when method = 'mip'. FALSE, or a time
limit (in seconds) passed to gurobi() parameters. If FALSE, no time
limit is given.
start argument used when method = 'mip'. If TRUE, the mip program
will be warm_started with the solution from method = 'qp-heuristic' to
potentially improve speed.
Arguments passed to or from other methods.
a formula with specification mi(y, bags) ~ x which uses the
mi function to create the bag-instance structure. This argument is an
alternative to the x, y, bags arguments, but requires the data
argument. See examples.
If formula is provided, a data.frame or similar from which
formula elements will be extracted
misvm_orova(default): Method for data.frame-like objects
misvm_orova(formula): Method for passing formula
misvm_orova(mi_df): Method for mi_df objects, automatically handling bag
names, labels, and all covariates.
Sean Kent
Andrews, S., Tsochantaridis, I., & Hofmann, T. (2002). Support vector machines for multiple-instance learning. Advances in neural information processing systems, 15.
predict.misvm_orova() for prediction on new data.
data("ordmvnorm")
x <- ordmvnorm[, 3:7]
y <- ordmvnorm$bag_label
bags <- ordmvnorm$bag_name
mdl1 <- misvm_orova(x, y, bags)
predict(mdl1, x, new_bags = bags)
Run the code above in your browser using DataLab