R 网络中隐藏层的大小(网格单位:h2o)
我用一组不同的hiperparameters运行了h2o.grid。在下面,您可以看到与其连接的代码:R 网络中隐藏层的大小(网格单位:h2o),r,deep-learning,h2o,R,Deep Learning,H2o,我用一组不同的hiperparameters运行了h2o.grid。在下面,您可以看到与其连接的代码: library(caret) library(ROCR) library(h2o) h2o.init() #creditcard <- read.csv("creditcard.csv") #https://www.kaggle.com/mlg-ulb/creditcardfraud as_h2o &
library(caret)
library(ROCR)
library(h2o)
h2o.init()
#creditcard <- read.csv("creditcard.csv") #https://www.kaggle.com/mlg-ulb/creditcardfraud
as_h2o <- function(df) {
for (colname in colnames(df)) {
if (class(df[[colname]]) == "character") {
df[[colname]] <- as.factor(df[[colname]])
}
}
df <- as.h2o(df)
df
}
creditcard[,-31]<-scale(creditcard[,-31])
index <- createDataPartition(creditcard$Class, p = 0.3, list = FALSE)
train.set <- creditcard[-index, -1]
test.set <- creditcard[index, -1]
index.valid <- createDataPartition(creditcard$Class, p = 0.2, list = FALSE)
train.set <- creditcard[-index.valid, -1]
valid.set <- creditcard[index.valid, -1]
Y = "Class"
X = colnames(test.set[,-30])
hyper_params <- list(
activation = c("Rectifier", "Maxout", "Tanh", "RectifierWithDropout", "MaxoutWithDropout", "TanhWithDropout"),
hidden = list(c(17,16,15), c(19,15,11), c(16,14,12),c(20,15,10),c(25,17,10),c(15,10,5)),
epochs = c(50, 100, 200),
l1 = c(0, 0.001,0.00001, 0.0001),
l2 = c(0,0.001, 0.00001, 0.0001),
rate = c(0, 0.1, 0.005, 0.001),
rate_annealing = c(1e-8, 1e-7, 1e-6),
rho = c(0.9, 0.95, 0.99, 0.999),
epsilon = c(1e-10, 1e-8, 1e-6, 1e-4),
momentum_start = c(0, 0.5),
momentum_stable = c(0.99, 0.5, 0),
input_dropout_ratio = c(0, 0.1, 0.2),
max_w2 = c(10, 100, 1000, 3.4028235e+38)
)
search_criteria <- list(strategy = "RandomDiscrete",
max_models = 100,
max_runtime_secs = 900,
stopping_tolerance = 0.001,
stopping_rounds = 15)
dl_grid <- h2o.grid(algorithm = "deeplearning",
x = X,
y = Y,
grid_id = "dl_grid",
training_frame = as_h2o(train.set),
validation_frame = as_h2o(valid.set),
nfolds = 25,
fold_assignment = "Stratified",
hyper_params = hyper_params,
search_criteria = search_criteria
)
有人能解释为什么会这样吗 劳伦,谢谢你的帖子。下面是一个信用卡欺诈检测建模的示例
hyper_params <- list(
activation = c("Rectifier", "Maxout", "Tanh", "RectifierWithDropout", "MaxoutWithDropout", "TanhWithDropout"),
hidden = list(c(17,16,15), c(19,15,11), c(16,14,12),c(20,15,10),c(25,17,10),c(15,10,5)),
epochs = c(50, 100, 200),
l1 = c(0, 0.001,0.00001, 0.0001),
l2 = c(0,0.001, 0.00001, 0.0001),
rate = c(0, 0.1, 0.005, 0.001),
rate_annealing = c(1e-8, 1e-7, 1e-6),
rho = c(0.9, 0.95, 0.99, 0.999),
epsilon = c(1e-10, 1e-8, 1e-6, 1e-4),
momentum_start = c(0, 0.5),
momentum_stable = c(0.99, 0.5, 0),
input_dropout_ratio = c(0, 0.1, 0.2),
max_w2 = c(10, 100, 1000, 3.4028235e+38)
)
search_criteria <- list(strategy = "RandomDiscrete",
max_models = 100,
max_runtime_secs = 900,
stopping_tolerance = 0.001,
stopping_rounds = 15)
dl_grid <- h2o.grid(algorithm = "deeplearning",
x = X,
y = Y,
grid_id = "dl_grid",
training_frame = as_h2o(train.set),
validation_frame = as_h2o(valid.set),
nfolds = 25,
fold_assignment = "Stratified",
hyper_params = hyper_params,
search_criteria = search_criteria
)
hyper_params运行H2O网格搜索时,您应该只看到使用与网格搜索相同数量隐藏层的模型。下面是一个代码示例,您可以运行并使用它来查看是否可以重现您的问题
#############################################################
library(h2o)
h2o.init()
train = h2o.importFile("https://h2o-public-test-data.s3.amazonaws.com/bigdata/laptop/mnist/train.csv.gz")
# Specify the response and predictor columns
y <- "C785"
x <- setdiff(names(train), y)
# Encode the response column as categorical for multinomial classification
train[,y] <- as.factor(train[,y])
test[,y] <- as.factor(test[,y])
# do a random grid search
hidden_opt <- list(c(32,32), c(32,16,8), c(100,100))
l1_opt <- c(1e-4,1e-3)
hyper_params <- list(hidden = hidden_opt, l1 = l1_opt)
search_criteria = list(strategy = "RandomDiscrete",
max_models = 10,
seed=123456)
# grid search
model_grid <- h2o.grid("deeplearning",
grid_id = "mygrid_1",
hyper_params = hyper_params,
search_criteria = search_criteria,
x = x,
y = y,
distribution = "multinomial",
training_frame = train,
nfolds = 3,
score_interval = 2,
stopping_rounds = 3,
stopping_tolerance = 0.05,
stopping_metric = "misclassification")
model_grid
# Output
# H2O Grid Details
# ================
#
# Grid ID: mygrid_1
# Used hyper parameters:
# - hidden
# - l1
# Number of models: 6
# Number of failed models: 0
#
# Hyper-Parameter Search Summary: ordered by increasing logloss
# hidden l1 model_ids logloss
# 1 [100, 100] 1.0E-4 mygrid_1_model_0 0.11350390885225858
# 2 [100, 100] 0.001 mygrid_1_model_4 0.13184550642109982
# 3 [32, 32] 0.001 mygrid_1_model_3 0.13869444872607956
# 4 [32, 16, 8] 0.001 mygrid_1_model_5 0.16575514373784073
# 5 [32, 32] 1.0E-4 mygrid_1_model_2 0.17190959951587054
# 6 [32, 16, 8] 1.0E-4 mygrid_1_model_1 0.20832913000853842
#############################################################
图书馆(h2o)
h2o.init()
列车=h2o.导入文件(“https://h2o-public-test-data.s3.amazonaws.com/bigdata/laptop/mnist/train.csv.gz")
#指定响应和预测列
你好,库巴,谢谢你发帖提问!您能否发布一个简单但完整的端到端代码片段,我们可以用它来重现您的问题?以及您正在使用的H2O版本。下面是一个可复制代码片段的示例(忽略该示例使用glm的事实)。感谢发布此消息!(如果您想包含新信息,也可以编辑原始问题)由于我无法成功运行您的代码,我将在下面发布一段代码片段。如果您可以尝试用我发布的代码重现您的问题,请随时用更多细节更新您的问题。这也将是我确保我理解您的问题以及我们是否需要报告错误的一种方式。再次感谢!嗨,谢谢你的建议,我已经改变了问题嗨,@Lauren你有机会看看这个问题吗?Sry用于interrupting@Kuba您使用的集群的大小是多少?您使用的是什么版本的H2O?感谢您提供可复制的代码片段@Lauren h2o的版本:3.20.0.2
#############################################################
library(h2o)
h2o.init()
train = h2o.importFile("https://h2o-public-test-data.s3.amazonaws.com/bigdata/laptop/mnist/train.csv.gz")
# Specify the response and predictor columns
y <- "C785"
x <- setdiff(names(train), y)
# Encode the response column as categorical for multinomial classification
train[,y] <- as.factor(train[,y])
test[,y] <- as.factor(test[,y])
# do a random grid search
hidden_opt <- list(c(32,32), c(32,16,8), c(100,100))
l1_opt <- c(1e-4,1e-3)
hyper_params <- list(hidden = hidden_opt, l1 = l1_opt)
search_criteria = list(strategy = "RandomDiscrete",
max_models = 10,
seed=123456)
# grid search
model_grid <- h2o.grid("deeplearning",
grid_id = "mygrid_1",
hyper_params = hyper_params,
search_criteria = search_criteria,
x = x,
y = y,
distribution = "multinomial",
training_frame = train,
nfolds = 3,
score_interval = 2,
stopping_rounds = 3,
stopping_tolerance = 0.05,
stopping_metric = "misclassification")
model_grid
# Output
# H2O Grid Details
# ================
#
# Grid ID: mygrid_1
# Used hyper parameters:
# - hidden
# - l1
# Number of models: 6
# Number of failed models: 0
#
# Hyper-Parameter Search Summary: ordered by increasing logloss
# hidden l1 model_ids logloss
# 1 [100, 100] 1.0E-4 mygrid_1_model_0 0.11350390885225858
# 2 [100, 100] 0.001 mygrid_1_model_4 0.13184550642109982
# 3 [32, 32] 0.001 mygrid_1_model_3 0.13869444872607956
# 4 [32, 16, 8] 0.001 mygrid_1_model_5 0.16575514373784073
# 5 [32, 32] 1.0E-4 mygrid_1_model_2 0.17190959951587054
# 6 [32, 16, 8] 1.0E-4 mygrid_1_model_1 0.20832913000853842