logRegBinary.Rd
Runs a logistic regression model, evaluates it on training and testing set, and tunes hyperparameters.
logRegBinary(
recipe = rec,
folds = cvFolds,
train = datTrain,
test = datTest,
response = response,
evalMetric = "bal_accuracy"
)
A recipe object.
A rsample::vfolds_cv object.
Data frame/tibble. The training data set.
Data frame/tibble. The testing data set.
Character. The variable that is the response for analysis.
Character. The classification metric you want to evaluate the model's accuracy on. Default is bal_accuracy. List of metrics available to choose from:
bal_accuracy
mn_log_loss
roc_auc
mcc
kap
sens
spec
precision
recall
A list with the following outputs:
Training confusion matrix
Training model metric score
Testing confusion matrix
Testing model metric score
Final model chosen
Tuned model
What the model tunes:
penalty: The total amount of regularization in the model. Also known as lambda.
mixture: The mixture amounts of different types of regularization (see below). If 1, amounts to LASSO regression. If 0, amounts to Ridge Regression. Also known as alpha.
library(easytidymodels)
library(dplyr)
library(recipes)
utils::data(penguins, package = "modeldata")
#Define your response variable and formula object here
resp <- "sex"
formula <- stats::as.formula(paste(resp, ".", sep="~"))
#Split data into training and testing sets
split <- trainTestSplit(penguins, stratifyOnResponse = TRUE,
responseVar = resp)
#Create recipe for feature engineering for dataset, varies based on data working with
rec <- recipe(formula, data = split$train) %>% step_knnimpute(!!resp) %>%
step_dummy(all_nominal(), -all_outcomes()) %>%
step_medianimpute(all_predictors()) %>% step_normalize(all_predictors()) %>%
step_dummy(all_nominal(), -all_outcomes()) %>% step_nzv(all_predictors()) %>%
step_corr(all_numeric(), -all_outcomes(), threshold = .8) %>% prep()
train_df <- bake(rec, split$train)
test_df <- bake(rec, split$test)
folds <- cvFolds(train_df)
#lr <- logRegBinary(recipe = rec, response = resp, folds = folds,
#train = train_df, test = test_df)
#Confusion Matrix
#lr$trainConfMat
#Plot of confusion matrix
#lr$trainConfMatPlot
#Test Confusion Matrix
#lr$testConfMat
#Test Confusion Matrix Plot
#lr$testConfMatPlot