| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【机器学习】原理与实现k近邻算法 -> 正文阅读 |
|
[人工智能]【机器学习】原理与实现k近邻算法 |
文章目录前言随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容——k近邻算法及python的实现。 提示:以下是本篇文章正文内容,下面案例可供参考 一、k近邻算法是什么?????????K最近邻(k—Nearest Neighborhood,KNN)分类算法,是1967年由Cover T和Hart P提出的一种基本分类与回归方法,也是最简单的机器学习算法之一。该方法的思路是:在特征空间中,如果一个样本附近的k个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。最后,选择k个最相似数据中出现次数最多的分类,作为新数据的分类。(近朱者赤近墨者黑) ???????? 二、k-近邻算法实战之sklearn手写数字识别1.k-近邻算法的一般流程(1)收集数据:可以使用爬虫进行数据的收集,也可以使用第三方提供的免费或收费的数据。一般来讲,数据放在txt文本文件中,按照一定的格式进行存储,便于解析及处理。 2.实战背景?? ?本节我们一步步地构造使用 K 近邻分类器的手写识别系统。为了简单起见,这里构造的系统只能识别数字 0 到 9,参见图 1-1。需要识别的数字已经使用图形处理软件,处理成具有相同的色彩和大小 1:宽高是 32 像素 x 32 像素的黑白图像。 尽管采用文本格式存储图像不能有效地利用内存空间,但是为了方便理解,我们还是将图像转换为文本格式。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 图1-1? ?手写数字数字数据集的例子 ?????????为了使用前面两个例子的分类器,我们必须将图像格式化处理为一个向量。我们将把一个 32x32 的二进制图像矩阵转换为 1x1024 的向量,这样前两节使用的分类器就可以处理数字图像信息了。 3.准备数据:将图像转换为测试向量下载数据集: ????????我们首先编写一段函数 img2vector,将图像转换为向量:该函数创建 1x1024 的 NumPy 数组,然后打开给定的文件,循环读出文件的前 32 行,并将每行的头 32 个字符值存储在 NumPy 数组中,最后返回数组。????????
4.测试算法我们已经将数据处理成分类器可以识别的格式。接下来,我们将这些数据输入到分类器,检测分类器的执行效果。在写入这些代码之前,我们必须确保将 from os import listdir 写入文件的起始部分,这段代码的主要功能是从 os 模块中导入函数 listdir,它可以列出给定目录的文件名。 测试的步骤: (1)读取训练数据到向量(手写图片数据),从数据文件名中提取类别标签列表(每个向量对应的真实的数字)
?最后,输入 handwritingClassTest(),测试该函数的输出结果:
k-近邻算法识别手写数字数据集,错误率为1.2%。改变k的值、修改函数handwritingClassTest随机选取训练样本、改变训练样本的数目,都会对k-近邻算法的错误率产生影响。 总结????????k-近邻算法是分类数据最简单有效的算法。k-近邻算法时基于实例的学习,使用算法时我们必须有接近实际数据的训练样本数据。k-近邻算法必须保存全部数据集,如果训练数据集很大,必须使用大量的存储空间。此外,必须对数据集中的每个数据计算距离值,实际使用时可能非常耗时。 ? ??????k-近邻算法的另一个缺陷是它无法给出任何数据的基础结构信息,因此我们也无法知晓平均实例样本和典型实例样本具有什么特征。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 10:22:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |