R'de Hiperparametre Ayarlama
Dr. Shirin Elsinghorst
Senior Data Scientist
?h2o.gbm
ntrees: Ağaç sayısı. Varsayılan 50.
max_depth: Maksimum ağaç derinliği. Varsayılan 5.
min_rows: Bir yapraktaki en az (ağırlıklı) gözlem. Varsayılan 10.
learn_rate: Öğrenme oranı (0.0–1.0). Varsayılan 0.1.
learn_rate_annealing: Her ağaçtan sonra öğrenme oranını bu faktörle ölçekle (örn. 0.99 veya 0.999). Varsayılan 1.seeds_data_hf <- as.h2o(seeds_data)
y <- "seed_type"
x <- setdiff(colnames(seeds_data_hf), y)
sframe <- h2o.splitFrame(data = seeds_data_hf, ratios = c(0.7, 0.15), seed = 42)
train <- sframe[[1]]
valid <- sframe[[2]]
test <- sframe[[3]]
gbm_params <- list(ntrees = c(100, 150, 200), max_depth = c(3, 5, 7), learn_rate = c(0.001, 0.01, 0.1))
h2o.grid işlevigbm_grid <- h2o.grid("gbm",
grid_id = "gbm_grid",
x = x,
y = y,
training_frame = train,
validation_frame = valid,
seed = 42,
hyper_params = gbm_params)
h2o.getGrid ile inceleyinh2o.getGrid işleviyle gbm_grid modelinin sonuçlarını inceleyin.
Izgara sonuçlarını doğrulama doğruluğuna göre sıralayın
gbm_gridperf <- h2o.getGrid(grid_id = "gbm_grid", sort_by = "accuracy", decreasing = TRUE)
Grid ID: gbm_grid
Kullanılan hiperparametreler:
- learn_rate
- max_depth
- ntrees
Model sayısı: 27
Hatalı model sayısı: 0
Hiperparametre Arama Özeti: azalan doğruluğa göre sıralı
best_gbm <- h2o.getModel(gbm_gridperf@model_ids[[1]])
print(best_gbm@model[["model_summary"]])
Model Özeti:
number_of_trees number_of_internal_trees model_size_in_bytes min_depth
200 600 100961 2
max_depth mean_depth min_leaves max_leaves mean_leaves
7 5.22667 3 10 8.38833
best_gbm, standart bir H2O model nesnesidir ve öyle kullanılabilir!h2o.performance(best_gbm, test)
MSE: (Extract with `h2o.mse`) 0.04761904
RMSE: (Extract with `h2o.rmse`) 0.2182179
Logloss: (Extract with `h2o.loglos
gbm_params <- list(ntrees = c(100, 150, 200), max_depth = c(3, 5, 7), learn_rate = c(0.001, 0.01, 0.1))search_criteria <- list(strategy = "RandomDiscrete", max_runtime_secs = 60, seed = 42)gbm_grid <- h2o.grid("gbm", grid_id = "gbm_grid", x = x, y = y, training_frame = train, validation_frame = valid, seed = 42, hyper_params = gbm_params, search_criteria = search_criteria)
search_criteria <- list(strategy = "RandomDiscrete", stopping_metric = "mean_per_class_error", stopping_tolerance = 0.0001, stopping_rounds = 6)gbm_grid <- h2o.grid("gbm", x = x, y = y, training_frame = train, validation_frame = valid, seed = 42, hyper_params = gbm_params, search_criteria = search_criteria)
H2O Izgara Ayrıntıları
================
Grid ID: gbm_grid
Kullanılan hiperparametreler:
- learn_rate
- max_depth
- ntrees
Model sayısı: 30
Hatalı model sayısı: 0
R'de Hiperparametre Ayarlama