Zeichnen von Daten aus einer svm fit - hyperplane
Ich verwendet svm zu finden hyperplane best fit regression abhängig von q, wo ich 4 Dimensionen: x, y, z, q.
fit <- svm(q ~ ., data=data,kernel='linear')
und hier ist mein fit-Objekt:
Call:
svm(formula = q ~ ., data = data, kernel = "linear")
Parameters:
SVM-Type: C-classification
SVM-Kernel: linear
cost: 1
gamma: 0.3333333
Number of Support Vectors: 1800
Habe ich einen 3d-plot von meinen Daten, wo die 4. dimension ist die Farbe, mit plot3d. Wie kann ich die overlay-hyperplane, dass svm gefunden? Wie kann ich den plot der hyperplane? Ich würde gerne die Visualisierung der regress hyperplane.
Ähm....1 Reaktion, 1 kovariable: best-fit-Linie. 1 Antwort, 2 kovariablen: best-fit-Ebene. 1 Antwort, 3 kovariablen: ?.
Ich würde sagen, die Antwort ist "small multiples" oder coplots: angenommen wir haben die Prädiktoren (x,y,z) und Antwort w, plot (x,y,w) teilungsebene in einer Reihe von Nebenhandlungen, die für Regionen (z1,z2), (z2,z3) ... -- nicht trivial, obwohl. , Oder verwenden Sie die dynamische Grafik a la ggobi ...
Ich Frage mich, wer minused CodeGuy. Selbst, wenn es 10-dimensionale, diese Frage könnte gemeint sein als wie sollte ich diese sichtbar zu machen, etc.. mehr über, es gibt Publikationen über high-dimensinal Visualisierung.
Dies ist nicht zu seltsam, noch ungewöhnlich angesichts einer Klassifizierung Kontext. In einem 2-D-Ebene, kann man positive und negative Instanzen, geteilt durch eine Linie, so gibt es 1 Antwort, 2 Prädiktoren, und man kann die Farbe der Punkte auf der Grundlage, ob diese negativ/positiv (oder 0/1) Ergebnisse. Für die 3 Prädiktoren, 3-dimensionalen Raum um eine Darstellung der Prädiktoren und man kann Farbe oder Schattierung der Punkte basierend auf der Antwort. In anderen Worten, die Reaktion muss nicht zu einem Anstieg der algebraischen Dimension.
Wie Max, ich finde du machst Klassifizierung, nicht regression. Wenn dies nicht der Fall, kannst du bitte die Ausgabe von
Ich würde sagen, die Antwort ist "small multiples" oder coplots: angenommen wir haben die Prädiktoren (x,y,z) und Antwort w, plot (x,y,w) teilungsebene in einer Reihe von Nebenhandlungen, die für Regionen (z1,z2), (z2,z3) ... -- nicht trivial, obwohl. , Oder verwenden Sie die dynamische Grafik a la ggobi ...
Ich Frage mich, wer minused CodeGuy. Selbst, wenn es 10-dimensionale, diese Frage könnte gemeint sein als wie sollte ich diese sichtbar zu machen, etc.. mehr über, es gibt Publikationen über high-dimensinal Visualisierung.
Dies ist nicht zu seltsam, noch ungewöhnlich angesichts einer Klassifizierung Kontext. In einem 2-D-Ebene, kann man positive und negative Instanzen, geteilt durch eine Linie, so gibt es 1 Antwort, 2 Prädiktoren, und man kann die Farbe der Punkte auf der Grundlage, ob diese negativ/positiv (oder 0/1) Ergebnisse. Für die 3 Prädiktoren, 3-dimensionalen Raum um eine Darstellung der Prädiktoren und man kann Farbe oder Schattierung der Punkte basierend auf der Antwort. In anderen Worten, die Reaktion muss nicht zu einem Anstieg der algebraischen Dimension.
Wie Max, ich finde du machst Klassifizierung, nicht regression. Wenn dies nicht der Fall, kannst du bitte die Ausgabe von
str(data)
und summary(data)
?InformationsquelleAutor CodeGuy | 2011-11-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie schrieb:
Aber nach:
du tust Klassifizierung.
Also, zunächst einmal entscheiden, was Sie brauchen: zu klassifizieren oder zu passen regression, von
?svm
sehen wir:Da ich glaube, dass Sie nicht ändern Sie den parameter
type
von Ihrem default-Wert, sind Sie wahrscheinlich der Lösung desclassification
, so werde ich zeigen, wie visualisieren Sie diese für die Einstufung.Nehmen wir an, es gibt
2
Klassen, erzeugen einige Daten:Da möchte man
kernel='linear'
die Grenze mussw1*x + w2*y + w3*z - w0
- hyperplane.Unsere Aufgabe teilt sich in 2 Teilaufgaben: 1) bewerten Gleichung dieser Grenze Ebene 2) zeichnen Sie in dieser Ebene.
1) Auswertung der Gleichung der Grenz-Flugzeug
Erste, lassen Sie ' s laufen
svm()
:Schrieb ich hier ausdrücklich
type=C-classification
nur für Schwerpunkt wollen wir tun Klassifizierung.scale=FALSE
bedeutet, wir wollensvm()
zu laufen, direkt mit der zur Verfügung gestellten Daten ohne Skalierung der Daten (wie es standardmäßig tut). Ich habe es für zukünftige Auswertungen werden einfacher.Leider
svm_model
nicht speichern Sie die Gleichung der Grenz-Fläche (oder nur, normalen-Vektor), so müssen wir es bewerten. Von svm-Algorithmus wir wissen, dass wir beurteilen können, solche GEWICHTE mit der folgenden Formel:Den negativen Achsenabschnitt gespeichert in
svm_model
, und der Zugriff erfolgt übersvm_model$rho
.2) Zeichenebene.
Ich nicht finden, eine hilfreiche Funktion
plane3d
, so, wieder sollen wir tun etwas praktisch arbeiten. Nehmen wir nur raster von Paaren(x,y)
und bewerten Sie den entsprechenden Wert vonz
von der Grenze Ebene.Wir haben es mit
rgl
- Paket, können Sie drehen Sie das Bild und genießen Sie es 🙂Hallo ich Danke Ihnen so sehr. Jedoch wollte ich eine regression. Könnten Sie code für diese? Wieder, ich danke Ihnen so sehr
InformationsquelleAutor Max
Ich bin gerade erst in R mich, aber es ist ein anständiges tutorial, mit dem e1071 Paket in R für regression eher als Klassifizierung:
http://eric.univ-lyon2.fr/~ricco/tanagra/fichiers/en_Tanagra_Support_Vector_Regression.pdf
mit einer zip-Datei mit dem test-Datensatz und R-Skript in:
http://eric.univ-lyon2.fr/~ricco/tanagra/fichiers/qsar.zip
Überspringen Sie den ersten Abschnitt auf Tanagra und gehen Sie direkt zu Abschnitt 6 (Seite 14). Es hat seine Fehler, aber es gibt Beispiele für die Verwendung von R für die lineare regression SVR mit epsilon-regression und der nu-regression. Es macht auch einen Stich an der Demonstration der tune () - Methode (die aber besser gemacht werden könnte, IMHO).
(Hinweis: wenn Sie die Option zum ausführen der Beispiele in diesem Papier, nicht die Mühe versuchen, zu finden eine Arbeitskopie xlsReadWrite -- es ist viel einfacher zu exportieren qsar.xls als .csv-Datei und verwenden Sie einfach Lesen.csv() laden Sie den Datensatz.)
InformationsquelleAutor fearless_fool