首页 > 编程语言 >K近邻算法

K近邻算法

时间:2024-10-10 10:51:25浏览次数:10  
标签:预测 近邻 np 算法 train test self

一、K近邻算法基础介绍

K近邻算法也是常说的KNN算法,是一种常见的分类和回归算法,当然我们常将其用于分类。是一种监督算法,该算法的内容其实和名字很像,根据邻居来进行判断。有点近朱者赤近墨者黑的意味。

比如我们常说:某个人的工资一般是与其玩的最好的5个朋友(或者说是N个)工资的平均值。

在K近邻算法中也是如此,某个样本的类别是与其最近K个样本类别的众数,某个样本的值(回归问题中)是与其最近K个样本平均值


上句话中我将三个地方标黑了,这也是K近邻算法中最重要的三个地方,也是KNN算法的三要素

(1):k值的选择

(2):距离的度量(即何为最近)

(3):决策规则(为什么分类用众数,回归用平均值)

算法介绍:

以使用KNN算法分类为例,给定一个数据集:

T=\{(x_1,y_1),(x_2,y_2),...(x_n,y_n)\}

其中 x_i 是一个k维向量, y_i\in \{c_1,c_2,c_3,...c_k\} 为数据 x_i 所属的类别。一般

标签:预测,近邻,np,算法,train,test,self
From: https://blog.csdn.net/qq_52421831/article/details/142814224

相关文章

  • kmp算法模板
    voidkmp(){n=strlen(s+1);//s是目标串m=strlen(p+1);//p是模板串//nxt预处理开始intj=0;nxt[1]=0;for(inti=2;i<=m;i++){while(j>0&&p[j+1]!=p[i])/*判断当前子串的前后缀相等的长度是否能增......
  • 从理论到实践:AI智能分析网关V4烟火检测算法的应用场景探索
    在信息化和智能化的今天,AI智能分析网关V4作为一款集成了先进技术的硬件设备,在烟火检测领域展现出了强大的应用价值。本文将详细阐述AI智能分析网关V4烟火检测算法的原理及其在各种场景中的应用。一、AI智能分析网关V4烟火检测算法原理深度学习基础TSINGSEE青犀AI智能分析网关V4......
  • 数据结构与算法2
    目录栈和队列1.栈(stack)1.1栈的定义和特点1.2顺序栈的表示1.3顺序栈的实现1.3.1顺序栈的初始化1.3.2顺序栈判断栈是否为空1.3.3求顺序栈长度1.3.4清空顺序栈1.3.5销毁顺序栈1.3.6顺序栈的入栈1.3.7顺序栈的出栈1.4栈链的表示1.5栈链的实现1.5.1栈链的初始化1.5.2判断......
  • 算法笔记(十五)——BFS 解决拓扑排序
    文章目录拓扑排序课程表课程表II火星词典拓扑排序有向无环图(DAG图)有向无环图指的是一个无回路的有向图AOV网:顶点活动图在有向无环图中,用顶点表示一个活动,用边来表示活动的先后顺序的图结构拓扑排序找到一个先后顺序,结果可能不唯一如何拓扑排序?找到一......
  • 二分图最大匹配-匈牙利算法
    二分图最大匹配设G为二分图,若在G的子图M中,任意两条边都没有公共节点,那么称M为二分图G的一组匹配。在二分图中,包含边数最多的一组匹配称为二分图的最大匹配。交替路:从一个未匹配点出发,依次经过非匹配边、匹配边、非匹配边…形成的路径叫交替路。增广路:从一个未匹配点......
  • 算法修炼之路之前缀和
    目录一:一维前缀和二:二维前缀和 三:LeetCodeOJ练习  1.第一题2.第二题 3.第三题 4.第四题5.第五题6.第六题一:一维前缀和这里通过例题来引出牛客_DP34【模板】前缀和画图分析:具体代码:#include<iostream>#include<vector>usingnamespacestd;int......
  • 算法校赛准备
    独木桥题目背景战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳$1$个人通过。假如......
  • 代码随想录算法训练营 | 背包问题 二维,背包问题 一维,416. 分割等和子集
    背包问题二维题目链接:背包问题二维文档讲解︰代码随想录(programmercarl.com)视频讲解︰背包问题二维日期:2024-10-09想法:dp[i][j],i表示需要从物品0-i中选择加入到背包中,j表示背包的容量,dp值表示最大的价值;递推公式,如果背包大小j都比此时要放的物品i的weight[i]小了,背包放不下......
  • 代码随想录算法训练营day10| 232.用栈实现队列 225. 用队列实现栈 20. 有效的括
    学习资料:https://programmercarl.com/栈与队列理论基础.html栈与队列学习记录:232.用栈实现队列(两个栈(stack_in,stack_out)实现一个队列的行为)点击查看代码classMyQueue(object):def__init__(self):self.stack_in=[]self.stack_out=[]d......
  • codeforces round 974(div.3)E(优先队列实现dijstra算法,devc++的优先队列用greater报
    解题历程:看到两边同时移动,计算最终的相遇时间,我就想到两边同时计算各点到起点的最短距离,就是使用dijstra算法,最后所有节点取两次计算的最大值,再对所有节点取最小值,就是最终答案了,可是这个思路没有考虑有马的情况,思考一番后发现可以多列一个数组记录有马的情况下的行走最短路,然后......