4

ライブラリ (kernlab) で SVM を使用して 2D プロットを作成しようとしていますが、プロット関数はバイナリ分類にのみ適しているようです。以下の例のように、3 つ (またはそれ以上) のグループをプロットできるようにしたいと考えています。

私のデータは虹彩データと同じように構造化されているので、それを使って説明します。

モデルを適合させた後:

 fit.ksvm <- ksvm(Species~., data=iris, kernel= "rbfdot", prob.model=TRUE)
 fit.ksvm

ksvm のプロット関数を使用します。

plot(fit.ksvm, data=iris)

次のメッセージを取得します。

> plot(fit.ksvm, data=iris)
  Error in .local(x, ...) : 
  plot function only supports binary classification

双方向分類を使用して同様の分析を試みると、プロットが生成されます。だから、問題は複数のグループだと思います。以下のような 2 次元の「ヒートマップ」を作成する方法を考えられる人はいますか? ただし、3 つ (またはそれ以上) のクラスを持つ SVM 分類モデルを使用しますか?

two-way SVM classification
x <- rbind(matrix(rnorm(120),,2),matrix(rnorm(120,mean=3),,2))
y <- matrix(c(rep(1,60),rep(-1,60)))

svp <- ksvm(x,y,type="C-svc")
plot(svp,data=x)
4

1 に答える 1

1

e1071 ライブラリを使用できます

library(e1071)
m <- svm(Species~., data = iris)
plot(m, iris, Petal.Width ~ Petal.Length, slice = list(Sepal.Width = 3, Sepal.Length = 4))
于 2014-01-29T20:13:37.180 に答える