cost.proportionate.classifier {costsensitive} | R Documentation |
Fits a classifier with sample weights by reducing the problem to classification without sample weights through rejection sampling.
cost.proportionate.classifier(X, y, weights, classifier, nsamples = 10, extra_rej_const = 0.1, nthreads = 1, seed = 1, ...)
X |
Features/Covariates for each observation. |
y |
Class for each observation. |
weights |
Weights for each observation. |
classifier |
Base classifier to use. |
nsamples |
Number of resamples to take. |
extra_rej_const |
Extra rejection constant - the higher, the smaller each sample ends up being, but the smallest the chance that the highest-weighted observations would end up in each sample. |
nthreads |
Number of parallel threads to use (not available on Windows systems). Note that, unlike the Python version, this is not a shared memory model and each additional thread will require more memory from the system. Not recommended to use when the algorithm is itself parallelized. |
seed |
Random seed to use for the random number generation. |
... |
Additional arguments to pass to 'classifier'. |
Beygelzimer, A., Langford, J., & Zadrozny, B. (2008). Machine learning techniques-reductions between prediction quality metrics.
## Not run: ### example here requires 'caret' package library(costsensitive) data(iris) set.seed(1) X <- iris[, c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width")] y <- factor(iris$Species == "setosa", labels = c("class1", "class2")) weights <- rgamma(100, 1) classifier <- caret::train model <- cost.proportionate.classifier(X, y, weights, classifier, method = "glm", family = "binomial", trControl=caret::trainControl(method="none"), tuneLength=1) predict(model, X, aggregation = "raw", type = "raw") predict(model, X, aggregation = "weighted", type = "prob") ## End(Not run)