手写数字识别(分别用svm、决策树算法、朴素贝叶斯算法、KNN对MINIST数据进行分类)

该实验通过SVM、决策树、朴素贝叶斯和KNN算法对MNIST手写数字识别数据集进行分类,展示了不同算法的准确率:SVM(0.94)、决策树(0.847)、朴素贝叶斯(0.86)和KNN(0.982)。实验过程中,作者深入理解了每个算法,强调了耐心和理解代码的重要性。
摘要由CSDN通过智能技术生成

实验四、手写数字识别

一、实验目的

  1. 学会用分类算法解决实际问题

二、实验工具

  1. Anaconda
  2. sklearn
  3. matplotlib
  4. pandas

三、实验简介

概念介绍

图像识别(Image Recognition)是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。 

图像识别的发展经历了三个阶段:文字识别、数字图像处理与识别、物体识别。机器学习领域一般将此类识别问题转化为分类问题。

手写识别是常见的图像识别任务。计算机通过手写体图片来识别出图片中的字,与印刷字体不同的是,不同人的手写体风格迥异,大小不一, 造成了计算机对手写识别任务的一些困难。 

数字手写体识别由于其有限的类别(0~9共10个数字)成为了相对简单 的手写识别任务。DBRHD和MNIST是常用的两个数字手写识别数据集

数据介绍

MNIST是一个包含数字0~9的手写体图片数据集,图片已归一化为以手写数 字为中心的28*28规格的图片。

MNIST由训练集与测试集两个部分组成,各部分 规模如下: 
训练集:60,000个手写体图片及对应标签 
测试集:10,000个手写体图片及对应标签
image.png

四、实验内容

1. 采用SVM算法实现手写数字识别。

例如,采用SVM对MINIST数据集进行分类。

import numpy as np
from sklearn import svm
from sklearn.datasets  import load_digits
from sklearn.model_selection  import train_test_split
import _pickle as pickle

if __name__ == '__main__':
    mnist = load_digits()
    x,test_x,y,test_y = train_test_split(mnist.data,mnist.target,test_size=0.25,random_state=40)
    
    model = svm.LinearSVC()
    model.fit(x, y)

    z = model.predict(test_x)

    print('准确率:',np.sum(z==test_y)/z.size)

    with open('./model.pkl','wb') as file:
        pickle.dump(model,file)

SVM算法手写数字识别准确率0.94

import numpy as np
from sklearn import svm
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
import _pickle as pickle
import matplotlib.pyplot as plt
mnist = load_digits()
x,test_x,y,test_y = train_test_split(mnist.data,mnist.target,test_size=0.25,random_state=40)
model = svm.LinearSVC()
model.fit(x,y)
z=model.predict(test_x)
print('准确率:',np.sum(z==test_y)/z.size)
with open('D:/shujukexue/model.pkl','wb') as file:
        pickle.dump(model,file)
#学习后识别520到525六张图片并给出预测
model.predict(mnist.data[520:526])
#实际的520到525代表的数
mnist.target
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值