代码实现的目标:
-
输出正确率
-
如果有图片识别错误,且识别错误的图片多于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 = []

本文通过sklearn库实现手写数字识别,详细介绍了如何将图片转化为SVM可读格式,划分训练集和测试集,利用SVM进行分析预测。最终达到99.4%的识别准确率。当识别错误超过10张时,选取10张错误案例进行展示,包括真实label和预测label。文章还列举了所需依赖库如numpy、os、PIL、sklearn和matplotlib.pyplot。
最低0.47元/天 解锁文章


被折叠的 条评论
为什么被折叠?



