当前位置: 首页 > article >正文

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

人生苦短,我用python

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

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

在这里插入图片描述

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

环境使用:

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

第三方模块使用:

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

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

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

  • matplotlib

    是一个 Python 的 2D绘图库

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

在这里插入图片描述

代码展示

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

在这里插入图片描述
查看第一幅图像并将第一幅图像显示出来

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

在这里插入图片描述


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


http://www.kler.cn/a/7080.html

相关文章:

  • 【HTML+CSS+JS+VUE】web前端教程-36-JavaScript简介
  • 深入浅出 Android AES 加密解密:从理论到实战
  • Vue 3前端与Python(Django)后端接口简单示例
  • 手撕代码: C++实现按位序列化和反序列化
  • 【Unity高级】一文了解Unity 中的条件编译(附所有指令)
  • .NET framework、Core和Standard都是什么?
  • 不联网新华字典
  • 【docker-compose】安装 Harbor
  • 前端从零开始写一个简单的响应式
  • 【软考五】数据库(做题)
  • Flutter-Scaffold组件
  • 软考试题难不难?怎么复习备考?
  • P3975 [TJOI2015]弦论(SAM DAG、parent树上dp计算不同子串数 递归输出字典序第k大子串)
  • 前后台协议联调拦截器
  • 快速玩转 CNStack 2.0 流量防护
  • 逍遥自在学C语言 | 逻辑运算符
  • 学习HCIP的day.2
  • vue echarts 画饼图
  • 704. 二分查找
  • vue3项目快速开发模板
  • 论文阅读《LargeKernel3D: Scaling up Kernels in 3D Sparse CNNs》
  • PHP防止站外表单跨站提交的几种办法详解
  • std::invoke()不支持重载函数
  • 【Linux】理解Linux中硬链接和软链接
  • 蓝桥杯真题2021c++省A题解
  • Vue3+vite2 博客前端开发