Helfen Sie mit predict() für kernlab der SVM in R?

Ich versuche, mit der kernlab R-Paket zu tun Support-Vektor-Maschinen (SVM). Für mein sehr einfaches Beispiel, ich habe zwei Stücke von Trainingsdaten. A und B.

(A und B sind vom Typ matrix - Sie sind angrenzens Matrizen für Graphen.)

Also schrieb ich eine Funktion, die A+B und erzeugt ein kernel-matrix.

> km
         [,1]     [,2]
[1,] 14.33333 18.47368
[2,] 18.47368 38.96053

Nun benutze ich kernlab's ksvm Funktion zum generieren von meinem prädiktives Modell aus. Gerade jetzt, ich versuche nur, um das verflixte Ding zu arbeiten - ich bin nicht besorgt über training, Fehler, etc.

So, Frage 1: Bin ich der Generierung meinem Modell richtig? Vernünftig?

# y are my classes. In this case, A is in class "1" and B is in class "-1"
> y
[1]  1 -1

> model2 =  ksvm(km, y, type="C-svc", kernel = "matrix");
> model2
Support Vector Machine object of class "ksvm" 

SV type: C-svc  (classification) 
 parameter : cost C = 1 

[1] " Kernel matrix used as input."

Number of Support Vectors : 2 

Objective Function Value : -0.1224 
Training error : 0 

So weit So gut. Wir erstellten unsere custom kernel matrix, und dann haben wir ein ksvm Modell, das mit dieser matrix. Wir haben unsere Trainings-Daten mit der Bezeichnung "1" und "-1".

Jetzt voraussagen:

> A
     [,1] [,2] [,3]
[1,]    0    1    1
[2,]    1    0    1
[3,]    0    0    0

> predict(model2, A)
Error in as.matrix(Z) : object 'Z' not found

Uh-oh. Das ist in Ordnung. Art erwartet, wirklich. "Vorhersagen" will eine Art von Vektor, keine matrix.

So können versuchen, einige Dinge:

> predict(model2, c(1))
Error in as.matrix(Z) : object 'Z' not found
> predict(model2, c(1,1))
Error in as.matrix(Z) : object 'Z' not found
> predict(model2, c(1,1,1))
Error in as.matrix(Z) : object 'Z' not found
> predict(model2, c(1,1,1,1))
Error in as.matrix(Z) : object 'Z' not found
> predict(model2, km)
Error in as.matrix(Z) : object 'Z' not found

Einige der oben genannten tests sind unsinnig, aber das ist mein Punkt: egal was ich mache, ich bekomme einfach nicht predict() meine Daten und eine Vorhersage. Skalare, die nicht arbeiten, Vektoren, die nicht arbeiten. Eine 2x2-matrix funktioniert nicht, auch nicht eine 3x3-matrix.

Was mache ich hier falsch?

(Sobald ich herausfinden, was ksvm will, dann kann ich sicherstellen, dass mein test-Daten können entsprechen Sie, dass das format in einem vernünftigen/angemessenen/mathematisch sound Weg.)

InformationsquelleAutor poundifdef | 2009-11-18

Schreibe einen Kommentar