Also habe ich mit SVMs rumgespielt und ich frage mich, ob das eine gute Sache ist:
Ich habe eine Reihe von fortlaufenden Features (0 bis 1) und eine Reihe von kategorialen Features, die ich in Dummy-Variablen konvertiert habe. In diesem speziellen Fall codiere ich das Datum der Messung in eine Dummy-Variable:
Es gibt 3 Zeiträume, von denen ich Daten habe und für die ich 3 Merkmalsnummern reserviert habe:
20: 21: 22:
Je nachdem aus welchem Zeitraum die Daten stammen, werden verschiedene Funktionen 1 zugewiesen. die anderen bekommen 0.
Funktioniert die SVM damit richtig oder ist dies eine schlechte Sache?
Ich benutze SVMLight und einen linearen Kernel.
Antworten:
SVMs verarbeiten sowohl binäre als auch kontinuierliche Variablen, solange Sie eine Vorverarbeitung durchführen: Alle Features sollten skaliert oder normalisiert werden. Nach diesem Schritt ist es aus der Perspektive der Algorithmen unerheblich, ob Features kontinuierlich oder binär sind: Bei Binärdateien werden Beispiele angezeigt, die entweder "weit" entfernt oder sehr ähnlich sind. für stetig gibt es auch die dazwischen liegenden Werte. Der Kernel spielt in Bezug auf die Art der Variablen keine Rolle.
quelle
Repliziere meine Antwort von http://www.quora.com/Machine-Learning/What-good-ways-to-handle-discrete-and-continuous-inputs-together/answer/Arun-Iyer-1
Jetzt können Sie alle Features in einem einzigen Vektor darstellen, von dem wir annehmen können, dass er in eingebettet ist, und Standardpakete für die Klassifizierung / Regression usw. verwenden.Rn
Anhang: Wenn Sie kernelbasierte Methoden verwenden, können Sie diese explizite Einbettung in R n vermeidenRn und sich darauf konzentrieren, benutzerdefinierte Kernel für Ihre Feature-Vektoren zu entwerfen. Sie können Ihren Kernel sogar in mehrere Kernel aufteilen und MKL-Modelle verwenden, um Gewichte darüber zu lernen. Möglicherweise möchten Sie jedoch eine positive Halbbestimmtheit Ihres Kernels sicherstellen, damit der Löser keine Probleme hat. Wenn Sie jedoch nicht sicher sind, ob Sie benutzerdefinierte Kernel entwerfen können, können Sie einfach dem früheren Ansatz zum Einbetten folgen.
quelle