Gerçekten paketin gibi caret
bu gibi şeyler için ama ne yazık ki sadece belirtemeyeceğinizi okumak formula
içinde gam
bunun için tam olarak.
"Bu modelle treni kullandığınızda, (şu anda) gam formülünü belirleyemezsiniz. Caret, her bir öngörücünün kaç benzersiz seviyeye sahip olduğunu temel alan bir formül belirleyen dahili bir işleve sahiptir. Başka bir deyişle, tren şu anda hangisini belirler? terimleri yumuşatılmıştır ve bunlar düz eski doğrusal ana etkilerdir. "
kaynak: /programming/20044014/error-with-train-from-caret-package-using-method-gam
ancak train
yumuşak terimleri seçmenize izin verirseniz , bu durumda modelinizi tam olarak üretir. Bu durumda varsayılan performans metriği RMSE'dir, ancak işlev summaryFunction
bağımsız değişkenini kullanarak bunu değiştirebilirsiniz trainControl
.
Bence LOOCV'nin en büyük dezavantajlarından biri, veri seti büyük olduğunda sonsuza dek sürmesidir. Veri kümeniz küçük olduğundan ve oldukça hızlı çalıştığından, mantıklı bir seçenek olduğunu düşünüyorum.
Bu yardımcı olur umarım.
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)
çıktı:
> 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