воскресенье, 14 января 2018 г.

Автоматизированное машинное обучение: AutoML из библиотеки H2O

В библиотеку H2O добавлена новая полезная возможность - автоматизированное создание и выбор моделей. Документацию можно найти по ссылке, а ниже представлен минималистичный пример. Используем набор данных об энергоэффективности из книги Машинное обучение с использованием библиотеки Н2О и сравним свой результат с полученным в этой книге при ручном выборе оптимальных моделей:



library(h2o)

h2o.init()

data <- h2o.importFile("https://raw.githubusercontent.com/DarrenCook/h2o/bk/datasets/ENB2012_data.csv")

factorsList <- c("X6", "X8")
data[, factorsList] <- as.factor(data[, factorsList])
splits <- h2o.splitFrame(data, 0.8)
train <- splits[[1]]
test <- splits[[2]]
x <- c("X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8")
y <- "Y2"

automl_h2o_models <- h2o.automl(
    x = x,
    y = y,
    training_frame    = train,
    leaderboard_frame = test
    )

automl_h2o_models@leader

# Model Details:
# ==============
#
# H2ORegressionModel: stackedensemble
# Model ID:  StackedEnsemble_BestOfFamily_0_AutoML_20180114_191230
# NULL
#
#
# H2ORegressionMetrics: stackedensemble
# ** Reported on training data. **
#
# MSE:  0.1610015
# RMSE:  0.4012499
# MAE:  0.2853584
# RMSLE:  0.01384588
# Mean Residual Deviance :  0.1610015
#
#
# H2ORegressionMetrics: stackedensemble
# ** Reported on validation data. **
#
# MSE:  1.091391
# RMSE:  1.044696
# MAE:  0.7183838
# RMSLE:  0.03434503
# Mean Residual Deviance :  1.091391
#
#
# H2ORegressionMetrics: stackedensemble
# ** Reported on cross-validation data. **
# ** 5-fold cross-validation on training data (Metrics computed for combined holdout predictions) **
#
# MSE:  1.757956
# RMSE:  1.325879
# MAE:  0.8673
# RMSLE:  0.0396968
# Mean Residual Deviance :  1.757956

Как видим, без малейших усилий был получен вполне достойный результат. Для маленьких наборов данных этот функционал весьма полезен, да и для больших можно ставить эксперименты на части данных для лучшего понимания, что и куда в настройках дальше крутить руками.

Комментариев нет:

Отправить комментарий