2010-05-03 21 views
2

J'utilise libsvm pour la classification multi-classes d'ensembles de données avec un grand nombre de caractéristiques/attributs (environ 5 800 par élément). Je voudrais choisir de meilleurs paramètres pour C et Gamma que les paramètres par défaut que j'utilise actuellement. J'ai déjà essayé d'exécuter easy.py, mais pour les jeux de données que j'utilise, le temps estimé est proche de zéro (j'ai exécuté easy.py à 20, 50, 100 et 200 échantillons de données et j'ai obtenu un super régression linéaire qui a projeté mon temps d'exécution nécessaire pour prendre des années).Comment trouver des paramètres C/Gamma optimaux dans libsvm?

Y at-il un moyen d'arriver plus rapidement à de meilleures valeurs C et Gamma que les valeurs par défaut? J'utilise les bibliothèques Java, si cela fait une différence.

Répondre

3

Il est possible d'accomplir ceci sans une recherche de grille, comme le fait easy.py.

Regardez cet article de Trevor Hastie, et al: The Entire Regularization Path for the Support Vector Machine (PDF). Un "run SVM" calcule la perte pour toutes les valeurs de "C" en un coup, de sorte que vous pouvez voir comment cela affecte votre performance SVM.

Ils ont une implémentation de cet algorithme que vous pouvez utiliser dans R via le package svmpath. Je crois que le noyau de l'algorithme est écrit en fortran, mais est enveloppé dans R.