Категориальные данные в R с h2o - PullRequest
0 голосов
/ 20 марта 2019

Я запустил модель логистической регрессии с категориальными и числовыми переменными.Модель пыталась предсказать количество посещений веб-сайта за месяц, исходя из первой недели.Очевидно, что количество посещений сайта в первую неделю было самым сильным показателем.Однако, когда я запустил глубокое обучение с различными моделями и функциями активации, модель работает очень плохо.Основанный на функции var_imp, он придает важность очень неважным переменным (основываясь на моей модели логистической регрессии, что довольно хорошо, это неправильно), и только кажется, что категориальные подмножества ранжируются с высокой важностью.и модель не работает даже на тренировочных данных, настоящий предупреждающий знак!Поэтому я просто хотел загрузить свой код, чтобы убедиться, что я ничего не делаю, чтобы нанести вред модели.Для логистической регрессии кажется странным, что она получилась спокойной, но глубокое обучение понимает, что это неправильно, поэтому я представляю, что это то, что я сделал!

summary(data)
 $ VAR1: Factor w/ 8 levels ,..: 1 5 2 1 7 2 5 1 5 1 ...
  $ VAR2: Factor w/ 5 levels ,..: 1 4 1 1 4 4 4 1 1 4 ...
  $ VAR3: Factor w/ 2 levels "F","M": 2 2 2 1 2 2 2 2 2 2 ...
  $ VAR4: Factor w/ 2 levels : 2 1 2 2 1 1 1 2 2 1 ...
  $ VAR5         : num  1000 20 30 20 30 30 30 50 30 400 ...
  $ VAR6: Factor w/ 2 levels "N","Y": 1 2 2 1 2 2 2 2 1 2 ...
  $ VAR7: Factor w/ 2 levels "N","Y": 1 2 2 1 2 2 2 2 1 2 ...
  $ VAR8: num  0 0 0 0 0 0 0 0 0 0 ...
  $ VAR9: num  56 52 49 29 28 38 34 79 53 36 ...
  $ VAR10: num  3 2 1 3 2 2 3 4 2 2 ...
  $ VAR11: num  1 1 1 2 2 1 1 1 1 2 ...
  $ VAR12: Factor w/ 2 levels "N","Y": 1 1 1 1 2 1 1 1 1 1 ...
  $ VAR13: num  1 0 1 1 1 0 1 0 0 0 ...
  $ VAR14: Factor w/ 2 levels "N","Y": 2 1 1 1 1 1 1 1 1 1 ...
  $ VAR15: Factor w/ 2 levels "N","Y": 1 1 1 1 1 1 1 1 1 1 ...
  $ VAR16: num  1 0 0 1 0 0 0 1 1 0 ...
  $ VAR17: num  19 7 1 4 10 2 4 4 7 12 ...
  $ VAR18: Factor w/ 2 levels "N","Y": 1 2 2 2 2 2 2 1 2 1 ...
  $ VAR19: Factor w/ 2 levels "0","Y": 1 1 2 1 1 1 1 1 1 1 ...
  $ VAR20: Factor w/ 2 levels "N","Y": 1 1 2 1 1 1 1 1 1 1 ...
  $ VAR21: Factor w/ 2 levels "N","Y": 1 1 1 1 1 1 1 1 1 1 ...
  $ VAR22:    : num  0.579 0 0 0 0.4 ...
  $ VAR23: num  1.89 1 1 1 2.9 ...
  $ VAR24: num  0.02962 0.00691 0.05327 0.02727 0.01043 ...
  $ VAR25: Factor w/ 3 levels ..: 2 2 2 3 3 2 3 2 1 3 ...
  $ VAR26: num  3 2 1 2 3 1 2 1 2 4 ...
  $ VAR27: num  3 2 1 1 5 1 1 1 1 2 ...
  $ VAR_RESPONSE: num  7 24 4 3 8 12 5 48 2 7 ...

sapply(data,function(x) sum(is.na(x)))

colSums(is.na(data))
data[is.na(data)] = 0



 d.hex = as.h2o(data, destination_frame= "d.hex")

 Data_g.split = h2o.splitFrame(data = d.hex,ratios = 0.75)
 Data_train = Data_g.split[[1]]#75% training data
 Data_test = Data_g.split[[2]]

 activation_opt <- 
c("Rectifier","RectifierWithDropout","Maxout","MaxoutWithDropout", 
"Tanh","TanhWithDropout")
 hidden_opt <- list(c(10,10),c(20,15),c(50,50,50),c(5,3,2),c(100,100),c(5),c(30,30,30),c(50,50,50,50),c(5,4,3,2))
 l1_opt <- c(0,1e-3,1e-5,1e-7,1e-9)
 l2_opt <- c(0,1e-3,1e-5,1e-7,1e-9)

 hyper_params <- list( activation=activation_opt,
                  hidden=hidden_opt,
                  l1=l1_opt,
                  l2=l2_opt )

 search_criteria <- list(strategy = "RandomDiscrete", max_models=30)

 dl_grid10 <- h2o.grid("deeplearning"
                ,grid_id = "deep_learn10"
                ,hyper_params = hyper_params
                ,search_criteria = search_criteria
                ,x = 1:27
                ,y = "VAR_RESPONSE"
                ,training_frame = Data_train)
d_grid10 <- h2o.getGrid("deep_learn10",sort_by = "mse")

mn = h2o.deeplearning(x = 1:27,
                 y = "VAR_RESPONSE",
                 training_frame = Data_train,
                 model_id = "mn",
                 activation = "Maxout",
                 l1 = 0,
                 l2 = 1e-9,
                 hidden = c(100,100),)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...