您当前的位置:首页 > 计算机 > 编程开发 > Python

python 识别手写体数字

时间:04-01来源:作者:点击数:

python 有很多好的机器学习库, sklearn 算是之前比较经典常用的了, 现在用它来做一个小测试, 识别手写数字, 字体数据使用sklearn自带的, 代码如下:

from sklearn import datasets,svm
import matplotlib.pyplot as plt

""" 识别手写体数字 """

svc=svm.SVC(gamma=0.001,C=100.)
digits=datasets.load_digits() # 导入Digits数据集
# print(digits.DESCR) # 查看数据集的说明信息

def plts():
    ''' 显示要识别的数字图片 '''
    plt.subplot(321)
    plt.imshow(digits.images[1791],cmap=plt.cm.gray_r,interpolation='nearest')
    plt.subplot(322)
    plt.imshow(digits.images[1792],cmap=plt.cm.gray_r,interpolation='nearest')
    plt.subplot(323)
    plt.imshow(digits.images[1793],cmap=plt.cm.gray_r,interpolation='nearest')
    plt.subplot(324)
    plt.imshow(digits.images[1794],cmap=plt.cm.gray_r,interpolation='nearest')
    plt.subplot(325)
    plt.imshow(digits.images[1795],cmap=plt.cm.gray_r,interpolation='nearest')
    plt.subplot(326)
    plt.imshow(digits.images[1796],cmap=plt.cm.gray_r,interpolation='nearest')
    plt.show()


def svms():
    ''' 学习并返回识别结果 '''
    svc.fit(digits.data[:1791],digits.target[:1791]) # 训练
    res=svc.predict(digits.data[1791:1797]) # 识别
    return list(res)

if __name__=='__main__':
    result=svms()
    duibi=digits.target[1791:1797]
    print('识别的数字: {}\n实际的结果: {}'.format(result,list(duibi)))
    plts()

执行结果:

识别的数字: [4, 9, 0, 8, 9, 8]

实际的结果: [4, 9, 0, 8, 9, 8]

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门