Estoy usando kernlab
en R. He entrenado una SVM utilizando kernel lineal y kernel RBF con el mismo conjunto de datos (el número de instancias es 3000). Cuando utilizo un kernel lineal, se tarda mucho más en entrenar el modelo que cuando utilizo un kernel RBF (las precisiones son similares). ¿Por qué existe esta diferencia en el tiempo de ejecución?
Respuesta
¿Demasiados anuncios?La diferencia de tiempo surge de varias fuentes con las SVM.
En primer lugar, hay que calcular la matriz del núcleo (es decir, la matriz poblada con $K(x_i,x_j)$ ). Normalmente, esto debería llevar más tiempo para el kernel RBF que para el kernel lineal (el kernel lineal no tiene que llamar a $\exp$ que es la parte más expansiva).
que consiste en resolver el programa cuadrático es variable en $C$ los parámetros de coste y la matriz kernel de las muestras de entrenamiento.
La diferencia en el tiempo total de entrenamiento que es probable que se deba al hecho de que las matrices del núcleo que se obtienen de RBF y el núcleo lineal son diferentes y el problema de optimización con este último pasa a ser un problema mucho más difícil en este caso.