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

news/2024/9/30 15:21:44

 

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

原理使用:可以用贝叶斯分类,决策树算法,还有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,就是哪个分类的。

 

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/45189.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Dbeaver执行外部SQL脚本文件创建数据库、建表导入数据等

Dbeaver执行外部SQL脚本文件创建数据库、建表导入数据等点击项目浏览器右键点击选中,然后选择sql文件右键点击连接地址,选中【工具】,选中【创建新任务】填写信息,选中【执行SQL脚本】,然后【下一步】选中脚本文件点击确定选中数据库的连接地址,如果自动关联就无需修改至…

绿色免费离线版JS加密混淆工具 - 支持全景VR加密, 小程序js加密, H5网站加密

自从我们推出在线版的免费JS加密混淆工具以来,受到了广大用户的热烈欢迎。特别是全景开发人员,他们使用该工具加密VR插件的JS代码, 添加域名锁等,都非常有效地保护了插件的代码资源。 最近,我们收到了许多用户的反馈,大家希望能够提供一款桌面版的JS加密混淆工具,以便在离…

nginx四层+七层分享代理实现与tomcat多实例动静分离

实验架构图如下,最终实现负载均衡和动静分离:一、Tomcat 多实例 1.配置思路 1)修改 tomcat 主配置文件 server.xml 中的三个端口号 8080 8005 8009;2)修改 tomcat 启动停止脚本 startup.sh shutdown.sh,添加 export CATALINA BASE CATALINA HONE TOWCAT HOME 变量都指向实…

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 虚拟网络 IPIP

Linux 虚拟网络 IPIPIPIPIPIP隧道是一种点对点的隧道协议,用于在IPv4网络上传输IPv4或IPv6数据包。 IPIP隧道的工作原理是将源主机的IP数据包封装在一个新的IP数据包中,新的IP数据包的目的地址是隧道的另一端。在隧道的另一端,接收方将解封装原始IP数据包,并将其传递到目标…

设计模式-策略模式

策略模式,又叫政策模式,它是将定义的算法家族分别封装起来,让他们之间可以互相替换,从而让算法的变化不会影响到使用算法的用户,属于行为型模式。 策略模式主要包含三种角色: 上下文角色(Context):用来操作策略的上下文环境,屏蔽高层模块对策略,算法的直接访问,封装…

文件内容比较

造冰箱的大熊猫@cnblogs 2024/6/18 1、文本文件 推荐使用Meld软件 Meld为开源软件,支持Linux和Windows,以并列窗口的形式显示两个或三个文件的内容差异,能够选择文件编码格式(比如GB2312或UTF-8)。非常好用,个人强烈推荐 2、二进制文件 1)Linux下可以使用命令行工具diff…