Python:【机器学习】使用sklearn库中的支持向量机,实现手写数字识别,并输出错误图片

本文通过sklearn库实现手写数字识别,详细介绍了如何将图片转化为SVM可读格式,划分训练集和测试集,利用SVM进行分析预测。最终达到99.4%的识别准确率。当识别错误超过10张时,选取10张错误案例进行展示,包括真实label和预测label。文章还列举了所需依赖库如numpy、os、PIL、sklearn和matplotlib.pyplot。
摘要由CSDN通过智能技术生成
代码实现的目标:
  • 输出正确率

  • 如果有图片识别错误,且识别错误的图片多于10张,则绘制10张识别错误的图片以及该图片的真实label和预测label

  • 如果识别错误的图片数量小于等于10张,则绘制所有识别错误的图片以及该图片的真实label和预测label

思路分析:

如果要用svm分析images中的手写数字图片。

  • 首先要把图片转化成svm可以读取的格式,我们先将图片集处理为numpy数组。

  • 我们需要把有限的数据集划分为训练集和测试集

  • 对数据进行基本的转换之后,就可以用svm进行分析以及预测了

  • 我们可以用mean函数对匹配结果的准确率进行估计

  • 之后是输出判别错误的图片,我们可以用plt直接把图片和判断结果输出,非常直观

配套资源:images 免费下载

(imags需要解压到在.py文件的文件夹,文件名改为imagesx)

需求包分析:

numpy数组、os操作目录、PIL读取文件、sklearn.svm、matplotlib.pyplot画图

代码实现:
#endoding:utf-8 Alphy_Hongwu
import numpy as np
import os
from PIL import Image
from sklearn import svm
import matplotlib.pyplot as plt


def data_transformer(path_images:object)->object:
    list_image = os.listdir(path_images)    #利用os对windows的目录进行操作
    data = []
    for nums in list_image:
        path_num = path_images+'\\'+nums    #按照windows的格式遍历下级目录
        images = os.listdir(path_num)
        image_data = []
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alphy洪武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值