Sequentially train top ranked algorithms on each class ordered by class performance and predict a given class using the sequentially trained fits.
Usage
sequential_train(sm, data, class, boxplot = FALSE)
sequential_pred(fit, sm, data, class, boxplot = FALSE)Arguments
- sm
a
splendid_modelobject- data
data frame with rows as samples, columns as features
- class
true/reference class vector used for supervised learning
- boxplot
if
TRUE, boxplots are plotted showing the distribution of F1-scores per class, for every algorithm.- fit
list of fitted models from
sequential_train
Value
sequential_train returns a list of fits over the top-ranked
sequence.
sequential_pred returns a list of two elements
prob: predicted sequential probabilitiescm: confusion matrices for each class
Details
sequential_train sequentially trains One-Vs-All models until all classes
have been classified. Hence for n classes, there are n - 1 sequential
fits. sequential_pred predicts class membership for each One-Vs-All
sequential model. Performance is evaluated on by-class F1-scores, since these
are better for evaluation than other metrics such as accuracy, precision, and
recall.
Examples
dat <- iris[, 1:4]
class <- iris$Species
sm <- splendid_model(dat, class, n = 2, algorithms = c("slda", "xgboost"))
st <- sequential_train(sm, dat, class)
sp <- sequential_pred(st, sm, dat, class)