¿Cuáles son las limitaciones de los métodos del kernel y cuándo usar los métodos del kernel?

10

Los métodos de kernel son muy efectivos en muchas tareas de clasificación supervisadas. Entonces, ¿cuáles son las limitaciones de los métodos del núcleo y cuándo usar los métodos del núcleo? Especialmente en la era de los datos a gran escala, ¿cuáles son los avances de los métodos del núcleo? ¿Cuál es la diferencia entre los métodos del núcleo y el aprendizaje de múltiples instancias? Si los datos son 500x10000, 500es el recuento de muestras, y 10000es la dimensión de cada característica, entonces, en esta circunstancia, ¿podemos usar los métodos del núcleo?

minería
fuente

Respuestas:

16

Los métodos del kernel pueden usarse para problemas supervisados ​​y no supervisados. Ejemplos bien conocidos son la máquina de vectores de soporte y la agrupación espectral del núcleo , respectivamente.

Los métodos de kernel proporcionan una forma estructurada de usar un algoritmo lineal en un espacio de características transformado, para el cual la transformación es típicamente no lineal (y a un espacio dimensional superior). La ventaja clave que trae este llamado truco del núcleo es que los patrones no lineales se pueden encontrar a un costo computacional razonable .

KRN×NNO(N2)O(N3)N

Esto hace que los métodos del núcleo sean muy interesantes desde una perspectiva computacional cuando el número de dimensiones es grande y el número de muestras es relativamente bajo (digamos, menos de 1 millón).

Relacionado: ¿ Kernel lineal y kernel no lineal para máquina de vectores de soporte?

SVM para problemas a gran escala

Para problemas dimensionales muy altos, como las 10000dimensiones que menciona en la pregunta, a menudo no es necesario asignar un espacio de características dimensionales más altas. El espacio de entrada ya es lo suficientemente bueno. Para tales problemas, los métodos lineales son órdenes de magnitud más rápidos con casi el mismo rendimiento predictivo. Se pueden encontrar ejemplos de estos métodos en LIBLINEAR o Vowpal Wabbit .

500N5.000.00010.000

Np

Marc Claesen
fuente
Muchas gracias por sus respuestas detalladas, señor. Descubrí que en las circunstancias de altas dimensiones, si uso el RBFkernel libsvm, siempre se sobreajusta, el clasificador logra una alta precisión pero baja precisión en el conjunto de pruebas. Y si hago la reducción de dimensiones antes del clasificador, y las dimensiones reducidas están cerca del número de muestras de entrenamiento, el clasificador puede lograr un buen beneficio entre el entrenamiento y el conjunto de pruebas. ¿Los resultados se ajustan a la mayoría de los resultados empíricos? Gracias.
minería
Los métodos del núcleo son bastante robustos frente a la alta dimensionalidad de entrada. Por lo general, no necesita realizar una reducción de dimensionalidad antes de usarlos. Es muy importante ajustar todos los parámetros, particularmente gammapara el kernel RBF. El valor óptimo para gammaestá relacionado con el número de dimensiones de entrada. El enfoque de ajuste más común es la validación cruzada. Si utilizó el mismo valor gammacon y sin reducción de dimensionalidad, probablemente esté cometiendo un error.
Marc Claesen
Sí señor. Usualmente uso el paquete grid.pyin libsvmpara hacer validación cruzada. Y en la mayoría de las circunstancias, para datos de altas dimensiones, el gammasiempre muy pequeño, como 0.00001este nivel.
minería
Hola, señor, he revisado su proyecto de código abierto EnsembleSVM, ¿necesita hacer que el procedimiento de validación cruzada sea multiproceso? Y creo que en la etapa de predicción, ¿será bueno predecir los enormes datos en lotes y máquinas de subprocesos múltiples o múltiples?
minería
El uso de subprocesos múltiples es opcional en EnsembleSVM, pero está habilitado de forma predeterminada en esvm-trainy esvm-predict. Para desactivar multihilo, utilice el siguiente indicador en esas herramientas: -threads 1.
Marc Claesen