首页 > 编程语言 >机器学习--有监督学习--分类算法(KNN算法)

机器学习--有监督学习--分类算法(KNN算法)

时间:2024-06-18 18:20:48浏览次数:23  
标签:KNN 样本 验证 -- 模型 分类 算法

 

使用场景:做分类的,比如银行想做客户分类,看看新的这个客户,他是高风险用户还是低风险用户。

原理使用:可以用贝叶斯分类,决策树算法,还有KNN,本篇主要整理KNN。

KNN原理:有N个样本点,对新纪录r,使用KNN进行分类,看它属于哪个分类。具体如下:

1、先确定k值,不建议太大,一般采用交叉验证法决定,k值常见的为5、10。交叉验证法中,比较经典的,是k折交叉验证。k折交叉验证,既可以用来选择性能指标最好的模型,也可以用来确认在某一选定模型下,k值最合适的选择是什么。我们这里是找最合适的k值,具体来说,大概意思是,假设我们有一个数据集,其中包含12个样本,我们使用3折交叉验证(k=3),也就是把他们分成3个子集,每个子集4个样本。验证3次,每次选择其中一个作为验证集,其他2个是训练集。通过选定的模型(你可以理解为y=ax+b就是选定模型,通过训练集,你要确定a和b),依次对每个训练集数据测试,评估出这个模型下最合适的参数和拟合图,然后使用这个带有评估后参数的模型,在验证集中,再次进行性能指标的评估(准确率、精确度等)。验证次数为3次,然后取3次的平均值,就是此模型的平均准确率。对第一个k值的评估就结束了。然后继续用选定的模型,变化k,重复上面的操作,再次看验证集的性能指标。最后结合每个k具体的性能表现和稳定性(就是看性能表现的方差这些来评估),最终确定k;

2、以及判断距离的公式,一般是欧氏距离

3、计算r和附近每个样本的距离d;

4、把d从小到大排序,取top k个最小的样本;

5、看看这k个样本里,属于多少个分类,哪个分类最多,说明新记录r,就是哪个分类的。

 

举例:如下,蓝色太阳,就是属于红色三角所在的分类。

 

标签:KNN,样本,验证,--,模型,分类,算法
From: https://www.cnblogs.com/1234roro/p/18254601

相关文章

  • mysql的安装与环境配置(借鉴)
    (借鉴了csdn大佬:一个有灵魂的程序员的博客)一、文件下载首先去官网下载社区版压缩文件。官网地址:​​​​​​MySQL::DownloadMySQLCommunityServerhttps://dev.mysql.com/downloads/mysql/选择好相应的版本号和对应的操作系统,点击选中的文件下载。下载好的zip文件解压到......
  • 安装VMware Tools
    安装VMwareTools在Debian9系统上安装1、查看系统版本hostnamectl查看系统版本信息显示当前的操作系统是Debian9,代号为"stretch"。这是Debian的一个长期支持版本,发布于2017年。root@ucs-8389:~#hostnamectlStatichostname:ucs-8389Iconname:computer-vmChassis:......
  • C# 模式匹配
    C#模式匹配https://www.geeksforgeeks.org/pattern-matching-in-c-sharp/https://www.codeproject.com/Articles/5368148/Your-Quick-Guide-to-Pattern-Matching-in-Csharp什是模式匹配模式匹配是一种在代码中识别和提取数据的机制。它允许您以声明式的方式检查对象的形状......
  • Linux 部署
    1、安装dotnet运行时输入dotnet--info有输出就按照好运行时了sudoaptinstalldotnet-sdk-6.0https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu2、运行dotnet应用https://learn.microsoft.com/zh-cn/aspnet/core/host-and-deploy/docker/building-net-d......
  • Linux 虚拟网络 IPIP
    IPIPIPIP隧道是一种点对点的隧道协议,用于在IPv4网络上传输IPv4或IPv6数据包。IPIP隧道的工作原理是将源主机的IP数据包封装在一个新的IP数据包中,新的IP数据包的目的地址是隧道的另一端。在隧道的另一端,接收方将解封装原始IP数据包,并将其传递到目标主机。IPIP隧道可以在不同的......
  • JavaScript 的Blob 对象详解
    JavaScript的Blob对象详解:https://blog.csdn.net/qq_41152573/article/details/136225387?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171870454816800227415776%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=17187045481680......
  • Git信息收集
    1.什么是版本控制系统1.1代码的恢复、备份修改仓库难以管理整个工程直接打包,占用空间过多1.2VersionControlSystem1.3发展阶段版本管理本地VCS协同开发文件冲突?自动合并不冲突的内容标记冲突的内容集中化的VCSCVCSCentralizedVersionControl......
  • 详谈JavaScript 二进制家族:Blob、File、FileReader、ArrayBuffer、Base64
    详谈JavaScript二进制家族:Blob、File、FileReader、ArrayBuffer、Base64:https://blog.csdn.net/weixin_43025151/article/details/129743443?ops_request_misc=&request_id=&biz_id=102&utm_term=JavaScript%E4%B8%AD%E7%9A%84Blob%E4%BD%A0%E7%9F%A5%E9%81%93%E5%A4%9A%E......
  • nginx四层+七层分享代理实现与tomcat多实例动静分离
     实验架构图如下,最终实现负载均衡和动静分离:一、Tomcat多实例1.配置思路1)修改tomcat主配置文件server.xml中的三个端口号808080058009;2)修改tomcat启动停止脚本startup.shshutdown.sh,添加exportCATALINABASECATALINAHONETOWCATHOME变量都指向实例的工作......
  • 【Spring】AOP
    AOP英文全称:AspectOrientedProgramming(面向切面编程、面向方面编程)。在程序运行期间在不修改源代码的基础上对已有方法进行增强(无侵入性:解耦)AOP快速入门pom.xml<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</......