Tôi thực sự thích các gói caret
cho những thứ như thế này nhưng tiếc là tôi chỉ đọc mà bạn không thể xác định formula
trong gam
chính xác cho nó.
"Khi bạn sử dụng tàu với mô hình này, bạn không thể (tại thời điểm này) chỉ định công thức gam. Caret có chức năng bên trong chỉ ra một công thức dựa trên số lượng cấp độ duy nhất mà mỗi người dự đoán có. Nói cách khác, đào tạo hiện đang xác định các thuật ngữ được làm mịn và đó là các hiệu ứng chính tuyến tính cũ đơn giản. "
nguồn: /programming/20044014/error-with-train-from-caret-package-USE-method-gam
nhưng nếu bạn để train
chọn các thuật ngữ trơn tru, trong trường hợp này nó sẽ tạo ra mô hình của bạn chính xác. Số liệu hiệu suất mặc định trong trường hợp này là RMSE, nhưng bạn có thể thay đổi nó bằng cách sử dụng summaryFunction
đối số của trainControl
hàm.
Tôi nghĩ một trong những nhược điểm chính của LOOCV là khi bộ dữ liệu lớn, nó sẽ mất mãi mãi. Vì tập dữ liệu của bạn nhỏ và nó hoạt động khá nhanh, tôi nghĩ đó là một lựa chọn hợp lý.
Hi vọng điêu nay co ich.
library(mgcv)
library(caret)
set.seed(0)
dat <- gamSim(1, n = 400, dist = "normal", scale = 2)
b <- train(y ~ x0 + x1 + x2 + x3,
data = dat,
method = "gam",
trControl = trainControl(method = "LOOCV", number = 1, repeats = 1),
tuneGrid = data.frame(method = "GCV.Cp", select = FALSE)
)
print(b)
summary(b$finalModel)
đầu ra:
> print(b)
Generalized Additive Model using Splines
400 samples
9 predictors
No pre-processing
Resampling:
Summary of sample sizes: 399, 399, 399, 399, 399, 399, ...
Resampling results
RMSE Rsquared
2.157964 0.7091647
Tuning parameter 'select' was held constant at a value of FALSE
Tuning parameter 'method' was held constant at a value of GCV.Cp
> summary(b$finalModel)
Family: gaussian
Link function: identity
Formula:
.outcome ~ s(x0) + s(x1) + s(x2) + s(x3)
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.9150 0.1049 75.44 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Approximate significance of smooth terms:
edf Ref.df F p-value
s(x0) 5.173 6.287 4.564 0.000139 ***
s(x1) 2.357 2.927 103.089 < 2e-16 ***
s(x2) 8.517 8.931 84.308 < 2e-16 ***
s(x3) 1.000 1.000 0.441 0.506929
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.726 Deviance explained = 73.7%
GCV = 4.611 Scale est. = 4.4029 n = 400