H2O mojo_predict_df предупреждение о входных столбцах - PullRequest
3 голосов
/ 25 февраля 2020

Получение странного сообщения от H2O (h2o_3.26.0.2) при прогнозировании с использованием файла MOJO:

Обнаружено 14 неиспользуемых столбцов во входном наборе данных: {X8, X9, X10, X12 , X1, X11, X2, X14, X3, X13, X4, X5, X6, X7}

Я знаю, что это не проблема с отсутствующей переменной, так как выходы H2O:

Во входном наборе данных найдено 1 пропущенных столбца: {X1}

Чтобы воспроизвести предупреждающее сообщение, я создал небольшой пример с целевой переменной X15:

suppressPackageStartupMessages(library(tidyverse))
suppressPackageStartupMessages(library(h2o))

# read in data ------------------------------------------------------------

data_set <- read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data", col_names = FALSE) %>% 
  mutate_if(is.character, factor)
set.seed(3456)
trainIndex <- caret::createDataPartition(data_set$X15, p = .8, 
                                  list = FALSE, 
                                  times = 1)

train_strat <- data_set[ trainIndex,]
test_strat  <- data_set[-trainIndex,]

# start h2o ---------------------------------------------------------------

h2o.init(startH2O = T, max_mem_size = '400G')
#>  Connection successful!
#> 
#> R is connected to the H2O cluster: 
#>     H2O cluster uptime:         25 minutes 3 seconds 
#>     H2O cluster timezone:       Etc/UTC 
#>     H2O data parsing timezone:  UTC 
#>     H2O cluster version:        3.26.0.2 
#>     H2O cluster version age:    6 months and 29 days !!! 
#>     H2O cluster name:           H2O_started_from_R_rstudio_ltd590 
#>     H2O cluster total nodes:    1 
#>     H2O cluster total memory:   353.12 GB 
#>     H2O cluster total cores:    64 
#>     H2O cluster allowed cores:  64 
#>     H2O cluster healthy:        TRUE 
#>     H2O Connection ip:          localhost 
#>     H2O Connection port:        54321 
#>     H2O Connection proxy:       NA 
#>     H2O Internal Security:      FALSE 
#>     H2O API Extensions:         Amazon S3, XGBoost, Algos, AutoML, Core V3, Core V4 
#>     R Version:                  R version 3.5.1 (2018-07-02)
#> Warning in h2o.clusterInfo(): 
#> Your H2O cluster version is too old (6 months and 29 days)!
#> Please download and install the latest version from http://h2o.ai/download/
# h2o.shutdown()
train_strat_h2o <- as.h2o(train_strat)
test_strat_h2o <- as.h2o(test_strat)
Y <- 'X15'
X <- setdiff(names(train_strat), Y)

# train and predict --------------------------------------------------------------

rf_h2o <- h2o.randomForest(         
  training_frame = train_strat_h2o,
  x = X,                        
  y = Y,    
  nfolds = 0,
  model_id = "big_rf",   
  ntrees = 25,                 
  max_depth = 55,               
  stopping_rounds = 5,          
  stopping_tolerance = 1e-3,
  score_each_iteration = T,
  seed = 123
)

После того, как модель обучена и находится в окружении, я делаю прогноз и получаю следующие результаты:

predict(rf_h2o, test_strat_h2o)
#>   predict     <=50K      >50K
#> 1   <=50K 1.0000000 0.0000000
#> 2    >50K 0.4980000 0.5020000
#> 3    >50K 0.2465993 0.7534007
#> 4    >50K 0.1200000 0.8800000
#> 5   <=50K 0.8040000 0.1960000
#> 6   <=50K 0.8628571 0.1371429
#> 
#> [6512 rows x 3 columns]

Теперь я перехожу, чтобы поместить модель в производство путем загрузки модели:

h2o.download_mojo(rf_h2o, path = "output/", get_genmodel_jar = T)

И, наконец, теперь мы можем использовать файл MOJO для прогнозирования. ЗДЕСЬ где я получаю странное сообщение, Detected 14 unused columns in the input data set, хотя предсказания кажутся одинаковыми?

head(
  h2o.mojo_predict_df(
    test_strat[, -15],
    mojo_zip_path = "output/big_rf.zip",
    genmodel_jar_path = "output/h2o-genmodel.jar"
  )
)
#>  Detected 14 unused columns in the input data set: {X8,X9,X10,X12,X1,X11,X2,X14,X3,X13,X4,X5,X6,X7}
#>  predict    X..50K     X.50K
#> 1   <=50K 1.0000000 0.0000000
#> 2    >50K 0.4980000 0.5020000
#> 3    >50K 0.2465993 0.7534007
#> 4    >50K 0.1200000 0.8800000
#> 5   <=50K 0.8040000 0.1960000
#> 6   <=50K 0.8628571 0.1371429

Создано в 2020-02-25 пакетом prepx (v0.2.1)

Это то, что я стоит беспокоиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...