Al utilizar la SVM, tenemos que seleccionar un núcleo.
Me pregunto cómo seleccionar un núcleo. ¿Algún criterio para la selección del núcleo?
Al utilizar la SVM, tenemos que seleccionar un núcleo.
Me pregunto cómo seleccionar un núcleo. ¿Algún criterio para la selección del núcleo?
El kernel es efectivamente una medida de similitud, por lo que elegir un kernel de acuerdo con el conocimiento previo de las invariancias como sugiere Robin (+1) es una buena idea.
En ausencia de conocimiento experto, el núcleo de la función de base radial es un buen núcleo por defecto (una vez que se ha establecido que es un problema que requiere un modelo no lineal).
La elección del kernel y de los parámetros del kernel/regularización puede automatizarse mediante la optimización de una selección de modelos basada en valoraciones cruzadas (o utilizar los límites de radio-margen o span). 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 el cálculo del gradiente y funciona bien para un número razonable de hiperparámetros. Si tiene más de unos pocos hiperparámetros que ajustar, es probable que la selección automática de modelos dé lugar a un sobreajuste grave, debido a la varianza del criterio de selección de modelos. Es posible utilizar la optimización basada en el gradiente, pero la ganancia de rendimiento no suele merecer el esfuerzo de codificarla).
La elección automatizada de los núcleos y de los parámetros de los núcleos/regularización es una cuestión delicada, ya que muy Es fácil sobreajustar el criterio de selección del modelo (normalmente basado en la validación cruzada), y se puede acabar con un modelo peor que el inicial. La selección automatizada del modelo también puede sesgar la evaluación del rendimiento, así que asegúrese de que su evaluación del rendimiento evalúa todo el proceso de ajuste del modelo (entrenamiento y selección del modelo); para más detalles, consulte
G. C. Cawley y N. L. C. Talbot, Preventing over-fitting in model selection via Bayesian regularisation of the hyper-parameters, Journal of Machine Learning Research, volumen 8, páginas 841-861, abril de 2007. (pdf)
y
G. C. Cawley y N. L. C. Talbot, Over-fitting in model selection and subsequent selection bias in performance evaluation, Journal of Machine Learning Research, vol. 11, pp. 2079-2107, July 2010. (pdf)
Entiendo que la base radial es una medida de similitud ya que es casi 0 para vectores alejados entre sí y alcanza su máximo en vectores idénticos. Sin embargo, no veo cómo esa idea se aplica al algoritmo lineal (que utiliza el producto punto como núcleo). ¿Cómo podemos interpretar el producto punto como una medida de similitud?
Si no está seguro de qué es lo mejor, puede utilizar técnicas automáticas de selección (por ejemplo, validación cruzada, ... ). En este caso puede incluso utilizar un 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 cambias la geometría "euclidiana" habitual para que se adapte a tu propio problema. Además, hay que tratar de entender cuál es el interés de un kernel para tu problema, qué es lo particular de la geometría de su problema . Esto puede incluir:
$$ \hat{f}(x)=\sum_{i=1}^n \lambda_i K(x,x_i)$$
Si sabes que un separador lineal sería bueno, entonces puedes usar Kernel que da funciones afines (es decir $K(x,x_i)=\langle x,A x_i\rangle+c$ ). Si crees que sería mejor tener límites suaves en el espíritu del KNN suave, entonces puedes tomar un kernel gaussiano...
En tu respuesta, mencionas que "La "ventaja" de trabajar con un núcleo es que cambias la geometría "euclidiana" habitual para que se adapte a tu propio problema. Además, deberías tratar de entender cuál es el interés de un kernel para tu problema, qué es lo particular de la geometría de tu problema." ¿Puedes dar algunas referencias para empezar? Gracias.
La búsqueda en la red es una mala idea, se pierde mucho tiempo buscando en zonas donde el rendimiento es malo. Utiliza algoritmos de optimización sin gradiente, como el método simplex de Nelder-Mead, que es mucho más eficiente en la práctica (por ejemplo, fminsearch() en MATLAB).
Depende de si tus datos son linealmente separables o no, no de cuántas dimensiones tengas. Cuando el número de características es muy grande, (de nuevo dependiendo de los datos), se aplicaría primero la reducción de la dimensionalidad, PCA o LDA (variantes de núcleo lineal o no lineal)
Creo que hay que diferenciar más aquí: El hecho de que los datos no sean linealmente separables no significa que un modelo lineal no sea adecuado (imagínese que la no separabilidad sólo se debe a los valores atípicos).
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.
1 votos
¿cuál es la magnitud del problema? (#variables, observaciones)?
1 votos
Sólo pido una solución generalizada, ningún problema particular especificado