Das wunderbare libsvm-Paket bietet eine Python-Oberfläche und eine Datei "easy.py", die automatisch nach Lernparametern (Kosten & Gamma) sucht, die die Genauigkeit des Klassifikators maximieren. Innerhalb eines bestimmten Kandidatensatzes von Lernparametern wird die Genauigkeit durch Kreuzvalidierung operationalisiert, aber ich denke, dies untergräbt den Zweck der Kreuzvalidierung. Das heißt, sofern die Lernparameter selbst so ausgewählt werden können, dass eine Überanpassung der Daten verursacht wird, wäre es meines Erachtens angemessener, eine Kreuzvalidierung auf der Ebene der Suche selbst anzuwenden: Führen Sie die Suche durch auf einem Trainingsdatensatz und bewerten Sie dann die endgültige Genauigkeit von SVM, die sich aus den endgültig ausgewählten Lernparametern ergibt, durch Auswertung in einem separaten Testdatensatz. Oder fehlt mir hier etwas?
quelle
Ich denke nicht, dass Kreuzvalidierung im Fall von LIBSVM missbraucht wird, da dies auf der Ebene der Testdaten erfolgt. Alles, was es tut, ist eine k-fache Kreuzvalidierung und die Suche nach dem besten Parameter für den RBF-Kernel. Lassen Sie mich wissen, dass Sie nicht einverstanden sind.
quelle