[英]CONFUSION MATRIX, R,
我對下面的代碼幾乎不需要幫助。 我必須設置一個循環來訓練神經網絡模型,每次訓練的神經網絡模型都具有不同的歷元數,方法是從5開始,再加3直到達到20。然后,我必須計算一個折線圖,顯示不同數字的准確性時代。 我還必須保持所有與所示相同的參數。 許多代碼是我們的講師提供的。 我添加了epochs= c(5,8,11,14,17,20)
以創建一個歷元列表和error.rate = vector()
,我打算將每個循環的精度存儲到一個向量中。 我想要的精度來自混淆矩陣,可以從公式中找到
h2o.hit_ratio_table(<model>,train = TRUE)[1,2]
我面臨的問題是我嘗試創建一個循環。 我正在嘗試從每個循環中獲取結果。 我已將循環的第一部分標記為X,以嘗試將其放入向量中,以將每個循環的精度都轉換為向量error.rate=h2o.hit_ratio_table(x,train=TRUE)[1,2])
。
但是,它給出了一個錯誤。
> Error in is(object, "H2OModelMetrics") : object 'X' not found In
> addition: Warning messages: 1: In 1:epochs : numerical expression has
> 6 elements: only the first used
此外,當我刪除error.rate=......
部分時,該函數運行良好,但無法找到精度值。
我是R的菜鳥,所以能為您提供一些幫助。
s <- proc.time()
epochs= c(5,8,11,14,17,20)
error.rate = vector()
for (epoch in 1:epochs){#set up loop to go around 6 times
X=h2o.deeplearning(x = 2:785, # column numbers for predictors
y = 1, # column number for label
training_frame = train_h2o, # data in H2O format
activation = "RectifierWithDropout", # mathematical activation function
input_dropout_ratio = 0.2, # % of inputs dropout, because some inputs might not matter.
hidden_dropout_ratios = c(0.25,0.25,0.25,0.25), # % for nodes dropout, because maybe we don't need full connections. Improves generalisability
balance_classes = T, # over/under samples so that all classes are similar size.
hidden = c(50,50,50,50), # two layers of 100 nodes
momentum_stable = 0.99,
nesterov_accelerated_gradient = T,
error.rate=h2o.hit_ratio_table(x,train=TRUE)[1,2])
proc.time() - s}
您正在執行for(epoch in 1:epochs)
。 這里的“時代”一詞改變了每個循環(通常您在循環中使用它,但我看不到它?)。 1:epochs
無法按您認為的那樣工作。 它正在時代的第一個元素(5)和基本上說for(epoch in 1:5)
其中時代為1,然后2,...,然后5.你想要什么樣for(epoch in epochs)
,如果你想要從1:1的每個紀元開始的序列,都應在循環中編寫。
同樣, x
每次循環都會被重寫。 您應該初始化它,並在每個循環中保存它的子集:
epochs= c(5,8,11,14,17,20)
x <- list() # save as list #option 1
y <- list() # for an option 2
for (epoch in epochs){ #set up loop to go around 6 times
X[[epoch]] = h2o.deeplearning(... )
# or NOW you can somehow use 1:epoch where each loop epoch changes
}
但是我真的會專注於在您的for循環中沒有使用紀元,就像我在您的帖子中看到的那樣。 也許找出您想在哪里使用它...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.