2011-11-28 25 views
0

Rのe1071パッケージでsvm関数を使用しています。svm関数を使用してデータの精度は74%になりますが、予測関数を使用しようとするとテストデータセットでは、2つのカテゴリのいずれかにすべてのデータが返され、もう一方には0が表示されます。これはコードの外観ですe1071パッケージのPredict.svm関数R

test <- read.table(file.choose(), header=T) 
pred <- predict(modelb, test) 
summary(pred) 
0 1 
101 0 
+5

この質問に記載されているヒントを含む質問を更新してください:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Chase

答えて

1

訓練データセットの不均衡が考えられます。

のは、あなたには、いくつかのケースでは、クラス1のクラス0と1のサンプル中のサンプルの100を持っているとしましょう、最善の解決策は、いくつかのソリューションが含まクラスに0

をすべての新しい例を置くことによって与えられる:

  1. バランスの取れたデータセットで作業する
  2. 異なる重みをクラスに割り当てる。私はkernlabパッケージを使用していますが、コードはそれほど違いはなく、モデルを計算するときにclass.weightというオプションが必要です。