KNN机器算法入门【Python】:实现手写数字识别

人生苦短,我用python

KNN 可以说是最简单的分类算法之一
同时,它也是最常用的分类算法之一。

注意:KNN 算法是有监督学习中的分类算法,它看起来和另一个机器学习算法 K-means 有点像(K-means 是无监督学习算法),但却是有本质区别的。

KNN机器算法入门【Python】:实现手写数字识别_第1张图片

python 安装包+资料:点击此处跳转文末名片获取

环境使用:

  • Python 3.8 <建议最好是和一样版本>
  • Pycharm

第三方模块使用:

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

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

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

  • matplotlib

    是一个 Python 的 2D绘图库

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

KNN机器算法入门【Python】:实现手写数字识别_第2张图片

代码展示

from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

加载数据

digits = load_digits()
data = digits.data

数据探索

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

print(data[0])

KNN机器算法入门【Python】:实现手写数字识别_第3张图片
查看第一幅图像并将第一幅图像显示出来

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

KNN机器算法入门【Python】:实现手写数字识别_第4张图片
基本上都是这张图,之后就不放了吧

KNN机器算法入门【Python】:实现手写数字识别_第5张图片

分割数据

将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))

KNN机器算法入门【Python】:实现手写数字识别_第6张图片


问题解答 · 源码获取 · 技术交流 · 抱团学习请联系

你可能感兴趣的:(数据分析,Python,Python实战项目,python,算法,机器学习)