| mior | R Documentation |
This function fits the MIOR model, proposed by Xiao Y, Liu B, and Hao Z (2018) in "Multiple-instance Ordinal Regression". MIOR is a modified SVM framework with parallel, ordered hyperplanes where the error terms are based only on the instance closest to a midpoint between hyperplanes.
## Default S3 method:
mior(
x,
y,
bags,
cost = 1,
cost_eta = 1,
method = "qp-heuristic",
weights = NULL,
control = list(kernel = "linear", sigma = if (is.vector(x)) 1 else 1/ncol(x),
max_step = 500, scale = TRUE, verbose = FALSE, time_limit = 60, option =
c("corrected", "xiao")),
...
)
## S3 method for class 'formula'
mior(formula, data, ...)
## S3 method for class 'mi_df'
mior(x, ...)
x |
A data.frame, matrix, or similar object of covariates, where each
row represents an instance. If a |
y |
A numeric, character, or factor vector of bag labels for each
instance. Must satisfy |
bags |
A vector specifying which instance belongs to each bag. Can be a string, numeric, of factor. |
cost |
The cost parameter in SVM. If |
cost_eta |
The additional cost parameter in MIOR which controls how far away the first and last separating hyperplanes are relative to other costs. |
method |
The algorithm to use in fitting (default |
weights |
named vector, or |
control |
list of additional parameters passed to the method that control computation with the following components:
|
... |
Arguments passed to or from other methods. |
formula |
a formula with specification |
data |
If |
Predictions (see predict.mior()) are determined by considering the smallest
distance from each point to the midpoint hyperplanes across all instances in
the bag. The prediction corresponds to the hyperplane having such a minimal
distance.
It appears as though an error in Equation (12) persists to the dual form in
(21). A corrected version of this dual formulation can be used with
control$option = 'corrected', or the formulation as written can be used
with control$option = 'xiao'.
An object of class mior The object contains at least the following
components:
gurobi_fit: A fit from model optimization that includes relevant
components.
call_type: A character indicating which method misvm() was called
with.
features: The names of features used in training.
levels: The levels of y that are recorded for future prediction.
cost: The cost parameter from function inputs.
weights: The calculated weights on the cost parameter.
repr_inst: The instances from positive bags that are selected to be
most representative of the positive instances.
n_step: If method %in% c('heuristic', 'qp-heuristic'), the total
steps used in the heuristic algorithm.
x_scale: If scale = TRUE, the scaling parameters for new predictions.
default: Method for data.frame-like objects
formula: Method for passing formula
mi_df: Method for mi_df objects, automatically handling bag
names, labels, and all covariates.
Sean Kent
Xiao, Y., Liu, B., & Hao, Z. (2017). Multiple-instance ordinal regression. IEEE Transactions on Neural Networks and Learning Systems, 29(9), 4398-4413. doi: 10.1109/TNNLS.2017.2766164
predict.misvm() for prediction on new data.
if (require(gurobi)) {
set.seed(8)
# make some data
n <- 15
X <- rbind(
mvtnorm::rmvnorm(n/3, mean = c(4, -2, 0)),
mvtnorm::rmvnorm(n/3, mean = c(0, 0, 0)),
mvtnorm::rmvnorm(n/3, mean = c(-2, 1, 0))
)
score <- X %*% c(2, -1, 0)
y <- as.numeric(cut(score, c(-Inf, quantile(score, probs = 1:2 / 3), Inf)))
bags <- 1:length(y)
# add in points outside boundaries
X <- rbind(
X,
mvtnorm::rmvnorm(n, mean = c(6, -3, 0)),
mvtnorm::rmvnorm(n, mean = c(-6, 3, 0))
)
y <- c(y, rep(-1, 2*n))
bags <- rep(bags, 3)
repr <- c(rep(1, n), rep(0, 2*n))
y_bag <- classify_bags(y, bags, condense = FALSE)
mdl1 <- mior(X, y_bag, bags)
predict(mdl1, X, new_bags = bags)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.