문제

This is my implementation for ocr for number.

#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

This is my output

     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

avg / total 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']

Why am i getting same predict value.I am passing random training and testing data I did try to debug but i did not find any problem in my code.please help.

도움이 되었습니까?

해결책

This could because of few number of dataset(feature) .SVC work well with large data set.Try using LinerSVC this should solve the problem.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top