Estoy tratando de construir un modelo de predicción con SVM en datos bastante desequilibrados. Mis etiquetas / resultados tienen tres clases, positiva, neutral y negativa. Yo diría que el ejemplo positivo representa alrededor del 10-20% de mis datos, neutral alrededor del 50-60% y negativo alrededor del 30-40%. Estoy tratando de equilibrar las clases ya que el costo asociado con las predicciones incorrectas entre las clases no es el mismo. Un método consistía en volver a muestrear los datos de entrenamiento y producir un conjunto de datos igualmente equilibrado, que era más grande que el original. Curiosamente, cuando hago eso, tiendo a obtener mejores predicciones para la otra clase (por ejemplo, cuando equilibré los datos, aumenté el número de ejemplos para la clase positiva, pero en las predicciones fuera de muestra, la clase negativa mejoró). ¿Alguien puede explicar generalmente por qué ocurre esto? Si aumento el número de ejemplos para la clase negativa, ¿obtendría algo similar para la clase positiva dentro de las predicciones de muestra (por ejemplo, mejores predicciones)?
También estoy muy abierto a otras ideas sobre cómo puedo abordar los datos desequilibrados, ya sea imponiendo diferentes costos en la clasificación errónea o utilizando los pesos de clase en LibSVM (aunque no estoy seguro de cómo seleccionarlos / ajustarlos correctamente).