Quelle plage de recherche pour déterminer les paramètres C et gamma optimaux SVM?


32

J'utilise SVM pour la classification et j'essaie de déterminer les paramètres optimaux pour les noyaux linéaires et RBF. Pour le noyau linéaire, j'utilise la sélection de paramètres à validation croisée pour déterminer C et pour le noyau RBF, j'utilise la recherche de grille pour déterminer C et gamma.

J'ai 20 fonctionnalités (numériques) et 70 exemples de formation qui devraient être classés en 7 classes.

Quelle plage de recherche dois-je utiliser pour déterminer les valeurs optimales pour les paramètres C et gamma?

Réponses:


31

Consultez Un guide pratique de la classification SVM pour certains pointeurs, en particulier la page 5.

Nous recommandons une "recherche de grille" sur et utilisant la validation croisée. Différentes paires de valeurs sont essayées et celle avec la meilleure précision de validation croisée est choisie. Nous avons constaté que l'essai de séquences à croissance exponentielle de et est une méthode pratique pour identifier de bons paramètres (par exemple, ).Cγ(C,γ)CγC=25,23,,215;γ=215,213,,23

N'oubliez pas de normaliser d'abord vos données et si vous le pouvez, collectez plus de données car, à première vue, votre problème pourrait être largement sous-déterminé.


Le test par les pairs doit-il être effectué manuellement? il n'y a pas de bibliothèque pour y parvenir?
x-rw

11

Consultez la section 2.3.2 de cet article de Chapelle et Zien. Ils ont une bonne heuristique pour sélectionner une bonne plage de recherche pour du noyau RBF et pour SVM. Je citeσC

Pour déterminer les bonnes valeurs des paramètres libres restants (par exemple, par CV), il est important de rechercher sur la bonne échelle. Nous fixons donc des valeurs par défaut pour et qui ont le bon ordre de grandeur. Dans un problème de classe , nous utilisons le quantile des distances par paires de tous les points de données par défaut pour . La valeur par défaut pour est l'inverse de la variance empirique dans l'espace des caractéristiques, qui peut être calculée par à partir d' un la matrice noyau .Cσc1/cDijρσCs2s2=1niKii1n2i,jKijn×nK

Ensuite, ils utilisent des multiples (par exemple pour ) de la valeur par défaut comme plage de recherche dans une recherche de grille utilisant la validation croisée. Cela a toujours très bien fonctionné pour moi.2kk{2,...,2}

Bien sûr, nous avons dit @ciri, normaliser les données, etc. est toujours une bonne idée.


Je pense qu'il existe plusieurs formulations de noyau rbf égales. Un avec gamma et un autre avec sigma, c'est-à-dire gamma = 1 / 2sigma ^ 2. Le gamma dans l'heuristique ci-dessus correspond-il au gamma, sigma ou sigma ^ 2? J'ai trouvé d'autres descriptions de la même heurstic qui sont pour le gamma.
machines

Si vous vérifiez le papier lié, c'est12σ2
fabee

@fabee Le test par les pairs doit-il être effectué manuellement? il n'y a pas de bibliothèque pour y parvenir?
x-rw
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.