Я пытаюсь выполнить некоторую задачу классификации с помощью python и SVM.
Из собранных данных я извлек векторы признаков для каждого класса и создал обучающую выборку. Векторы признаков имеют n-мерность (39 и более). Итак, скажем, для 2 классов у меня есть набор из 39 векторов признаков и один массив меток классов, соответствующих каждой записи в векторе признаков. В настоящее время я использую mlpy и делаю что-то вроде этого:
import numpy as np
import mlpy
svm=mlpy.Svm('gaussian') #tried a linear kernel too but not having the convergence
instance= np.vstack((featurevector1,featurevector1))
label=np.hstack((np.ones((1,len(featurevector1),dtype=int),-1*np.ones((1,len(featurevector2),dtype=int)))
#Назначение метки (+1/-1) для каждой записи экземпляра (+1 для записей из #featurevector 1 и -1 для featurevector2
svm.compute(instance,label) #it converges and outputs 1
svm.predict(testdata) #This one says all class label are 1 only whereas I ve testing data from both classes
Я делаю какую-то ошибку здесь? Или я должен использовать какую-то другую библиотеку? Пожалуйста помоги.