J'essaye d'entraîner un SVM linéaire sur une donnée qui a 100 dimensions. J'ai 80 exemples de formation. Je forme le SVM en utilisant la fonction fitcsvm
dans MATLAB et je vérifie la fonction en utilisant predict
sur les données d'entraînement. Lorsque je classe les données d'entraînement avec le SVM, tous les points de données sont classés en une seule classe.Matlab prédire la fonction ne fonctionne pas
SVM = fitcsvm(votes,b,'ClassNames',unique(b)');
predict(SVM,votes);
Ceci donne les sorties comme tous les 0 qui correspondent à la 0e classe. b
contient 1 et 0 indiquant la classe à laquelle appartient chaque point de données. Les données utilisées, à savoir la matrice votes
et vecteur b
sont donnés la link
Bien sûr, vous ne pouvez pas former un SVM en utilisant 100 classes avec seulement 80 points d'entraînement. – Adriaan
@Adriaan Thanx petites choses juste échapper aux attentions – Aditya
@Adriaan ressemble à b ne contient que deux classes, 80 est la taille de l'ensemble d'apprentissage et 100 est la caractéristique dim. – gregswiss