2013-06-14 29 views
8

私のtraindataを使ってsvmを勉強しています。 (Rのe1071パッケージ)。以下は私のデータに関する情報です。e1071パッケージのSVMをRで学習中に "(下付き文字)論理添字が長すぎます"エラー

> str(train) 
'data.frame': 891 obs. of 10 variables: 
$ survived: int 0 1 1 1 0 0 0 0 1 1 ... 
$ pclass : int 3 1 3 1 3 3 1 3 3 2 ... 
$ name : Factor w/ 15 levels "capt","col","countess",..: 12 13 9 13 12 12 12 8 13 13 
$ sex  : Factor w/ 2 levels "female","male": 2 1 1 1 2 2 2 2 1 1 ... 
$ age  : num 22 38 26 35 35 ... 
$ ticket : Factor w/ 533 levels "110152","110413",..: 516 522 531 50 473 276 86 396 
$ fare : num 7.25 71.28 7.92 53.1 8.05 ... 
$ cabin : Factor w/ 9 levels "a","b","c","d",..: 9 3 9 3 9 9 5 9 9 9 ... 
$ embarked: Factor w/ 4 levels "","C","Q","S": 4 2 4 4 4 3 4 4 4 2 ... 
$ family : int 1 1 0 1 0 0 0 4 2 1 ... 

私は以下のようにトレーニングします。

library(e1071) 
model1 <- svm(survived~.,data=train, type="C-classification") 

ここで問題はありません。私は次のエラーを取得する

pred <- predict(model1,test) 

::私はと予測したときにでも

Error in newdata[, object$scaled, drop = FALSE] : 
(subscript) logical subscript too long 

私はまた、電車やテストデータの両方から「チケット」の予測を削除してみました。しかし、まだ同じエラー。何が問題ですか?

+1

再現可能な例がないと答えにくいです。エラーは、あなたのnewdata(ここでのテスト)に十分な列が含まれていないと言っています。 – agstudy

答えて

14

「テスト」データセットの1つの要因のレベル数に差異が生じることがあります。

run str(test)を実行し、factor変数が 'train'データセットの対応する変数と同じレベルであることを確認します。

以下の例すなわちmy.test $ fooののみ4つのレベルを持って示して1つの余分のカテゴリ値がある。このため、.....

str(my.train) 
'data.frame': 554 obs. of 7 variables: 
.... 
$ foo: Factor w/ 5 levels "C","Q","S","X","Z": 2 2 4 3 4 4 4 4 4 4 ... 

str(my.test) 
'data.frame': 200 obs. of 7 variables: 
... 
$ foo: Factor w/ 4 levels "C","Q","S","X": 3 3 3 3 1 3 3 3 3 3 ... 
+0

は、data = factor(データ、レベル= c(標準レベル))でレベルを変更しました。そしてうまくいった –

2

ザッツ正しい列データは着手のための2つのブランクが含まれています/ 4レベル ""、 "C"、 "Q"、 "S" wのファクター:あなたは、このエラー

$着手を得ているのブランクのためにと4 2 4 4 4 3 4 4 4 2 ...

最初は空白です

0

私もそのデータセットで遊んでいます。私は、これは長い時間前だったけど、あなたができることの一つは、明示的なように、モデルに追加されます感じる列のみが含まれます:

fit <- svm(Survived~Pclass + Sex + Age + SibSp + Parch + Fare + Embarked, data=train) 

これは列を排除することによって、私のための問題を解消しました関連するデータを持たないものは何も寄付しません(チケット番号など)。

関連する問題