Wenn Sie SVM verwenden, müssen Sie einen Kernel auswählen.
Ich frage mich, wie ich einen Kernel auswählen soll. Irgendwelche Kriterien für die Kernelauswahl?
Wenn Sie SVM verwenden, müssen Sie einen Kernel auswählen.
Ich frage mich, wie ich einen Kernel auswählen soll. Irgendwelche Kriterien für die Kernelauswahl?
Antworten:
Der Kernel ist praktisch ein Ähnlichkeitsmaß. Daher ist es eine gute Idee, einen Kernel nach Vorkenntnissen der Invarianzen zu wählen, wie von Robin (+1) vorgeschlagen.
In Ermangelung von Expertenwissen stellt der Radial Basis Function-Kernel einen guten Standard-Kernel dar (sobald Sie festgestellt haben, dass es sich um ein Problem handelt, das ein nichtlineares Modell erfordert).
Die Auswahl der Kernel- und Kernel- / Regularisierungsparameter kann automatisiert werden, indem eine auf Cross-Valdiation basierende Modellauswahl optimiert wird (oder die Radius-Rand- oder Bereichsgrenzen verwendet werden). Am einfachsten ist es, ein kontinuierliches Modellauswahlkriterium mithilfe der Nelder-Mead-Simplex-Methode zu minimieren, die keine Gradientenberechnung erfordert und für eine sinnvolle Anzahl von Hyperparametern geeignet ist. Wenn Sie mehr als ein paar Hyperparameter einstellen müssen, führt die automatische Modellauswahl aufgrund der Varianz des Modellauswahlkriteriums wahrscheinlich zu einer starken Überanpassung. Es ist möglich, eine gradientenbasierte Optimierung zu verwenden, aber der Leistungszuwachs ist normalerweise nicht die Mühe wert, ihn zu codieren.
Die automatische Auswahl von Kerneln und Kernel- / Regularisierungsparametern ist ein schwieriges Problem, da das Modellauswahlkriterium (in der Regel auf der Grundlage einer Kreuzvalidierung) sehr leicht überarbeitet werden kann und Sie möglicherweise ein schlechteres Modell erhalten als zu Beginn. Die automatische Modellauswahl kann auch die Leistungsbewertung beeinflussen. Stellen Sie daher sicher, dass Ihre Leistungsbewertung den gesamten Prozess der Anpassung des Modells (Schulung und Modellauswahl) bewertet. Weitere Informationen finden Sie unter
GC Cawley und NLC Talbot, Verhinderung einer Überanpassung bei der Modellauswahl durch Bayes'sche Regularisierung der Hyperparameter, Journal of Machine Learning Research, Band 8, Seiten 841-861, April 2007. (pdf)
und
GC Cawley und NLC Talbot, Überanpassung bei der Modellauswahl und anschließende Auswahlverzerrung bei der Leistungsbewertung, Journal of Machine Learning Research, vol. 11, S. 2079-2107, Juli 2010. (pdf)
Wenn Sie sich nicht sicher sind, was am besten ist, können Sie automatische Auswahlverfahren verwenden (z. B. Kreuzvalidierung, ...). In diesem Fall können Sie sogar eine Kombination von Klassifikatoren verwenden (wenn Ihr Problem in der Klassifizierung besteht), die mit einem anderen Kernel erhalten wurden.
Der "Vorteil" der Arbeit mit einem Kernel besteht jedoch darin, dass Sie die übliche "euklidische" Geometrie so ändern, dass sie zu Ihrem eigenen Problem passt. Außerdem sollten Sie wirklich versuchen zu verstehen, was das Interesse eines Kernels für Ihr Problem ist, was für die Geometrie Ihres Problems besonders ist . Dies kann beinhalten:
Wenn Sie wissen, dass ein lineares Trennzeichen gut ist, können Sie einen Kernel verwenden, der affine Funktionen liefert (dh ). Wenn Sie der Meinung sind, dass glatte Grenzen im Geiste von glattem KNN besser sind, können Sie einen Gaußschen Kernel nehmen ...
Ich habe immer das Gefühl, dass die Auswahl von Hyperparametern für SVMs über die Kreuzvalidierung in Kombination mit der Rastersuche erfolgt.
Im Allgemeinen ist der RBF-Kernel eine vernünftige erste Wahl. Darüber hinaus ist der lineare Kernel ein Sonderfall des RBF. Insbesondere wenn die Anzahl der Features sehr groß ist, kann man nur den linearen Kernel verwenden.