2016-06-07 14 views
0

ich E1071 Paket bin mit zur Erzeugung von VM-Modell und Prognosen in R. my_data CSV-Datei Beispiel:SVM Modellfehler bei der Vorhersage der Erstellung

Kupno,X1,X2,X3,X4 
0,1,22,1,4.961566871 
1,2,18,0,6.316553966 
... 10000 lines 

Mein R Code:

library(e1071) 

model <- svm(data = my_data, y = my_data['Kupno'], x = my_data['X1']) 
plot(model,data=my_data,fill=TRUE) 
index <- 1:nrow(my_data) 
testindex <- sample(index, trunc(length(index)/3)) 
testset <- my_data[testindex,] 
trainset <- my_data[-testindex,] 
model <- svm(data = my_data, y = my_data['Kupno'], x = my_data['X1']) 
prediction <- predict(model, testset) 

Und ich habe drei Probleme:

  1. Plot-Befehl generiert keine Fehler, aber auch Plot nicht angezeigt. Plot für Plot (my_data) wird korrekt angezeigt.
  2. Letzter Befehl return error:

    'scale.default (newdata [, Objekt $ skaliert, Tropfen = FALSE], center = Objekt $ x.scale $ "skaliert: center"': Länge ‚Zentrum‘ muss die Anzahl der Spalten von ‚x‘ gleich

  3. ich habe vier Spalten von x und ich weiß nicht, wie vier dimention x an das SVM-Modell zu übergeben.

Tha Ich brauche viel Hilfe!

+0

Warum verwenden Sie keine Formelschnittstelle wie in [der Dokumentation] (http://www.inside-r.org/node/57517) getan? –

Antwort

0

Lassen Sie mich versuchen, Ihre Fragen individuell zu beantworten.

  1. Sie versuchen, eine SVM zu plotten, die nur mit einem Prädiktor angepasst wurde, sodass Ihre Klassifizierung nur in einer Dimension erstellt wurde. Dies ist im Wesentlichen nur eine Linie. Dies wurde in this thread diskutiert.

  2. Sie melden einen Fehler aufgrund eines Problems mit Ihren Dimensionen. In Ihrem Modell bauen Sie nur auf 1 Prädiktor X1 auf. Wenn Sie jedoch Ihren Testset-Datenrahmen erstellen, schließen Sie auch die Variablen X2-X4 ein. Wenn Sie versuchen, auf diesem Testset zu prognostizieren, kennzeichnet die Funktion einen Fehler, weil es versucht, Ihr 1-Prädiktormodell auf Daten mit 4 Prädiktoren anzupassen.

    Genauer gesagt bedeutet der Fehler, dass das Objekt Länge 1 hat und dass x 4 Spalten hat.

  3. Eine einfache Möglichkeit, dies zu tun, ist nur eine Formel Schnittstelle

    Modell < verwenden - (. Kupno ~, data = my_data) auf alle regredieren SVM

    Die ~. sagt das Modell die Spalten in Ihrem Datensatz.