我们应用SVM的非线性分类功能对手写数字进行识别,我们在这应用poly做为非线性核
svm = mlpy.LibSvm(svm_type='c_svc', kernel_type='poly',gamma=10)
svm.learn(x, y)
我们按像素分块读取数字特征后,形成训练样本,送入SVM训练
本博客所有内容是原创,如果转载请注明来源
http://blog.csdn.net/myhaspl/
对样本本身测试
print svm.pred(x)
对供测试的未知样本进行测试
测试代码如下:
for iii in xrange (1,10):
testfn= 'nums/test/'+str(iii)+'-test.png'
testx=[]
testx.append(getnumc(testfn))
print svm.pred(testx)
识别效果还可以,通过增加笔型差异较大的训练样本,效果将更好
>>> runfile(r'I:\book_prog\numsbsvm.py', wdir=r'I:\book_prog')
http://blog.csdn.net/myhaspl
[email protected]
loading ...
[ 1. 1. 1. 1. 2. 2. 2. 2. 3. 3. 3. 3. 4. 4. 4. 4. 5. 5.
5. 5. 6. 6. 6. 6. 7. 7. 7. 7. 8. 8. 8. 8. 9. 9. 9. 9.]
[ 1.]
[ 2.]
[ 3.]
[ 4.]
[ 5.]
[ 6.]
[ 7.]
[ 8.]
[ 9.]
>>>