SVM avec validation croisée en R utilisant caret

on m'a dit d'utiliser le paquet caret pour effectuer une régression vectorielle de soutien avec une validation croisée de 10 fois sur un ensemble de données que j'ai. Je mets ma variable de réponse en correspondance avec 151 variables. J'ai fait la suivante:-

> ctrl <- trainControl(method = "repeatedcv", repeats = 10)
> set.seed(1500)
> mod <- train(RT..seconds.~., data=cadets, method = "svmLinear", trControl = ctrl)

dans lequel j'ai reçu

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 être en mesure d'avoir un coup d'oeil à mes plis, et pour chacun d'eux, comment fermer les valeurs prédites ont des valeurs réelles. Comment dois-je regarder?

aussi, il est 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 le C signifie 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 ensemble de données. J'essaie de comparer les secondes avec 151 variables.

Merci

14
demandé sur Richie Cotton 2013-12-09 05:14:38

1 réponses

vous devez sauvegarder vos prédictions CV via l'option" savePred " dans votre trainControl objet. Je ne sais pas de quel paquet proviennent vos données "cadets" , Mais voici un exemple trivial utilisant 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 un des paramètres de réglage de votre SVM. Consultez l'aide pour le ksvm fonction dans le paquet 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
17
répondu David 2013-12-09 04:01:49