En un SVM está buscando dos cosas: un hiperplano con el margen mínimo más grande y un hiperplano que separa correctamente tantas instancias como sea posible. El problema es que no siempre podrá obtener ambas cosas. El parámetro c determina cuán grande es tu deseo para este último. He dibujado un pequeño ejemplo a continuación para ilustrar esto. A la izquierda tiene una c baja que le da un margen mínimo bastante grande (morado). Sin embargo, esto requiere que descuidemos el círculo azul atípico que no hemos podido clasificar correctamente. A la derecha tienes un alto c. Ahora no descuidará el valor atípico y, por lo tanto, terminará con un margen mucho más pequeño.
Entonces, ¿cuál de estos clasificadores son los mejores? Eso depende de cómo se vean los datos futuros que predecirá, y la mayoría de las veces no lo sabe, por supuesto. Si los datos futuros se ven así:
entonces el clasificador aprendido usando un valor c grande es el mejor.
Por otro lado, si los datos futuros se ven así:
entonces el clasificador aprendido usando un valor c bajo es el mejor.
Dependiendo de su conjunto de datos, cambiar c puede o no producir un hiperplano diferente. Si se hace producir un hiperplano diferente, eso no implica que su clasificador de salida diferentes clases de los datos particulares que lo han utilizado para clasificar. Weka es una buena herramienta para visualizar datos y jugar con diferentes configuraciones para un SVM. Puede ayudarlo a tener una mejor idea de cómo se ven sus datos y por qué cambiar el valor de c no cambia el error de clasificación. En general, tener pocas instancias de entrenamiento y muchos atributos hace que sea más fácil hacer una separación lineal de los datos. Además, el hecho de que esté evaluando sus datos de entrenamiento y no nuevos datos invisibles facilita la separación.
¿De qué tipo de datos está tratando de aprender un modelo? ¿Cuántos datos? Podemos verlo?