0
RMSEとRsquared以外のメトリックを、キャレットパッケージで作成した線形モデルの出力に追加したいとします。私が理解から、意志の出力以下のコードを繰り返し交差検定RMSEとRsquared:キャレットパッケージのデフォルトのtrain()出力にメトリックを追加する
library(caret)
lm_reg1 <- train(log1p(mpg) ~ log1p(hp) + log1p(disp),
data = mtcars,
trControl = trainControl(method = "repeatedcv",
number = 10,
repeats = 10),
method = 'lm')
lm_reg
出力:私はsummaryFunctionを変更することで、カスタムメトリックへの出力を変更することができます知っている
Linear Regression
32 samples
10 predictors
No pre-processing
Resampling: Cross-Validated (10 fold, repeated 10 times)
Summary of sample sizes: 30, 29, 28, 29, 29, 28, ...
Resampling results:
RMSE Rsquared
0.1134972 0.8808378
trainControl内で、metricパラメータの名前を参照します。ここで私はそれが両対数モデルのMAPEを算出し、作成したものの一例です:
mape <- function(actual, predicted){
mean(abs((actual - predicted)/actual))
}
mapeexpSummary <- function (data,
lev = NULL,
model = NULL) {
out <- mape(expm1(data$obs), expm1(data$pred))
names(out) <- "MAPEEXP"
out
}
lm_reg2 <- train(log1p(mpg) ~ log1p(hp) + log1p(disp),
data = mtcars,
trControl = trainControl(method = "repeatedcv",
number = 10,
summaryFunction = mapeexpSummary,
repeats = 10),
metric = 'MAPEEXP',
method = 'lm')
lm_reg2
出力:
Linear Regression
32 samples
10 predictors
No pre-processing
Resampling: Cross-Validated (10 fold, repeated 10 times)
Summary of sample sizes: 28, 29, 29, 28, 28, 30, ...
Resampling results:
MAPEEXP
0.1022028
単一の出力にそれらを追加する方法はありますか?私はこれらの値をすべて保存することを検討していますが、そうするために2つの同一モデルを作成しないようにしたいと考えています。
ありがとうございました! –