В SVM вы ищете две вещи: гиперплоскость с наибольшим минимальным полем и гиперплоскость, которая правильно разделяет как можно больше экземпляров. Проблема в том, что вы не всегда сможете получить обе вещи. Параметр c определяет, насколько велико ваше желание для последнего. Я нарисовал небольшой пример ниже, чтобы проиллюстрировать это. Слева у вас низкий c, который дает вам довольно большой минимальный запас (фиолетовый). Однако это требует, чтобы мы пренебрегали синим кругом, который мы не смогли классифицировать правильно. Справа у вас высокий c. Теперь вы не будете пренебрегать выбросом и, следовательно, будете иметь гораздо меньший запас.
Итак, какие из этих классификаторов являются лучшими? Это зависит от того, как будут выглядеть прогнозируемые вами будущие данные, и чаще всего вы, конечно, этого не знаете. Если будущие данные выглядят так:
тогда лучше всего использовать классификатор с большим значением c.
С другой стороны, если будущие данные выглядят так:
тогда классификатор, изученный с использованием низкого значения c, является лучшим.
В зависимости от вашего набора данных изменение c может привести к появлению другой гиперплоскости, а может и нет. Если он действительно производит другую гиперплоскость, это не означает , что ваш классификатор будет выводить различные классы для конкретной информации вы использовали его для классификации. Weka - это хороший инструмент для визуализации данных и работы с различными настройками SVM. Это может помочь вам лучше понять, как выглядят ваши данные и почему изменение значения c не меняет ошибки классификации. В общем, наличие нескольких обучающих экземпляров и множества атрибутов облегчает линейное разделение данных. Кроме того, тот факт, что вы оцениваете свои тренировочные данные, а не новые невидимые данные, облегчает разделение.
Какие данные вы пытаетесь узнать модель? Сколько данных? Можем ли мы увидеть это?