Supprt Vector Machine funciona en matlab, no funciona en c ++

Estoy escribiendo una aplicación que usa un SVM para hacer la clasificación en algunas imágenes (específicamenteestas). Mi implementación de Matlab funciona muy bien. Al utilizar un enfoque de bolsa de palabras SIFT, puedo obtener una precisión cercana al 100% con un núcleo lineal.

Necesito implementar esto en C ++ por razones de velocidad / portabilidad, por lo que he intentado usar amboslibsvm ydlib. He probado varios tipos de SVM (c_svm, nu_svm, one_class) y varios kernels (lineal, polinomial, rbf). Lo mejor que he logrado es alrededor del 50% de precisión, incluso en las mismas muestras en las que he entrenado. He confirmado que mis generadores de funciones están funcionando, porque cuando exporto mis funciones generadas en c ++ a Matlab y entreno en ellas, puedo obtener resultados casi perfectos nuevamente.

¿Hay algo mágico en la implementación SVM de Matlab? ¿Hay algunas fallas o áreas comunes que pueda analizar que expliquen el comportamiento que estoy viendo? Sé que esto es un poco vago, pero parte del problema es que no sé a dónde ir. Por favor, avíseme en los comentarios si hay alguna otra información que pueda proporcionar que sea útil.

Respuestas a la pregunta(2)

Su respuesta a la pregunta