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
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