12

RにSVMがあり、このマシンの分類空間をプロットしたいと思います。インターネットでいくつかの例を見つけましたが、それらを理解できないようです。

私のRスクリプトは次のとおりです。

library(e1071)
day_of_week <- c(0,1,2,3,4,5,6)
holiday <- factor( c(T, F, F, F, F, F, T) )
model <- svm(day_of_week, holiday)
plot(model, day_of_week, holiday)

plotコマンドを動作させることができません。このようなグラフが欲しいですhttp://bm2.genes.nig.ac.jp/RGM2/R_current/library/e1071/man/images/plot.svm_001.png

4

2 に答える 2

18

まず、このplot.svm関数は、データが2次元で変化することを前提としています。例で使用したデータは1次元のみであるため、決定境界を線上にプロットする必要がありますが、これはサポートされていません。次に、関数は入力としてデータフレームを必要としているようで、ベクトルを操作しています。

これはうまくいくはずです...

library(e1071)

day = c(0,1,2,3,4,5,6)
weather = c(1,0,0,0,0,0,0)
happy = factor(c(T,F,F,F,F,F,F))

d = data.frame(day=day, weather=weather, happy=happy)
model = svm(happy ~ day + weather, data = d)
plot(model, d)
于 2009-07-17T13:10:54.090 に答える
13

または、 kernlabパッケージを使用することもできます。

library(kernlab)

model.ksvm = ksvm(happy ~ day + weather, data = d, type="C-svc")
plot(model.ksvm, data=d)
于 2009-07-26T11:18:07.383 に答える