## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 5 ) ## ----eval = FALSE------------------------------------------------------------- # install.packages("gipsDA") ## ----eval = FALSE------------------------------------------------------------- # pak::pkg_install("AntoniKingston/gipsDA") ## ----------------------------------------------------------------------------- library(gipsDA) ## ----------------------------------------------------------------------------- set.seed(42) train_id <- unlist( lapply(split(seq_len(nrow(iris)), iris$Species), sample, size = 35), use.names = FALSE ) train <- iris[train_id, ] test <- iris[-train_id, ] ## ----------------------------------------------------------------------------- fit <- gipslda(Species ~ ., data = train) fit ## ----------------------------------------------------------------------------- pred <- predict(fit, test) head(pred$class) head(pred$posterior) mean(pred$class == test$Species) ## ----model-hierarchy, echo = FALSE, fig.cap = "The diagram illustrates the hierarchical relationships between the models.", out.width = "95%"---- knitr::include_graphics("figures/models_hierarchy.png") ## ----------------------------------------------------------------------------- lda_map <- gipslda( Species ~ ., data = train, MAP = TRUE ) lda_map ## ----------------------------------------------------------------------------- lda_avg <- gipslda( Species ~ ., data = train, MAP = FALSE ) lda_avg ## ----eval = FALSE------------------------------------------------------------- # fit_mh <- gipsqda( # Species ~ ., # data = train, # optimizer = "MH", # max_iter = 1000 # ) ## ----------------------------------------------------------------------------- lda_fit <- gipslda(Species ~ ., data = train) qda_fit <- gipsqda(Species ~ ., data = train) joint_qda_fit <- gipsmultqda(Species ~ ., data = train) ## ----------------------------------------------------------------------------- lda_pred <- predict(lda_fit, test) qda_pred <- predict(qda_fit, test) joint_qda_pred <- predict(joint_qda_fit, test) c( gipslda = mean(lda_pred$class == test$Species), gipsqda = mean(qda_pred$class == test$Species), gipsmultqda = mean(joint_qda_pred$class == test$Species) ) ## ----------------------------------------------------------------------------- print(lda_fit) ## ----------------------------------------------------------------------------- summary(lda_fit) ## ----------------------------------------------------------------------------- head(lda_pred$class) head(lda_pred$posterior) ## ----------------------------------------------------------------------------- x <- as.matrix(iris[, 1:4]) grouping <- iris$Species fit_matrix <- gipslda(x, grouping) predict(fit_matrix, x[1:5, ])$class ## ----------------------------------------------------------------------------- qda_matrix <- gipsqda(x, grouping) joint_qda_matrix <- gipsmultqda(x, grouping) predict(qda_matrix, x[1:5, ])$class predict(joint_qda_matrix, x[1:5, ])$class ## ----------------------------------------------------------------------------- fit <- gipslda(Species ~ ., data = train) pred <- predict(fit, test) mean(pred$class == test$Species)