On m'a dit d'utiliser le package caret afin d'effectuer une régression Support Vector Machine avec une validation croisée 10 fois sur un ensemble de données que j'ai. Je trace ma variable de réponse contre 151 variables. J'ai fait ce qui suit: -
> ctrl <- trainControl(method = "repeatedcv", repeats = 10)
> set.seed(1500)
> mod <- train(RT..seconds.~., data=cadets, method = "svmLinear", trControl = ctrl)
dans lequel j'ai
C RMSE Rsquared RMSE SD Rsquared SD
0.2 50 0.8 20 0.1
0.5 60 0.7 20 0.2
1 60 0.7 20 0.2
Mais je veux pouvoir jeter un œil à mes plis, et pour chacun d'eux à quel point les valeurs prédites étaient proches des valeurs réelles. Comment dois-je procéder?
En outre, il dit que: -
RMSE was used to select the optimal model using the smallest value.
The final value used for the model was C = 0.
Je me demandais juste ce que cela signifiait et ce que représente le C dans le tableau ci-dessus?
RT (seconds) 76_TI2 114_DECC 120_Lop 212_PCD 236_X3Av
38 4.086 1.2 2.322 0 0.195
40 2.732 0.815 1.837 1.113 0.13
41 4.049 1.153 2.117 2.354 0.094
41 4.049 1.153 2.117 3.838 0.117
42 4.56 1.224 2.128 2.38 0.246
42 2.96 0.909 1.686 0.972 0.138
42 3.237 0.96 1.922 1.202 0.143
44 2.989 0.8 1.761 2.034 0.11
44 1.993 0.5 1.5 0 0.102
44 2.957 0.8 1.761 0.988 0.141
44 2.597 0.889 1.888 1.916 0.114
44 2.428 0.691 1.436 1.848 0.089
Ceci est un extrait de mon jeu de données. J'essaie de pot RT secondes contre 151 variables.
Merci
Vous devez enregistrer vos prédictions de CV via l'option "savePred" dans votre objet trainControl
. Je ne sais pas de quel paquet proviennent vos données "cadets", mais voici un exemple trivial utilisant l'iris:
> library(caret)
> ctrl <- trainControl(method = "cv", savePred=T, classProb=T)
> mod <- train(Species~., data=iris, method = "svmLinear", trControl = ctrl)
> head(mod$pred)
pred obs setosa versicolor virginica rowIndex .C Resample
1 setosa setosa 0.982533940 0.009013592 0.008452468 11 0.25 Fold01
2 setosa setosa 0.955755054 0.032289120 0.011955826 35 0.25 Fold01
3 setosa setosa 0.941292675 0.044903583 0.013803742 46 0.25 Fold01
4 setosa setosa 0.983559919 0.008310323 0.008129757 49 0.25 Fold01
5 setosa setosa 0.972285699 0.018109218 0.009605083 50 0.25 Fold01
6 versicolor versicolor 0.007223973 0.971168170 0.021607858 59 0.25 Fold01
EDIT: Le "C" est l'un des paramètres de réglage pour votre SVM. Consultez l'aide de la fonction ksvm
dans le package kernlab pour plus de détails.
EDIT2: Exemple de régression triviale
> library(caret)
> ctrl <- trainControl(method = "cv", savePred=T)
> mod <- train(Sepal.Length~., data=iris, method = "svmLinear", trControl = ctrl)
> head(mod$pred)
pred obs rowIndex .C Resample
1 4.756119 4.8 13 0.25 Fold01
2 4.910948 4.8 31 0.25 Fold01
3 5.094275 4.9 38 0.25 Fold01
4 4.728503 4.8 46 0.25 Fold01
5 5.192965 5.3 49 0.25 Fold01
6 5.969479 5.9 62 0.25 Fold01