栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

机器学习——配置环境、KNN算法预习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

机器学习——配置环境、KNN算法预习

目录

配置环境 

KNN算法预习

识别手写数字


配置环境 

跟着网上的教程安装了python3.8.8,发现跑别人的代码要安装很多环境——Numpy+MKL、Scipy、Pandas、sklearn库等等等。

百度了一下,学到了一个很好用且很快的方法:win+R 打开cmd,输入下面这段,install后面跟想安装的库名即可

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

手动装了一堆环境以后,发现直接安装Anaconda就好了,不用上面那么麻烦,真好

因为已经安装了python,实在害怕再装Anaconda会有问题,又csd了一下,找到了一个非常非常详细的python+anaconda安装教程

python与anaconda安装(先安装了python后安装anaconda,基于python已存在的基础上安装anaconda)——逼死强迫症、超详解_NBS的博客-CSDN博客

终于配好了


KNN算法预习

K近邻算法:环境影响决策

  • :找到待测样本周围最近的已知样本点
  • :统计周围已知样本点(k个)分布状况
  • :将待测样本点归为优势方

优点:1.直观,好理解2.只需要分析部分已知样本点,不需要统计整体。

缺点:1.估算的结果不一定符合全局的分布。2.k的取值对结果影响较大。

补充:为了保证一个合理的k的取值,我们会采取“交叉验证”找到哪个k的设置会保证最优的估算。

两点之间的距离:

以此类推多维空间的点间距离:

还有曼哈顿距离、欧几里得距离、明可夫斯基距离是用来估量哪些是离待测样本近的点

当需要使用分类算法,且数据比较大的时候就可以尝试使用KNN算法


识别手写数字

识别手写数字是机器学习中的10分类问题,且数据较多,所以用KNN算法来实现。

首先,采集数据——采集手写数字的图像,并处理这些数据——将图像格式化处理为测试向量

用这段代码实现图像转换为向量,得到数据集

将得到的数据集输入分类器,分类器如下代码段

 由于个人编写代码能力有限,我在GitHub上找了一段完善的代码理解并运行

GitHub - lixi5338619/KNN_Distinguish: KNN实现手写数字识别

得到结果

 用KNN算法实现识别手写数据集,正确率为98.94%,当训练集样本发生改变时,正确率也会变化,这也正是KNN算法的特点之一,但该算法的执行效率较低。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/272789.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号