R言語でサポートベクターマシンをいじっています。具体的には、e1071 パッケージを使用しています。
マニュアルページまたはwikibooksのチュートリアルに従う限り、すべてが機能します。しかし、これらの例で独自のデータセットを使用しようとすると、うまくいきません。
何らかの理由でモデルの作成に失敗したようです。少なくとも、ターゲット列のレベルを取得していません。以下に、明確にするための例を示します。
誰かが私がここで間違っていることを理解するのを手伝ってくれるかもしれません。ここにすべてのコードとデータがあります。
テスト データセット
target,col1,col2
0,1,2
0,2,3
0,3,4
0,4,5
0,5,6
0,1,2
0,2,3
0,3,4
0,4,5
0,5,6
0,1,2
0,2,3
0,3,4
0,4,5
1,6,7
1,7,8
1,8,9
1,9,0
1,0,10
1,6,7
1,7,8
1,8,9
1,9,0
1,0,10
1,6,7
1,7,8
1,8,9
1,9,0
1,0,10
Rスクリプト
library(e1071)
dataset <- read.csv("test.csv", header=TRUE, sep=',')
tuned <- tune.svm(target~., data = dataset, gamma = 10^(-6:-1), cost = 10^(-1:1))
summary(tuned)
model <- svm(target~., data = dataset, kernel="radial", gamma=0.001, cost=10)
summary(model)
summary(model) ステートメントの出力
+ summary(model)
Call:
svm(formula = target ~ ., data = dataset, kernel = "radial", gamma = 0.001,
cost = 10)
Parameters:
SVM-Type: eps-regression
SVM-Kernel: radial
cost: 10
gamma: 0.001
epsilon: 0.1
Number of Support Vectors: 28
>
ウィキブックの例
この出力を wikibooks の例の出力と比較すると、いくつかの情報が欠落しています。出力の「Levels」セクションに注意してください。
library(MASS)
library(e1071)
data(cats)
model <- svm(Sex~., data = cats)
summary(model)
出力
> summary(model)
Call:
svm(formula = Sex ~ ., data = cats)
Parameters:
SVM-Type: C-classification
SVM-Kernel: radial
cost: 1
gamma: 0.5
Number of Support Vectors: 84
( 39 45 )
Number of Classes: 2
Levels:
F M