前言

嗨喽~大家好呀,这里是魔王呐 !

最近邻 (k Nearest Neighbors, KNN)算法是一种分类算法

1968年由Cover和Hart提出,应用场景有宁符识别、文本分类、 图像识别等领域。

手写数字识别是一个经典的机器学习问题,通过识别手写体图片来判断数字

因为数字类别是0——9,所以是十分类问题

那今天博主就来教大家探索手写数字的识别

环境使用:

  • Python 3.8
  • Pycharm

第三方模块使用:

  • Scikit-learn(以前称为scikits.learn,也称为sklearn)

    是针对Python 编程语言的免费软件机器学习库 。

    它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度提升,k均值和DBSCAN,并且旨在与Python数值科学库NumPy和SciPy联合使用。

  • matplotlib

    是一个 Python 的 2D绘图库

    它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

如何安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
  2. 在pycharm中点击Terminal(终端) 输入安装命令

代码展示

from sklearn.neighbors import KNeighborsClassifierfrom sklearn.datasets import load_digitsfrom sklearn.model_selection import train_test_splitimport matplotlib.pyplot as plt

加载数据

digits = load_digits()data = digits.data

  

数据探索

data里面每个元素代表一张图片

print(data[0])

查看第一幅图像

print(digits.images[0])

第一幅图像代表的数字含义

print(digits.target[0])

将第一幅图像显示出来

plt.imshow(digits.images[0])plt.show()

? 更多免费源码、解答领取处:点击

基本上都是这张图,下面就不放出来了~

分割数据

将25%的数据作为测试集,其余作为训练集(你也可以指定其他比例的数据作为训练集)

train_x, test_x, train_y, test_y = train_test_split(data, digits.target, test_size=0.25, random_state=33)print(train_x)

创建KNN分类器

knn = KNeighborsClassifier(n_neighbors=5)knn.fit(train_x, train_y)print("KNN训练集得分: %.4lf" % knn.score(train_x, train_y))print("KNN测试集得分: %.4lf" % knn.score(test_x, test_y))

测试分类效果

print(knn.predict(data))

? 博主所有文章素材、解答、源码领取处:点击

推荐往期文章

对python感兴趣的小伙伴也可以看一下博主其他相关文章哦~

python小介绍:

python是什么?工作前景如何?怎么算有基础?爬数据违法嘛?。。

python数据分析前景:

用python分析“数据分析”到底值不值得学习,以及学完之后大概能拿到多少工资

python基础自测题:

Python 800 道习题 (°ー°〃) 测试你学废了嘛

最后推荐一套Python视频给大家,希望对大家有所帮助:

全套教程!你和大佬只有一步之遥【python教程】

尾语

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 ?