J'essaie de construire un modèle de prédiction avec des SVM sur des données assez déséquilibrées. Mes étiquettes / sorties ont trois classes, positive, neutre et négative. Je dirais que l'exemple positif représente environ 10 à 20% de mes données, neutre environ 50 à 60% et négatif environ 30 à 40%. J'essaie d'équilibrer les classes car le coût associé à des prédictions incorrectes entre les classes n'est pas le même. Une méthode consistait à rééchantillonner les données d'apprentissage et à produire un ensemble de données également équilibré, qui était plus grand que l'original. Fait intéressant, lorsque je fais cela, j'ai tendance à obtenir de meilleures prédictions pour l'autre classe (par exemple, lorsque j'ai équilibré les données, j'ai augmenté le nombre d'exemples pour la classe positive, mais dans les prédictions sur échantillon, la classe négative a fait mieux). N'importe qui peut généralement expliquer pourquoi cela se produit? Si j'augmente le nombre d'exemples pour la classe négative, est-ce que j'obtiendrais quelque chose de similaire pour la classe positive dans les prédictions de l'échantillon (par exemple, de meilleures prédictions)?
Également très ouvert à d'autres réflexions sur la façon dont je peux traiter les données déséquilibrées soit en imposant des coûts différents en cas de mauvaise classification ou en utilisant les pondérations de classe dans LibSVM (je ne sais pas comment les sélectionner / régler correctement cependant).