2017-11-24 4 views
0

Code und Ergebnisse unten. Wie ist das möglich? MSEs sind identisch mit sehr unterschiedlichen Parametern.Grid Search erstellt Modelle mit unterschiedlichen Parametern (h2o in R) liefert identische Leistung - warum?

hyper_params <- list(
     ntrees = c(5000, 7000, 10000), 
     max_depth = c(15,18,21,24,27), 
     min_rows = c(5,7,10,13,16), 
     learn_rate = c(0.01,0.03,0.05,0.1), 
     col_sample_rate_per_tree = c(0.3,0.5,0.7,0.85), 
     min_split_improvement = c(10,20,30,40,50,60,70)) 

    search_criteria = list(strategy = "RandomDiscrete", 
         #stopping_rounds = 3, 
         max_models = num_models)#, 
         #stopping_tolerance=1e-3 
    grid <- h2o.grid(
    algorithm = "gbm", 
    grid_id = "grid", 
    training_frame = train, 
    # validation_frame = valid, 
    x = independent_variables, 
    y="NSP", 
    stopping_metric="MSE", 
    hyper_params = hyper_params, 
    search_criteria = search_criteria, 
    nfolds = 5, 
    fold_assignment = "Modulo", 
    keep_cross_validation_predictions = TRUE) 

Hyper-Parameter Search Summary: ordered by increasing mse 
    col_sample_rate_per_tree learn_rate max_depth min_rows min_split_improvement ntrees  model_ids     mse 
1      0.5  0.01  24  5.0     60.0 7000 grid_model_2 0.36927908175912655 
2      0.85  0.01  18  5.0     40.0 5000 grid_model_6 0.36927908175912655 
3      0.3  0.1  24  13.0     30.0 7000 grid_model_11 0.36927908175912655 
4      0.85  0.03  24  10.0     50.0 5000 grid_model_4 0.36927908175912655 
5      0.5  0.01  21  5.0     30.0 7000 grid_model_9 0.36927908175912655 
6      0.85  0.1  24  10.0     70.0 5000 grid_model_13 0.36927908175912655 
7      0.7  0.1  15  13.0     10.0 10000 grid_model_14 0.36927908175912655 
8      0.3  0.05  27  13.0     20.0 7000 grid_model_5 0.36927908175912655 
9      0.85  0.05  27  13.0     70.0 7000 grid_model_0 0.36927908175912655 
10      0.7  0.05  24  13.0     60.0 5000 grid_model_7 0.36927908175912655 
11      0.85  0.05  21  7.0     20.0 10000 grid_model_8 0.36927908175912655 
12      0.5  0.01  15  7.0     20.0 10000 grid_model_10 0.36927908175912655 
13      0.3  0.01  18  7.0     30.0 7000 grid_model_1 0.36927908175912655 
14      0.5  0.03  21  13.0     10.0 5000 grid_model_12 0.36927908175912655 
15      0.85  0.01  21  7.0     40.0 5000 grid_model_3 0.36927908175912655 

Alle und alle Leitlinien sind willkommen.

Vielen Dank.

+0

Können Sie bitte ein reproduzierbares Beispiel veröffentlichen? Verwenden Sie beispielsweise das Iris-Dataset oder ein anderes öffentlich verfügbares Dataset. –

Antwort

0

Ich kann mir vorstellen, dass Ihre Daten so sind, dass es nur eine Möglichkeit gibt, sie zu lernen.

Als ein konkretes Beispiel, wenn Sie max_depth bis 18, und ein weiterer Baum max_depth bis 24, aber Sie haben nur einen einzigen Eintrag in independent_variables gesetzt ist, dann ist es sehr wahrscheinlich nur Bäume der Tiefe 1 oder 2 geht in machen jeder Fall. Also werden die verschiedenen Hyperparameter keinen Unterschied machen.

Wenn Sie die Daten, die es reproduzieren, nicht angeben können, wäre es interessant, die Zusammenfassung eines Standardmodells (ohne Verwendung eines Rasters, ohne Verwendung bestimmter Parameter) auszugeben. Zeigen Sie auch die Spaltentypen und nrow(train) an. (Wenn Sie die falschen Spaltentypen haben, könnte dies erklären, was Sie sehen.)

Verwandte Themen