Я хотел бы создать boxplots
для всего MSE
для каждой из моих моделей, чтобы показать изменчивость в ошибках моделей. Каков наилучший способ выборочной и подгонки моделей во много раз, чтобы создать boxplot
, показывающий распределение ошибок.Построение нескольких моделей MSE над многими образцами в R
Для каждой модели я буду генерировать прогнозы для всех данных (Train and Test). Затем я рассчитываю Поезд MSE
и тест MSE
на subsetting
соответственно. Следующая функция будет вычислять одновременно значения MSE
.
Есть ли лучший способ повторного отбора и plot
MSE для каждой модели по каждому повторному образцу? Любая помощь будет оценена по достоинству.
calcMSE = function(model,modelLabel,dataSet,trainIdx,newX=NULL)
{
# The predict method for glmnet will need to be called differently from the
# other predict methods.
if ("glmnet" %in% class(model)) {
predVals = predict(model,newX,type="response")
} else {
predVals = predict(model,data)
}
MSE = list(
name = modelLabel,
train = mean((predVals[trainIdx] - data$y[trainIdx])^2),
test = mean((predVals[-trainIdx] - data$y[-trainIdx])^2)
)
return(MSE)
}
modelMSEs = data.frame(Model = rep(NA,8),Train.MSE = rep(NA,8),Test.MSE = rep(NA,8))
modelMSEs[1,] = calcMSE(modelA1,"A1",Data,trainIdx)
modelMSEs[2,] = calcMSE(modelA2,"A2",Data,trainIdx)
modelMSEs[3,] = calcMSE(modelB1,"B1",Data,trainIdx)
modelMSEs[4,] = calcMSE(modelB2,"B2",Data,trainIdx)
modelMSEs[5,] = calcMSE(modelC1,"C1",Data,trainIdx)
modelMSEs[6,] = calcMSE(modelC2,"C2",Data,trainIdx)
print(modelMSEs)