| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> KNN算法 -> 正文阅读 |
|
[人工智能]KNN算法 |
OverviewK近邻值算法 KNN (K — Nearest Neighbors) 是一种机器学习中的分类算法;K-NN是一种非参数的惰性学习算法。非参数意味着没有对基础数据分布的假设,即模型结构是从数据集确定的。 它被称为惰性算法的原因是,因为它**不需要任何训练数据点来生成模型。**所有训练数据都用于测试阶段,这使得训练更快,测试阶段更慢且成本更高。 如何工作KNN 算法是通过计算新对象与训练数据集中所有对象之间的距离,对新实例进行分类或回归预测。然后选择训练数据集中距离最小的 K 个示例,并通过平均结果进行预测。 如图所示:一个未分类的数据(红色)和所有其他已分类的数据(黄色和紫色),每个数据都属于一个类别。因此,计算未分类数据与所有其他数据的距离,以了解哪些距离最小,因此当K= 3 (或K= 6 )最接近的数据并检查出现最多的类,如下图所示,与新数据最接近的数据是在第一个圆圈内(圆圈内)的数据,在这个圆圈内还有 3 个其他数据(已经用黄色分类),我们将检查其中的主要类别,会被归类为紫色,因为有2个紫色球,1个黄色球。 KNN算法要执行的步骤
影响KNN算法性能的因素
如何计算距离测量距离是KNN算法的核心,总结了问题域中两个对象之间的相对差异。比较常见的是,这两个对象是描述主题(例如人、汽车或房屋)或事件(例如购买、索赔或诊断)的数据行。 汉明距离汉明距离( 示例:如一列具有类别 “红色”、“绿色” 和 “蓝色”,您可以将每个示例独热编码为一个位串,每列一个位。
而red和green之间的距离就是两个等长bitstrings之间bit差(对应符号不同的位置)的总和或平均数,这就是汉明距离
上述的实现为:
可以看到字符串之间有两个差异,或者 6 个位位置中有 2 个不同,平均 (2/6) 约为 1/3 或 0.333。
欧几里得距离欧几里得距离( 欧几里得距离计算公式为两个向量之间的平方差之和的平方根。 E u c l i d e a n D i s t a n c e = ∑ ( a ? b ) 2 EuclideanDistance=\sqrt[]{\sum(a-b)^2} EuclideanDistance=∑(a?b)2? 如果要执行数千或数百万次距离计算,通常会去除平方根运算以加快计算速度。修改后的结果分数将具有相同的相对比例,并且仍然可以在机器学习算法中有效地用于查找最相似的示例。 E u c l i d e a n D i s t a n c e = s u m ? f o r ? i ? t o ? N ? ( v 1 [ i ] ? – ? v 2 [ i ] ) 2 EuclideanDistance = sum\ for\ i\ to\ N\ (v1[i]\ –\ v2[i])^2 EuclideanDistance=sum?for?i?to?N?(v1[i]?–?v2[i])2
曼哈顿距离曼哈顿距离( 对于描述网格上的对象(如棋盘或城市街区)的向量可能更有用。出租车在城市街区之间采取的最短路径(网格上的坐标)。
曼哈顿距离可以理解为:欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。 图中: 红、蓝与黄线分别表示所有曼哈顿距离都拥有一样长度(12),绿线表示欧几里得距离 6 × 2 ≈ 8.48 6×\sqrt2 ≈ 8.48 6×2?≈8.48 对于整数特征空间中的两个向量,应该计算曼哈顿距离而不是欧几里得距离 曼哈顿距离在二维平面的计算公式是,在X轴的亮点 M a n h a t t a n d i s t a n c e ? d ( x , y ) = ∣ x 1 ? x 2 ∣ + ∣ y 1 ? y 2 ∣ Manhattandistance\ d(x,y)=\left|x_{1}-x_{2}\right|+\left|y_{1}-y_{2}\right| Manhattandistance?d(x,y)=∣x1??x2?∣+∣y1??y2?∣ 如果所示,描述格子和格子之间的距离可以用曼哈顿距离,如国王移动到右下角的距离是? K i n g = ∣ 6 ? 8 ∣ + ∣ 6 ? 1 ∣ = 7 King=|6-8|+|6-1| = 7 King=∣6?8∣+∣6?1∣=7 两个向量间的距离可以表示为 M D ? = ? Σ ∣ A i – B i ∣ MD\ =\ Σ|Ai – Bi| MD?=?Σ∣Ai–Bi∣ python中的公式可以表示为 :
闵可夫斯基距离闵可夫斯基距离( 闵可夫斯基增并添加了一个参数,称为**“阶数”**或 在python中的公式:
在实现使用距离度量的机器学习算法时,通常会使用闵可夫斯基距离,因为可以通过调整参数“ p ”控制用于向量的距离度量算法的类型。
|
|
|
上一篇文章 查看所有文章 |
|
开发:
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/26 9:32:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |