Por supuesto, para los datos lineales esto no es útil, pero para los datos no lineales, esto siempre parece útil. Usar clasificadores lineales es mucho más fácil que no lineal en términos de tiempo de entrenamiento y escalabilidad.
@BartoszKP ya explicó por qué es útil el truco del kernel. Sin embargo, para abordar completamente su pregunta, me gustaría señalar que la kernelización no es la única opción para manejar datos no linealmente separables.
Existen al menos tres buenas alternativas comunes para la delinearización del modelo:
- Métodos basados en redes neutrales, donde agrega una (o más) capas de unidades de procesamiento, capaces de transformar sus datos en el caso separable linealmente. En el caso más simple, es una capa basada en sigmoide, que agrega no linealidad al proceso. Una vez que se inicializan al azar, reciben actualizaciones durante la optimización basada en gradiente de la capa superior (que realmente resuelve el problema lineal).
- En particular, las técnicas de aprendizaje profundo se pueden utilizar aquí para preparar datos para una clasificación lineal adicional. Es una idea muy similar a la anterior, pero aquí primero entrena sus capas de procesamiento para encontrar un buen punto de partida para un ajuste adicional basado en el entrenamiento de algún modelo lineal.
- Proyecciones aleatorias: puede muestrear proyecciones (no lineales) de un espacio predefinido y entrenar un clasificador lineal encima de ellas. Esta idea se explota en gran medida en el llamado aprendizaje automático extremo , donde se utilizan solucionadores lineales muy eficientes para entrenar un clasificador simple en proyecciones aleatorias y lograr un rendimiento muy bueno (en problemas no lineales tanto en clasificación como en regresión, consulte por ejemplo el aprendizaje extremo máquinas ).
En resumen, la kernelización es una gran técnica de delinearización, y puede usarla cuando el problema no es lineal, pero esto no debería ser un "ciego" de aproximación. Este es solo uno de al menos algunos métodos interesantes, que pueden conducir a varios resultados, dependiendo del problema y los requisitos. En particular, ELM tiende a encontrar soluciones muy similares a las dadas por SVM kernelized, mientras que al mismo tiempo se pueden entrenar filas de magnitud más rápido (por lo que se escala mucho mejor que SVM kernelized).
Intentaré proporcionar una respuesta no técnica a su pregunta.
De hecho, se debe preferir el lineal y debe ser la primera opción por las razones que menciona, el tiempo de entrenamiento, la escalabilidad, además de la facilidad para interpretar el modelo final, la elección de trabajar en primal o dual, más tolerancia al sobreajuste, etc.
Si el modelo lineal no da como resultado un rendimiento satisfactorio, puede probar soluciones no lineales. Algunas compensaciones a considerar incluyen:
fuente