Split Conformal Prediction Sets for Classification
Source:R/conformal_class_split.R
conformal_class_split.Rd[Deprecated] conformal_class_split() is identical to
conformal_lac() and is deprecated. Use conformal_lac() instead.
Arguments
- x
A numeric matrix or data frame of predictor variables.
- y
A factor (or character/integer vector coerced to factor) of class labels.
- model
A
make_model()specification withtype = "classification", or a fitted model object that produces class probabilities.- x_new
A numeric matrix or data frame of new predictor variables.
- alpha
Miscoverage level. Default
0.10gives 90 percent prediction sets.- cal_fraction
Fraction of data used for calibration. Default
0.5.- seed
Optional random seed.
Value
A predictset_class object. See conformal_lac() for details.
References
Sadinle, M., Lei, J. and Wasserman, L. (2019). Least ambiguous set-valued classifiers with bounded error levels. Journal of the American Statistical Association, 114(525), 223-234. doi:10.1080/01621459.2017.1395341
Examples
set.seed(42)
n <- 300
x <- matrix(rnorm(n * 4), ncol = 4)
y <- factor(ifelse(x[,1] + x[,2] > 0, "A", "B"))
x_new <- matrix(rnorm(50 * 4), ncol = 4)
clf <- make_model(
train_fun = function(x, y) {
df <- data.frame(y = y, x)
glm(y ~ ., data = df, family = "binomial")
},
predict_fun = function(object, x_new) {
df <- as.data.frame(x_new)
names(df) <- paste0("X", seq_len(ncol(x_new)))
p <- predict(object, newdata = df, type = "response")
cbind(A = 1 - p, B = p)
},
type = "classification"
)
# \donttest{
suppressWarnings(
result <- conformal_class_split(x, y, model = clf, x_new = x_new)
)
# }