2013-12-09 21 views
12

サポートベクターマシン回帰を実行するために、私が持っているデータセットで10倍のクロスバリデーションを行うためにキャレットパッケージを使用するように言われました。私は応答変数を151変数に対してプロットしています。私は次のようでした - 私はキャレットを使用したRのクロスバリデーションを使用したSVM

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 

を得た。しかし、私は私の折り目を見ていることができるようにしたいれる

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

、およびそれらのそれぞれの予測値がしていたどれだけ近いですか実際の値これを見てどうすればいいですか?私はこれが何を意味するのか不思議とどのようなCは、上記の表での略称た

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

- :

また、それは、と言っていますか?

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 

これは私のデータセットのスニペットです。私は151の変数に対してRT秒間ポットしようとしています。あなたのtrainControlオブジェクト内の「savePred」オプションを使用して、あなたのCVの予測を保存する必要が

おかげ

答えて

16

。私はあなたの「士官候補生」からデータが何であるか、パッケージわからないんだけど、ここではアイリスを使用して簡単な例です:

> 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:「C」は、あなたのSVMのためのチューニングパラメータの一つです。詳細については、kernlabパッケージのksvm機能のヘルプを参照してください。

EDIT2:返信用簡易回帰例

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

こんにちは感謝。 trainControlのビットを変更しました。私が見ているデータセットの一部(生きものデータセット)が含まれています。私はhead(mod $ pred)ビットを修正する方法を知らないので、151の記述子変数に対してRT秒をモデリングしているので、今作成したモデルから予測されたRT(秒)を見ることができます。この場合、どうすればいいですか? – user2062207

+0

'mod $ pred'部分を変更する必要はありません。あなたの "mod"オブジェクトはあなたのCV予測を含む "pred"という名前の要素を含むリストであるあなたのキャレットモデルです。 – David

+0

私はそれをやろうとするたびにNULLを返すようになっています。 mod $ predは分類に使用されていませんか?私はなぜこれが起こっているのかを説明する回帰を試みています – user2062207

関連する問題