ml-py svm收敛但错误地分类

时间:2011-11-27 10:23:33

标签: python machine-learning classification svm libsvm

我正在尝试使用python和SVM进行一些分类任务。

从收集的数据中,我提取了每个类的特征向量,并创建了一个训练集。特征向量具有n维(39或更多)。所以,对于2个类,我有一组39-d特征向量和一个类标签数组,对应于特征向量中的每个条目。目前,我正在使用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 for 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

我在这里犯了一些错误吗?或者我应该使用其他一些图书馆?请帮忙。

1 个答案:

答案 0 :(得分:0)

我不使用mlpy,但np.ones((1,len(featurevector1))应该只是np.ones(len(featurevector1)) -
打印每个.shape以查看差异 (如果你有像你这样的公共数据的链接,你能发帖吗?)