阿旭机器学习实战【5】KNN算法实战练习2:利用KNN模型进行手写体数字识别

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 阿旭机器学习实战【5】KNN算法实战练习2:利用KNN模型进行手写体数字识别

1. 数据集说明


手写体数字识别数据集共有5000个样本图片。包含0-9这10个数字类别,每个数字为一个文件夹,每个文件夹下存放500张该数字的图片。


图片信息:

图片大小:像素为28 * 28

图片类型:二维灰度图片,每个数字的数值范围为0-255

3e97b8adc3824859a9f03fc5142876bf.jpg

31d9c5ae4080417c9dbad66148f7a9c8.jpg


2. 读取数据并查看数据信息


import numpy as np
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
%matplotlib inline
# 读取一个图片数据,并查看形状
z = plt.imread("./data/0/0_1.bmp")
z.shape
(28, 28)
plt.figure(figsize=(1,1))
plt.imshow(z,cmap="gray")

5d0a5a36fa93437f8335a57cf6e00200.png

3. 加载所有图片数据并进行处理


# 读取所有的图片,并且给这些图片加上标签
data = [] # 用于存放图片的数据
target = [] # 用于存放图片对应的标签
for i in range(10):
    for j in range(1,501):
        im = plt.imread("./data/%d/%d_%d.bmp"%(i,i,j))
        # 把读取到的图片的数据存放
        data.append(im)
        # 把图片对应的标签存储
        target.append(i)
# 由于sklearn不接受列表数据,我们需要把data和target转化成数组
data = np.array(data)
target = np.array(target)
# 查看数据形状
data.shape
• 1
• 2


(5000, 28, 28)


# 将二维图片数据点展开成一维数据,28 * 28 = 784
data_res = data.reshape(5000,-1)
data_res.shape
• 1
• 2
• 3


(5000, 784)



4. 构建模型并进行预测


# 切分数据
x_train,x_test,y_train,y_test = train_test_split(data_res,target,test_size=0.02)
# 构建模型
knn = KNeighborsClassifier()
# 对模型进行训练
knn.fit(x_train,y_train)
# 查看模型的准确度
knn.score(x_test,y_test)


0.92
• 1


模型预测准确率为92%


5. 用图像来展示预测的数字和其预测情况


# 利用模型对测试数据进行预测
y_ = knn.predict(x_test)


plt.figure(figsize=(10*2,10*1))
# 打印出预测错误的数据进行查看
error_num = 0
for i in range(100):
    axes = plt.subplot(2,10,error_num+1)
    if y_[i] != y_test[i]:
        axes.imshow(x_test[i].reshape(28,28),cmap="gray")
        axes.axis("off")
        axes.set_title("True:%d\nPredict:%d"%(y_test[i],y_[i]))
        error_num += 1
    if error_num == 20:
        break

2e51b68a37e6471f8501ef61a3ccbee2.png


6. 将算法保存到本地


# joblib这个模块可以将训练成熟的算法保存到本地,下次再用的时候,不需要再次训练
from sklearn.externals import joblib
# 将上面的knn这个模型保存到本地,会在本地生成一个模型文件
joblib.dump(knn,"./digist_reco.m") # 将knn模型打包成一个本地的静态文件
• 1
• 2
['./digist_reco.m']

# 加载本地算法
d = joblib.load("./digist_reco.m")
• 1
• 2
# 进行预测
d.predict(x_test[:10])

array([1, 6, 5, 1, 9, 8, 0, 8, 9, 3])
• 1
# 同样我们也可以将数组打包到本地,生成.npy文件,加载就用np.load('文件路径')
np.save("./11",data_res)
相关文章
|
16天前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
58 4
|
12天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
30 1
|
21天前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
24天前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
25天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
69 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
25天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
73 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 TensorFlow API
机器学习实战:TensorFlow在图像识别中的应用探索
【10月更文挑战第28天】随着深度学习技术的发展,图像识别取得了显著进步。TensorFlow作为Google开源的机器学习框架,凭借其强大的功能和灵活的API,在图像识别任务中广泛应用。本文通过实战案例,探讨TensorFlow在图像识别中的优势与挑战,展示如何使用TensorFlow构建和训练卷积神经网络(CNN),并评估模型的性能。尽管面临学习曲线和资源消耗等挑战,TensorFlow仍展现出广阔的应用前景。
57 5
|
1月前
|
机器学习/深度学习 人工智能 算法
青否数字人声音克隆算法升级,16个超真实直播声音模型免费送!
青否数字人的声音克隆算法全面升级,能够完美克隆真人的音调、语速、情感和呼吸。提供16种超真实的直播声音模型,支持3大AI直播类型和6大核心AIGC技术,60秒快速开播,助力商家轻松赚钱。AI讲品、互动和售卖功能强大,支持多平台直播,确保每场直播话术不重复,智能互动和真实感十足。新手小白也能轻松上手,有效规避违规风险。
|
18天前
|
机器学习/深度学习 人工智能 TensorFlow
基于TensorFlow的深度学习模型训练与优化实战
基于TensorFlow的深度学习模型训练与优化实战
53 0
|
21天前
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
34 0

热门文章

最新文章

相关产品

  • 人工智能平台 PAI