首页 > 编程语言 >机器学习-K近邻算法-KNN

机器学习-K近邻算法-KNN

时间:2024-04-27 21:34:34浏览次数:21  
标签:KNN neighbors 近邻 距离 算法 learn 类别

1 K-紧邻算法简介

1.1 什么是K-近邻算法

直观上理解,就是根据距离的远近来判断你所处于的类别。

但是,也会存在一些问题,距离最近的样本所属于的类别与你需要判断的类别可能不是同一种类别。

1.1 KNN概念

K Nearest Neighbor算法又叫做KNN算法,这个算法是机器学习里面比较经典的算法,总体来说KNN算法是相对比较容易理解的算法。

  • 定义
    如果一个样本再特征空间中的k个最相似(即特征空间中最邻近)的样本大多数属于某一个类别,则该样本也属于这个类别。

  • 距离公式
    两个样本的距离可以通过如下公式计算,又叫欧氏距离,关于距离公式会在后面进行讨论

2 K紧邻算法API

Scikit-learn工具介绍

官方网址

  • Python语言的机器学习工具
  • Scikit-learn包括许多知名的机器学习算法的实现
  • Scikit-learn文档完善,容易上手,丰富的API
  • 目前稳定版本1.4.2

安装

pip install scikit-learn==1.4.2

安装完成后可以通过以下命令查看是否安装成功

import sklearn
  • 安装scikit-learn时需要依赖numpy、scipy等库

API使用

  • sklearn.neighbors.KNeighborsClassifier(n_neighbors=5)

案例

"""
scikit-learn中关于knn的简单案例
"""
from sklearn.neighbors import KNeighborsClassifier

# 获取数据
x = [[1], [2], [3], [4]]
y = [1, 1, 0, 0]

# 机器学习
# 实例化一个训练模型
estimator = KNeighborsClassifier(n_neighbors=2)
# 调用fit方法进行训练
estimator.fit(x, y)

# 预测其它值
ret = estimator.predict([[10]])
print(ret)

3 距离度量

欧氏距离

欧式距离时最容易直观理解的距离度量方法。

曼哈顿距离(Manhattan Distance)

在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block Distance)

标签:KNN,neighbors,近邻,距离,算法,learn,类别
From: https://www.cnblogs.com/Gazikel/p/18162506

相关文章

  • 基于混沌序列的图像加解密算法matlab仿真,并输出加解密之后的直方图
    1.算法运行效果图预览 2.算法运行软件版本matlab2022a 3.算法理论概述3.1混沌系统特性       混沌系统是一类具有确定性、非线性、初值敏感性、遍历性和伪随机性等特性的动力学系统。其主要特性包括: 确定性:混沌系统由一组确定性微分方程或差分方程描述......
  • 次梯度算法的收敛性
    次梯度算法: 梯度下降法的迭代格式为$$x_{k+1}=x_k-\alpha_k\nablaf(x_k)$$ 但是对于不可微的凸函数,梯度并不存在,于是使用此梯度算法: $$x_{k+1}=x_k-\alpha_kg_k)$$其中$g_k\in\partialf(x_k)$次梯度算法的收敛性证明:假设:$f$是凸函数且存在最小值点$f^*$,且是$G-$利普西茨连......
  • 偶然看到一个古老的算法
    只能说秦哥牛批!!!那个破三角公式到现在还没记住c++代码实现#include<bits/stdc++.h>usingnamespacestd;intn;intmain(){cin>>n;//输入多项式的次数double*a=newdouble[n+1];//n次多项式申请n+1大小的数组for(inti=n;i>=0;i--)//输入多项式的系数(......
  • PageRank算法概述与Python实现
    PageRank算法是一种用于评估网页重要性的算法。它基于网页之间的链接结构来确定网页的权重和重要性。算法的核心思想是通过迭代计算网页之间的链接关系,以确定每个网页的权重。它将互联网视为一个有向图,其中网页是节点,链接是有向边。算法通过以下方式计算网页的PageRank值:每个网页......
  • 【知识点】欧几里得算法求最大公约数
    最大公约数所为的最大公约数,是指两个或多个整数共有的约数中最大的那个数。换句话说,它是能同时整除给定的整数的最大整数。例如,对于整数\(12\)和\(18\),它们的公约数有\(1、2、3、6\),其中最大的公约数为6,因此它们的最大公约数为\(6\)。最大公约数通常用符号\(\gcd(a,b)\)......
  • 排序算法
    1.直接插入排序:直接插入排序就是把待排序的元素逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。实际中我们玩扑克牌时,就用了插入排序的思想voidInsertSort(int*arr,intsize)//直接插入排序{for(inti=0;i<size-1;i+......
  • 目标检测与追踪AI算法模型及边缘计算智能分析网关V4的算法应用
    目标检测与追踪是计算机视觉领域中的一个重要任务,主要用于识别图像或视频中的目标,并跟踪它们的运动轨迹。针对这一任务,有许多先进的AI算法模型,例如:YOLO(YouOnlyLookOnce):一种实时目标检测算法,通过单个神经网络模型实现对图像中多个目标的检测和定位。FasterR-CNN:基于深度学习......
  • 社区发现之标签传播算法(LPA)python实现
    社区发现在图领域中备受关注,其根源可以追溯到子图分割问题。在真实的社交网络中,用户之间的联系紧密度不尽相同,导致形成了不同的社区结构。社区发现问题主要分为两类:非重叠和重叠社区。非重叠社区发现指的是每个节点仅属于一个社区,社区之间没有交集。在非重叠社区发现中,有多种解决......
  • 论文解读-面向高效生成大语言模型服务:从算法到系统综述
    一、简要介绍  在快速发展的人工智能(AI)领域中,生成式大型语言模型(llm)站在了最前沿,彻底改变了论文与数据交互的方式。然而,部署这些模型的计算强度和内存消耗在服务效率方面带来了重大挑战,特别是在要求低延迟和高吞吐量的场景中。本调查从机器学习系统(MLSys)研究的......
  • 练习题----顺序栈算法
    题目:​ 输入一个包括'('和')'的字符串string,判断字符串是否有效。要求设计算法实现检查字符串是否有效,有效的字符串需满足以下条件:A.左括号必须用相同类型的右括号闭合。B.左括号必须以正确的顺序闭合。C.每个右括号都有一个对应的相同类型的左括号。题目分析:​ 该......