Sklearn svm预测相同的价值

时间:2014-03-02 14:41:19

标签: ocr svm

这是我对数字的ocr的实现。

#mix the dataset
dataset=np.delete(dataset,0,0)
lable=np.delete(lable,0)
X=dataset.shape[0]
l=range(X)
np.random.shuffle(l)


sampleing=np.zeros(32*32)
lableing=np.zeros(1)

for x in l:
    sampleing=np.vstack((sampleing,dataset[x]))
    lableing=np.hstack((lableing,lable[x]))

sampleing=np.delete(sampleing,0,0)
lableing=np.delete(lableing,0)
x=sampleing.shape[0]
train=sampleing[0:int(x*0.8)]
train_lableing=lableing[0:int(x*0.8)]
test=sampleing[int(x*0.8):]
test_lableing=lableing[int(x*0.8):]

clf=svm.SVC(gamma=0.001, C=100.)

print clf.fit(train,train_lableing)
predict=clf.predict(test)
print classification_report(test_lableing,predict)

print predict

这是我的输出

     precision    recall  f1-score   support

      0       0.00      0.00      0.00         9
      1       0.00      0.00      0.00        14
      2       0.00      0.00      0.00         6
      3       0.00      0.00      0.00         5
      4       0.00      0.00      0.00         4
      5       0.00      0.00      0.00         3
      6       0.00      0.00      0.00        10
      7       0.00      0.00      0.00        12
      8       0.17      1.00      0.29        15
      9       0.00      0.00      0.00        10

平均/总计0.03 0.17 0.05 88

['8''8''8''8''8''8''8''8''8''8''8''8''8''8''8'' 8''8''8'  '8''8''8''8''8''8''8''8''8''8''8''8''8''8''8''8''8 ''8'  '8''8''8''8''8''8''8''8''8''8''8''8''8''8''8''8''8 ''8'  '8''8''8''8''8''8''8''8''8''8''8''8''8''8''8''8''8 ''8'  '8''8''8''8''8''8''8''8''8''8''8''8''8''8''8''8'] < / p>

为什么我得到相同的预测值。我正在通过随机培训和测试数据 我确实尝试调试,但我没有在我的code.please帮助中发现任何问题。

1 个答案:

答案 0 :(得分:1)

这可能是因为数据集(特征)数量很少.SVC适用于大数据集。尝试使用LinerSVC这应该可以解决问题。