Al usar SVM, debemos seleccionar un núcleo.
Me pregunto cómo seleccionar un núcleo. ¿Algún criterio para la selección del núcleo?
machine-learning
svm
kernel-trick
xiaohan2012
fuente
fuente
Respuestas:
El kernel es efectivamente una medida de similitud, por lo que es una buena idea elegir un kernel de acuerdo con el conocimiento previo de las variaciones como sugiere Robin (+1).
En ausencia de conocimiento experto, el núcleo de la función de base radial es un buen núcleo predeterminado (una vez que lo haya establecido, es un problema que requiere un modelo no lineal).
La elección del núcleo y los parámetros de núcleo / regularización pueden automatizarse mediante la optimización de una selección de modelo basada en valdiación cruzada (o usar el margen de radio o los límites de extensión). Lo más sencillo es minimizar un criterio de selección de modelo continuo utilizando el método simplex de Nelder-Mead, que no requiere cálculo de gradiente y funciona bien para números sensibles de hiperparámetros. Si tiene que ajustar más de unos pocos hiperparámetros, es probable que la selección automática del modelo dé como resultado un ajuste excesivo severo, debido a la variación del criterio de selección del modelo. Es posible utilizar la optimización basada en gradiente, pero la ganancia de rendimiento no suele valer la pena codificarla).
La elección automatizada de núcleos y parámetros de kernel / regularización es un problema complicado, ya que es muy fácil sobreajustar el criterio de selección de modelo (generalmente basado en validación cruzada), y puede terminar con un modelo peor de lo que comenzó. La selección automática del modelo también puede sesgar la evaluación del desempeño, así que asegúrese de que su evaluación del desempeño evalúe todo el proceso de ajuste del modelo (capacitación y selección del modelo), para más detalles, consulte
GC Cawley y NLC Talbot, Prevención del sobreajuste en la selección de modelos mediante la regularización bayesiana de los hiperparámetros, Journal of Machine Learning Research, volumen 8, páginas 841-861, abril de 2007. (pdf)
y
GC Cawley y NLC Talbot, Ajuste excesivo en la selección del modelo y posterior sesgo de selección en la evaluación del rendimiento, Journal of Machine Learning Research, vol. 11, pp. 2079-2107, julio de 2010. (pdf)
fuente
Si no está seguro de lo que sería mejor, puede utilizar técnicas automáticas de selección (por ejemplo, validación cruzada, ...). En este caso, incluso puede usar una combinación de clasificadores (si su problema es la clasificación) obtenidos con diferentes núcleos.
Sin embargo , la "ventaja" de trabajar con un núcleo es que cambia la geometría "euclidiana" habitual para que se adapte a su propio problema. Además, debería tratar de comprender cuál es el interés de un núcleo para su problema, qué es particular de la geometría de su problema . Esto puede incluir:
Si sabe que un separador lineal sería bueno, puede usar Kernel que le da funciones afines (es decir, ). Si crees que los límites suaves mucho en el espíritu de KNN suave serían mejores, entonces puedes tomar un núcleo gaussiano ...K(x,xi)=⟨x,Axi⟩+c
fuente
Siempre tengo la sensación de que cualquier selección de hiperparámetros para SVM se realiza mediante validación cruzada en combinación con la búsqueda de cuadrícula.
fuente
En general, el núcleo RBF es una primera opción razonable. Además, el núcleo lineal es un caso especial de RBF. En particular, cuando el número de características es muy grande, uno puede usar el núcleo lineal.
fuente