#' @title Build Multi-class Logistic Regression Model
#' @description This is a simple algorithm to solve a multi-class logistic regression model.
#' @param X design matrix
#' @param Y a vector of outcome
#' @param family an R ‘family‘ object.
#' @param lambda a numeric number indicating the learning rate
#' @param tol a numeric number indicating the precision of the algorithm
#' @param maxit an integer indicating the maximum number iterations
#'
#' @examples
#' data(iris)
#' X <- model.matrix(Species ~ ., data = iris)
#' Y <- iris$Species
#' fit_m <- my_multiclass(X, Y)
#' @export
my_multiclass <-
function(X,
Y,
maxit = 2e3,
tol = 1e-10,
lambda = 0.001){
y_unique <- unique(Y)
betas <- list()
for(i in 1:length(y_unique)){
y_temp <- ifelse(Y == y_unique[i], 1, 0)
betas[[i]] <- my_glm(X, y_temp,
family = binomial(link = "logit"),
step_option = "constant",
lambda = lambda,
maxit = maxit,
tol = tol)$coefficients
}
rslt <- list(coefficients = betas, y_lab = y_unique)
class(rslt) <- "my_multiclass"
return(rslt)
#### next step, perform prediction function
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.