Я пытаюсь классифицировать цифры, прочитанные на изображениях в известных местах в C ++, используя SVM.
для этого я делаю выборку по прямоугольнику в известной позиции цифры, я тренируюсь с ground_truth.
Интересно, как выбрать ядро SVM. Я использую линейное ядро по умолчанию, но моя интуиция подсказывает мне, что это может быть не лучшим выбором.
Как я мог выбрать ядро?
Вам нужно будет настроить ядро (если вы используете нелинейное). Это руководство может быть полезно для вас: Практическое руководство по классификации SVM
К сожалению, для этого нет волшебной пули, поэтому эксперименты — ваш лучший друг.
Вероятно, я бы начал с RBF, который в большинстве случаев работает прилично, и я согласен с вашей интуицией, что, вероятно, линейный не самый лучший, хотя иногда (особенно когда у вас есть тонны данных) он может преподнести вам хорошие сюрпризы 🙂
Проблема, которую я обнаружил с RBF, заключается в том, что он имеет тенденцию переопределять тренировочный набор, этот шаг может стать проблемой, если у вас много данных, но возникает новая проблема, потому что она имеет тенденцию к плохому масштабированию и медленному обучению для больших данных. ,