@SLiによる答えは、あなたが定義したコスト関数が何をするのかをすでに十分に説明しています。ただし、コスト関数を使用してdelta
から値を計算することを追加すると考えcv.glm
ました。これは、相互検証エラーの測定です。ただし、厳密にdelta
は、コストによって与えられる各フォールドのエラーの加重平均です。これは、コードの関連ビットを調べることで確認できます。
for (i in seq_len(ms)) {
j.out <- seq_len(n)[(s == i)]
j.in <- seq_len(n)[(s != i)]
Call$data <- data[j.in, , drop = FALSE]
d.glm <- eval.parent(Call)
p.alpha <- n.s[i]/n # create weighting for averaging later
cost.i <- cost(glm.y[j.out], predict(d.glm, data[j.out,
, drop = FALSE], type = "response"))
CV <- CV + p.alpha * cost.i # add previous error to running total
cost.0 <- cost.0 - p.alpha * cost(glm.y, predict(d.glm,
data, type = "response"))
}
そして、関数によって返される値は次のとおりです。
list(call = call, K = K, delta = as.numeric(c(CV, CV + cost.0)),
seed = seed)