-1

I am trying to run a penalised multinomial regression. It is my understanding that predictor variables can be numerical. However, when I try to tune my model using a validation set, I get the error that says that all my variables must be character or factor.

This is the output of example_data <- dput(head(my_dataset))

structure(list(...1 = c(1, 2, 3, 4, 5, 6), id = c(10, 15, 49, 
51, 54, 58), npsn = c("10114357", "10114353", "10114234", "69786607", 
"10114364", "69935355"), village = c("-", "-", "ALUE TAMPAK", 
"Lueng Baro", "-", "Suwak Indrapuri"), subdistrict = c("Kec. Johan Pahlawan", 
"Kec. Bubon", "Kec. Kaway XVI", "Kec. Sungai Mas", "Kec. Panton Reu", 
"Kec. Johan Pahlawan"), district = c("Kab. Aceh Barat", "Kab. Aceh Barat", 
"Kab. Aceh Barat", "Kab. Aceh Barat", "Kab. Aceh Barat", "Kab. Aceh Barat"
), public = c("SWASTA", "SWASTA", "SWASTA", "SWASTA", "SWASTA", 
"SWASTA"), morning = c(NA, NA, NA, "Pagi/6 hari", NA, "Pagi/6 hari"
), level = c("MTs", "MTs", "MA", "SD", "MTs", "SMP"), authority = c("Kementerian Agama", 
"Kementerian Agama", "Kementerian Agama", "Kementerian Pendidikan dan Kebudayaan", 
"Kementerian Agama", "Kementerian Pendidikan dan Kebudayaan"), 
    cert_est = c("<font color=\"#FF0000\">Perlu Update</font>", 
    "<font color=\"#FF0000\">Perlu Update</font>", "<font color=\"#FF0000\">Perlu Update</font>", 
    "421.2/788/2012", "<font color=\"#FF0000\">Perlu Update</font>", 
    "421.2/1265.a/2015"), date_est = c("-", "-", "-", "2012-12-31", 
    "-", "2015-10-05"), cert_ops = c("<font color=\"#FF0000\">Perlu Update</font>", 
    "<font color=\"#FF0000\">Perlu Update</font>", "<font color=\"#FF0000\">Perlu Update</font>", 
    "421.2/ 788 / 2013", "<font color=\"#FF0000\">Perlu Update</font>", 
    "421.2/1360/2015"), date_ops = c(NA, NA, NA, "2013-08-14", 
    NA, "2015-10-22"), grade = c("B", "B", "B", "A", "B", "B"
    ), area = c(0, 0, 0, 1000, 0, 1200), latlon = c("L.marker([4.1583390,96.1241250]).addTo(mymap);", 
    "L.marker([4.2839640,96.0855880]).addTo(mymap);", "L.marker([4.2137130,96.1585580]).addTo(mymap);", 
    "L.marker([4.5028000,96.0300000]).addTo(mymap);", "L.marker([4.3833290,96.1981020]).addTo(mymap);", 
    "L.marker([4.1923750,96.1241380]).addTo(mymap);"), name_clean = c("MTSS NURUL FALAH", 
    "MTSS BANDA LAYUNG", "MAS ALUE TAMPAK", "SDS LUENG BARO", 
    "MTSS KRUENG MANGGI", "SMP ISLAM BAHRUL ULUM ISLAMIC SCHOOL"
    ), name = c("MTSS NURUL FALAH", "MTSS BANDA LAYUNG", "MAS ALUE TAMPAK", 
    "SDS LUENG BARO", "MTSS KRUENG MANGGI", "SMP ISLAM BAHRUL ULUM ISLAMIC SCHOOL"
    ), muh1 = c(0, 0, 0, 0, 0, 0), muh2 = c(0, 0, 0, 0, 0, 0), 
    muh = c(0, 0, 0, 0, 0, 0), chr1 = c(0, 0, 0, 0, 0, 0), chr2 = c(0, 
    0, 0, 0, 0, 0), chr3 = c(NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_), chr = c(0, 0, 0, 0, 0, 0), hindu = c(NA, 
    NA, NA, NA, NA, NA), nu1 = c(0, 0, 0, 0, 0, 0), nu2 = c(0, 
    0, 0, 0, 0, 0), nu_klaten = c(NA, NA, NA, NA, NA, NA), nu_sby = c(NA, 
    NA, NA, NA, NA, NA), nu = c(0, 0, 0, 0, 0, 0), it1 = c(0, 
    0, 0, 0, 0, 0), it = c(0, 0, 0, 0, 0, 0), other_swas_international = c(0, 
    0, 0, 0, 0, 0), afiliasi = c(99, 99, 99, 99, 99, 99), X1 = c(FALSE, 
    FALSE, FALSE, TRUE, FALSE, FALSE), X2 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, TRUE), X3 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X4 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 
    X5 = c(TRUE, TRUE, FALSE, FALSE, TRUE, FALSE), X6 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, TRUE), X7 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X8 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X9 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X10 = c(TRUE, FALSE, TRUE, FALSE, FALSE, FALSE), 
    X11 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X12 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X13 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X14 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X15 = c(FALSE, FALSE, TRUE, FALSE, 
    FALSE, FALSE), X16 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X17 = c(FALSE, FALSE, FALSE, TRUE, FALSE, FALSE), 
    X18 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X19 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X20 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X21 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, TRUE), X22 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X23 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X24 = c(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE), 
    X25 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X26 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X27 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X28 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X29 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X30 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X31 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 
    X32 = c(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE), X33 = c(TRUE, 
    TRUE, TRUE, TRUE, TRUE, TRUE), X34 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X35 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, TRUE), X36 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X37 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 
    X38 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X39 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, TRUE), X40 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X41 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X42 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X43 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X44 = c(FALSE, FALSE, TRUE, FALSE, TRUE, FALSE), 
    X45 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X46 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X47 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X48 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X49 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X50 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X51 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 
    X52 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X53 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X54 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X55 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X56 = c(TRUE, TRUE, TRUE, TRUE, TRUE, 
    TRUE), X57 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 
    X58 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X59 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X60 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X61 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X62 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X63 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X64 = c(TRUE, TRUE, FALSE, FALSE, TRUE, FALSE), X65 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X66 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X67 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X68 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X69 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X70 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 
    X71 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X72 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X73 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X74 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X75 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X76 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X77 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 
    X78 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X79 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X80 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X81 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X82 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X83 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    TRUE), X84 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 
    X85 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X86 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X87 = c(TRUE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X88 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X89 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, TRUE), X90 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X91 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 
    X92 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X93 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X94 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X95 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X96 = c(FALSE, TRUE, FALSE, FALSE, 
    TRUE, FALSE), X97 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X98 = c(FALSE, FALSE, FALSE, TRUE, FALSE, FALSE), 
    X99 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X100 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X101 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X102 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X103 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X104 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X105 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X106 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X107 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X108 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X109 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X110 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X111 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X112 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X113 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X114 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X115 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X116 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X117 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X118 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X119 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X120 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X121 = c(TRUE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X122 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X123 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X124 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X125 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X126 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X127 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X128 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X129 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X130 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X131 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X132 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X133 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X134 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X135 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X136 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X137 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X138 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X139 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X140 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X141 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X142 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X143 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X144 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X145 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X146 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X147 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X148 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X149 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X150 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X151 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X152 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X153 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X154 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X155 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X156 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X157 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X158 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X159 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X160 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X161 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X162 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X163 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X164 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X165 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X166 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X167 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X168 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X169 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X170 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X171 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X172 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X173 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X174 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X175 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X176 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X177 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X178 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X179 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X180 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X181 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X182 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X183 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X184 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X185 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X186 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X187 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X188 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X189 = c(FALSE, FALSE, TRUE, FALSE, FALSE, FALSE), 
    X190 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), X191 = c(FALSE, 
    FALSE, FALSE, FALSE, FALSE, FALSE), X192 = c(FALSE, FALSE, 
    FALSE, FALSE, FALSE, FALSE), X193 = c(FALSE, FALSE, FALSE, 
    FALSE, FALSE, FALSE), X194 = c(FALSE, FALSE, FALSE, FALSE, 
    FALSE, FALSE), X195 = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
    FALSE), X196 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
    ), X197 = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))

library(tidymodels)  
library(readr)       
library(broom.mixed) 
library(dotwhisker)  
library(skimr)           
library(rpart.plot)  
library(vip)    
library(glmnet)
library(naniar) 
library(tidyr)
library(dplyr)

# Data cleaning

skool <-
  read_csv("/Users/riddhimaagupta/Desktop/skul_data_word.csv")

skool_v1 <- 
  select (school, -c(...1, id,  npsn,   public, cert_est,   cert_ops,   name_clean, name,   muh1,   muh2,   muh,    chr1,   chr2,   chr3,   chr,    hindu,  nu1,    nu2,    nu_klaten,  nu_sby, nu, it1,    it, other_swas_international)) 

str(skool_v1)

skool_v2 <- 
  filter(skool_v1, afiliasi != 99)

str(skool_v2)
glimpse(skool_v2)

skool_v2.1 <- replace_with_na(skool_v2,
                                 replace = list(village = c("-")))

skool_v2.2 <- replace_with_na(skool_v2.1,
                              replace = list(area = c("0")))

skool_v2.3 <- replace_with_na(skool_v2.2,
                              replace = list(date_est = c("-")))

skool_v2.3$date_est <- as.Date(skool_v2.3$date_est, format = '%Y-%m-%d')

skool_v2.3$date_ops <- as.Date(skool_v2.3$date_ops, format = '%Y-%m-%d')

skool_v2.3$latlon <- gsub(".*\\[", "", skool_v2.3$latlon)

skool_v2.3$latlon <- gsub("\\].*", "", skool_v2.3$latlon)

skool_v2.4 <- skool_v2.3 %>%
                     separate(latlon, c("latitude", "longitude"), ",")

skool_v2.4$latitude <- as.numeric(skool_v2.4$latitude)

skool_v2.4$longitude <- as.numeric(skool_v2.4$longitude) 


skool_v3 <- skool_v2.4 %>%
            mutate_if(is.character, tolower) %>%
            mutate_if(is.character, as.factor) 


skool_v4 <- skool_v3 %>%
            mutate_if(is.logical, as.factor)

skool_v4 <- skool_v3 %>%
  mutate_if(is.logical, as.factor)


skool_v5 <- skool_v4 %>%
            na.omit()



# Data splitting 

set.seed(123)
splits      <- initial_split(skool_v5 , strata = afiliasi)
school_train <- training(splits)
school_test  <- testing(splits)

set.seed(234)
val_set <- validation_split(skool_v5, 
                            strata = afiliasi, 
                            prop = 0.80)

# Penalised multinomial regression

lr_mod <- 
  multinom_reg(penalty = tune(), mixture = 1) %>% 
  set_engine("glmnet")

lr_recipe <- 
  recipe(afiliasi ~ ., data = school_train) %>%  
  step_date(date_est, date_ops) %>% 
  step_rm(date_est, date_ops) %>%
  step_dummy(all_nominal_predictors()) %>% 
  step_zv(all_predictors()) %>% 
  step_normalize(all_predictors())

lr_workflow <- 
  workflow() %>% 
  add_model(lr_mod) %>% 
  add_recipe(lr_recipe)


lr_reg_grid <- tibble(penalty = 10^seq(-4, -1, length.out = 30))
lr_reg_grid %>% top_n(-5)
lr_reg_grid %>% top_n(5)

lr_res <- 
  lr_workflow %>% 
  tune_grid(val_set,
            grid = lr_reg_grid,
            control = control_grid(save_pred = TRUE,  verbose = TRUE),
            metrics = metric_set(roc_auc))

x validation: preprocessor 1/1: Error in `prep()`:
! Columns must be...
Warning message:
All models failed. See the `.notes` column.

I don't know how to proceed. I am new at both R and machine learning. Any help will be appreciated!

  • It looks like you're new to SO; welcome to the community! If you want great answers quickly, it's best to make your question reproducible. This includes sample data like the output from `dput(head(dataObject))` and any libraries you are using. Check it out: [making R reproducible questions](https://stackoverflow.com/q/5963269). – Kat May 27 '22 at 17:22
  • Try adding some data to the code to get better answers faster – jpsmith May 27 '22 at 19:58
  • Thank you for the guidance, I have edited the question accordingly! – Riddhimaa Gupta May 28 '22 at 18:11
  • @Kat Thank your for the previous help. I still haven't received any replies. Anything more I could do? – Riddhimaa Gupta May 31 '22 at 09:56
  • Glad to see that you've added data! The call that creates skool_v2 deletes all rows. It would be better to provide the data when it is `skool_v5`. More than 6 rows will be needed with 209 columns—maybe `dput(head(skool_v5), 100)`? In order for me to reproduce the issue, the data has to work—for example, none of the variables can have one unique value. In the data sample, 192 variables have one unique value. By the way, if you converted factors to binaries, you don't need to do that. Also, is affiliation a number or just numeric? Is this a categorical field? (Should this be a factor?) – Kat May 31 '22 at 14:35

0 Answers0