实验一--手写数字识别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大数据应用实例
1、下面我们来做个大数据人工智能实例:手写数字识别
2、我们使用python语言进行代码的编写,使用pycharm开发工具对其实例进行编写,
3、下面我们首先来看我们的样本数据:
4、我们使用python语言来对其数据进行机器学习和识别
代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsClassifier
# 1、数据读取
data = plt.imread('./data/0/0_1.bmp')
# plt.imshow(data)
# plt.show()
# x_tain=[]
# for i in range(1,501):
# x_tain.append(plt.imread('./data/0/0_%d.bmp'%(i)))
x_tain =[]
x_test =[]
y_tain=[]
y_test=[]
for i in range(0,10):
for j in range(1,501):
if j < 451: #将数据保存到训练数据中
x_tain.append(plt.imread('./data/%d/%d_%d.bmp'%(i,i,j)).reshape(-1) ) #reshape 可以降维也就是矩阵变化
y_tain.append(i) #append 是读进来的数据进行存储的意思
else: #保存到预测数据中
x_test.append(plt.imread('./data/%d/%d_%d.bmp'%(i,i,j)).reshape(-1)) y_test.append(i)
# 2、数据转换成
x_tain,y_tain= np.array(x_tain),np.array(y_tain)
# print(x_tain.shape,len(y_tain),len(x_test))
# 3、机器学习
knn = KNeighborsClassifier() #构造分类器
knn.fit(x_tain,y_tain)
y_ = knn.predict(x_test) #进行预测的结果
# print(len(y_[::10]),'\n',y_test[::10])
gl=knn.score(x_test,y_test)
print('准确率为:',gl)
# 3、图片绘制
plt.figure(figsize=(13,15))
img = x_test[::10]
img1 = y_test[::10]
yimg = y_[::10]
for i in range(50):
plt.subplot(5,10,i+1)
plt.imshow(img[i].reshape(28,28))
plt.title('预测数据:%d'%(yimg[i])+'\n真实数据:%d'%(img1[i]))
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置字体为SimHei显示中文
plt.rcParams['axes.unicode_minus'] = False # 设置正常显示符号
plt.show()
'''import matplotlib.ticker as ticker
fig=plt.figure()
ax = fig.add_subplot(111)
ax.yaxis.set_major_locator(ticker.NullLocator())'''
5、结果展示