| |
|
开发:
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最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:在特征空间中,如果一个样本附近的k个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。
简单地说,k
-
近邻算法采用测量不同特征值之间的距离方法进行分类。
其主要特点为:?
????????优点:精度高、对异常值不敏感、无数据输入假定。
????????缺点:计算复杂度高、空间复杂度高。
????????适用数据范围:数值型和标称型。
k
-
近邻算法的一般流程
(1)
收集数据:可以使用任何方法。
(2)
准备数据:距离计算所需要的数值,最好是结构化的数据格式。
(3)
分析数据:可以使用任何方法。
(4)
训练算法:此步骤不适用于
k
-
近邻算法。
(5)
测试算法:计算错误率。
(6)
使用算法:首先需要输入样本数据和结构化的输出结果,然后运行
k
-
近邻算法判定输
入数据分别属于哪个分类,最后应用对计算出的分类执行后续的处理。
实例举例:
根据样本确定输入数据属于哪一类别
认定[1.0, 1.1], [1.0, 1.0]为A类,认定[0, 0], [0, 0.1]为B类,输入其他坐标,根据相距距离确定所属类别。例[0,0]距离B类最近 思路如下:
对未知类别属性的数据集中的每个点依次执行以下操作:
(1)
计算已知类别数据集中的点与当前点之间的距离;
(2)
按照距离递增次序排序;
(3)
选取与当前点距离最小的
k
个点;
(4)
确定前
k
个点所在类别的出现频率;
(5) 返回前k个点出现频率最高的类别作为当前点的预测分类。
????????classify0()函数有4个输入参数:用于分类的输入向量是inX,输入的训练样本集为dataSet,标签向量为labels,最后的参数k表示用于选择最近邻居的数目,计算完所有点之间的距离后,可以对数据按照从小到大的次序排序。然后,确定前k个距离最小元素所在的主要分类 ,输入k总是正整数;最后,将classCount字典分解为元组列表,然后使用程序第二行导入运算符模块的itemgetter方法,按照第二个元素的次序对元组进行排序 。此处的排序为逆序,即按照从最大到最小次序排序,最后返回发生频率最高的元素标签。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/25 20:46:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |