В чем разница между summary () и print () в карете (R) - PullRequest
2 голосов
/ 07 апреля 2020

В чем разница между функциями summary () и print () в контексте моделирования в пакете каретки в R? Что именно объясняется здесь для этой модели с 4 компонентами: 28,52% или 21,4%?

> summary(model)
Data:   X dimension: 261 130 
    Y dimension: 261 1
Fit method: oscorespls
Number of components considered: 4
TRAINING: % variance explained
          1 comps  2 comps  3 comps  4 comps
X         90.1526    92.91    94.86    96.10
.outcome   0.8772    17.17    23.99    28.52

против

> print(model)
Partial Least Squares 

261 samples
130 predictors

No pre-processing
Resampling: Cross-Validated (5 fold, repeated 50 times) 
Summary of sample sizes: 209, 209, 209, 208, 209, 209, ... 
Resampling results across tuning parameters:

  ncomp  RMSE      Rsquared    MAE     
  1      5.408986  0.03144022  4.129525
  2      5.124799  0.14263362  3.839493
  3      4.976591  0.19114791  3.809596
  4      4.935419  0.21415260  3.799365
  5      5.054086  0.19887704  3.886382

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was ncomp = 4.

1 Ответ

1 голос
/ 09 апреля 2020

Есть два компонента, первый - это тип модели, которую вы установили / обучаете, и поскольку вы использовали частичную регрессию наименьших квадратов, резюме (модель) возвращает вам информацию о лучшей модели, выбранной каретой.

library(caret)
library(pls)

model = train(mpg ~ .,data=mtcars,
trControl=trainControl(method="cv",number=5),
method="pls")

Partial Least Squares 

32 samples
10 predictors

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 25, 27, 26, 24, 26 
Resampling results across tuning parameters:

  ncomp  RMSE      Rsquared   MAE     
  1      3.086051  0.8252487  2.571524
  2      3.129871  0.8122175  2.650973
  3      3.014511  0.8582197  2.519962

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was ncomp = 3.

Когда вы делаете print(model), вы смотрите на результаты обучения модели и выбираете лучший параметр. С помощью pls вы выбираете количество компонентов, и оно составляет caret, и, скорее всего, будет выглядеть так же и для других методов. Выше были протестированы модели с 1,2,3 компонентами и выбрана модель с 3 компонентами, поскольку она имеет наименьшее среднеквадратичное значение. Конечная сохраненная модель находится в модели $ finalModel, и вы можете посмотреть на нее:

class(model$finalModel)
[1] "mvr"

pls:::summary.mvr(model$finalModel)
Data:   X dimension: 32 10 
    Y dimension: 32 1
Fit method: oscorespls
Number of components considered: 3
TRAINING: % variance explained
          1 comps  2 comps  3 comps
X           92.73    99.98    99.99
.outcome    74.54    74.84    83.22

Из приведенного выше вы можете увидеть, что сводная функция вызывается из пакета pls и задает c для этого типа модель и сводка (модель) ниже дают тот же результат:

summary(model)
Data:   X dimension: 32 10 
    Y dimension: 32 1
Fit method: oscorespls
Number of components considered: 3
TRAINING: % variance explained
          1 comps  2 comps  3 comps
X           92.73    99.98    99.99
.outcome    74.54    74.84    83.22

частичная наименьшая квадратная регрессия - это что-то вроде анализа главных компонентов, за исключением того, что декомпозиция (или уменьшение размерности) сделано на tranpose (X) * Y и компоненты называются скрытыми переменными. Таким образом, в итоге вы видите пропорцию дисперсии X (всех ваших предикторов) и .outcome (вашей зависимой переменной), которые объясняются скрытыми переменными.

...