机器学习(3):KNN算法-分类

一、KNN算法 

 K-近邻算法(K-Nearest Neighbors,简称KNN),根据K个邻居样本的类别来判断当前样本的类别;如果一个样本在特征空间中的k个最相似(最邻近)样本中的大多数属于某个类别,则该类本也属于这个类别。

一些距离: 

距离类型核心特点典型应用场景
欧式距离直线距离,直观但受尺度影响图像识别、聚类分析(需先标准化)
曼哈顿距离网格距离,计算快,抗异常值路径规划、高维数据分类
切比雪夫距离最大维度差异,关注极端值质量检测、棋盘类问题
余弦距离方向相似度,忽略长度文本分类、推荐系统(如用户兴趣匹配)
马氏距离考虑协方差,消除相关性和尺度异常检测、金融风险评估
import joblib#用来保存模型
from sklearn.datasets import load_wine#加载红酒数据集
from sklearn.model_selection import train_test_split#引入数据集划分
from sklearn.neighbors import KNeighborsClassifier#KNN算法模型
from sklearn.preprocessing import StandScaler#标准化
import numpy as np#加载数据集
x,y = load_wine(return_X_y=True)
x_train,x_test,y_train,_y_test = train_test_split(x,y,test_size=0.2,random.state=42)#特征工程化——标准化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)
#fit(x_train) 会计算训练集的均值和标准差
# transform(x_train) 会用训练集的均值和标准差对训练数据标准化
# transform(x_test) 同样用训练集的均值和标准差对测试数据标准化#训练
model = KNeighborsClassifier(n_neighbors=7)#查询的近邻数为7
model.fit(x_train,x_test)#预测
y_p = model.predict(x_test)print(model.score(x_test,y_test))#计算准确率#模型保存
joblib.dump(model,'../src/model/KNN.pkl')
joblib.dump(transfer,'../src/model/transfer.pkl')

我们用红酒的数据集训练好模型后并保存,可在其他地方引用这个模型来进行测试 

import joblib
model = joblib.load('../src/model/KNN.pkl')
transfer = joblib.load('../src/model/transfer.pkl')
x_new = [[5.1,3.5,1.4,0.2,1,2,3,4,5,6,7,8,9],[5.9,3.0,5.1,1.8,2,3,4,5,6,7,8,9,10],
]
x_new = transfer.transform(x_new)
y_predict = model.predict(x_new)

二、KNN算法的缺点:

1、对于大规模数据集,计算量大,因为需要计算测试样本与所有训练样本的距离

2、对于高维数据,距离度量可能变得不那么有意义,数值很大相差不大。

3、需要选择合适的k值和距离度量,这可能需要一些实验和调整

三、API

class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, algorithm='auto')
参数:                                             
(1)n_neighbors: 
int, default=5, 默认情况下用于kneighbors查询的近邻数,就是K
(2)algorithm:
{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, default=’auto’。找到近邻的方式,注意不是计算距离        的方式,与机器学习算法没有什么关系,开发中请使用默认值'auto'
方法:
(1) fit(x, y) 
使用X作为训练数据和y作为目标数据  
(2) predict(X)    预测提供的数据,得到预测数据  

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis Windows迁移方案与测试

我想将开源软件Redis的主程序和附属程序迁移到Windows平台,目前它只能在Linux上运行,让它可以在Windows 11和Windows Server 2025上运行,这需要考虑Linux操作系统和Windows操作系统的差异,请列举出将Redis在Linux系统上运行的GCC的…

信息安全概述--实验总结

数据链路层--ARP欺骗ARP欺骗原理XP2要与XP3通信,要发送ARP请求,询问XP3的MAC地址kali冒充XP3持续给XP2发送ARP应答,XP2会以为收到的MAC地址是XP3的,实际是kali的之后XP2发送的数据都是发给kali的如果说XP2需要想要访问互联网&…

【Electron】打包后图标不变问题,图标问题

windows上图标未更换。图标已经换了,但新打出的包或是安装后的 exe 图标没有更换。这个时候可以右击你的exe或是安装包点属性,看看图标是否正常,如果这里的图标正常,那其实就是成功的了。主要原因是因为 windows 图标缓存机制导致…

单词拆分 II

题目&#xff1a;思考&#xff1a; 本质上和单词拆分1没什么区别单词拆分1是问能不能拆单词拆分2是问把所有拆的方案列出来要列出所有方案&#xff0c;采用字典树回溯 实现&#xff1a; class Node { public:vector<Node*> check;bool isEnd;Node(int num){for (int i0;i…

国产三防平板电脑是什么?三防平板推荐

国产三防平板电脑&#xff0c;专为应对极端工作环境而生。这类设备集防水、防尘、防摔三大防护性能于一体&#xff0c;通过IP67/IP68防护认证及MIL-STD-810军规标准测试&#xff0c;能在建筑工地、油田勘探、应急救援等恶劣场景中稳定运行。其核心价值在于将消费级平板的智能体…

优思学院|什么是精益生产管理?原则与方法详述

在企业经营中&#xff0c;「利润&#xff1d;价格&#xff0d;成本」这条公式可谓家喻户晓。传统的成本思维通常认为价格由公司设定&#xff0c;而成本则是难以撼动的既定事实。然而&#xff0c;随着市场经济与自由定价机制的成熟&#xff0c;企业逐渐意识到——价格其实是由市…

【银行测试】银行票据项目业务+票据测试点分析(四)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、提示付款 功能…

基于华为开发者空间的Open WebUI数据分析与可视化实战

1 概述 1.1 案例介绍 本案例演示如何在华为开发者空间云主机上搭建Open WebUI环境&#xff0c;结合DeepSeek-R1模型进行数据分析、统计建模、数据可视化和业务洞察挖掘等实际数据科学任务。 1.2 适用对象 数据分析师业务分析师数据科学工程师市场研究人员统计学专业学生 1…

【HZ-T536开发板免费体验】Cangjie Magic调用视觉语言大模型(VLM)真香,是不是可以没有YOLO和OCR了?

目录 引言 编写视觉语言大模型&#xff08;VLM&#xff09;程序 交叉编译Cangjie Magic到T536开发板 对cjpm.toml文件的修改 stdx库的配置 拷贝libsecurec.so到cangjie的库文件中 开始交叉编译 部署到开发板 拷贝所需要的库文件 安装curl 运行程序 结束语 本文首发…

最长连续序列(每天刷力扣hot100系列)

目录 题目介绍&#xff1a; 哈希表法&#xff1a; 复杂度分析&#xff1a; 思路分析&#xff1a; unordered_set 和 unordered_map的比较&#xff1a; 1. 核心区别 2. 使用场景 3. 在本题中的选择 4. 性能对比 5. 成员函数差异 unordered_table.begin()函数是返回的键…

国标渠道研究:专业为渠道策略提供数据支持(渠道调研)

北京国标市场调查有限公司是一家专业的市场调查公司&#xff0c;&#xff08;线上问卷调查&#xff09;&#xff08;第三方市场咨询&#xff09;&#xff08;消费者调查研究&#xff09;专注于为企业提供全方位的渠道研究服务。服务范围包括渠道策略研究、渠道销售数据分析和渠…

深入理解 C 语言中的拷贝函数

目录1. C 语言中的主要拷贝函数2. strcpy&#xff1a;字符串拷贝函数签名示例局限性3. strncpy&#xff1a;指定长度的字符串拷贝函数签名示例局限性4. memcpy&#xff1a;通用内存拷贝函数签名示例优势局限性5. memmove&#xff1a;支持重叠内存拷贝函数签名示例优势局限性6. …

主数据变更流程

主数据&#xff08;如客户、供应商、产品等&#xff09;的变更流程&#xff08;新增、更新、停用等&#xff09;是主数据管理&#xff08;MDM&#xff09;的核心环节&#xff0c;其设计需兼顾数据质量&#xff08;准确性、一致性&#xff09;、业务合规&#xff08;审批权限、审…

VUE2 学习笔记 合集

​​​​​​​VUE2 学习笔记1 VUE特点、开发者工具、入门Demo-CSDN博客 VUE2 学习笔记2 数据绑定、数据代理、MVVM_vue2的数据绑定-CSDN博客 VUE2 学习笔记3 v-on、事件修饰符、键盘事件_vue2组件 点击事件-CSDN博客 VU2 学习笔记4 计算属性、监视属性-CSDN博客 VUE2 学习…

【motion】HumanML3D 的安装1:环境搭建

https://github.com/EricGuo5513/HumanML3D/issues/10 (base) root@k8s-master-pfsrv:/home/zhangbin/perfwork/01_ai/15_HumanML3D# conda env create -f environment.yaml Retrieving notices: ...working... done Channels:- defaults Platform: linux-64 Collecting

Pig Cloud遇到websocket不能实现同一个用户不同浏览器接受到广播的消息解决方案

自定义SecuritySessionKeyGenerator类,为每个客户端连接建立唯一的keypackage com.pig4cloud.plugin.websocket.custom;import com.pig4cloud.plugin.websocket.holder.SessionKeyGenerator; import org.springframework.web.socket.WebSocketSession;import java.util.UUID; p…

蓝讯hifi添加自定义算法

总结 自己定义算法要添加在hifi工程里 hifi工程在wiki上可以下载,名字叫做project 在main.c里添加了自己的算法,算法的执行涉及到通道与effect_id 编译hifi项目需要安装 XtensaTool 与hifi4 configuration file 编译成功后移植bin文件 通过hifi4_effect_audio_process调用hifi…

【软考中级网络工程师】知识点之 STP 协议,网络的 “交通协管员”

目录一、STP 协议初相识二、STP 协议登场&#xff0c;网络环路难题迎刃而解2.1 网络环路困境2.2 STP 协议闪亮登场三、STP 协议核心探秘&#xff1a;生成树算法3.1 选举根网桥3.2 确定根端口3.3 选定指定端口四、STP 协议端口状态解析4.1 阻塞状态4.2 监听状态4.3 学习状态4.4 …

分布式网关技术 + BGP EVPN,解锁真正的无缝漫游

无线漫游的核心挑战与标准化协议支持在构建高性能无线网络时&#xff0c;实现用户终端&#xff08;STA&#xff09;在不同接入点&#xff08;AP&#xff09;之间平滑、快速的漫游是核心目标之一。我们的无线AP产品原生支持业界标准的802.11k/v/r协议&#xff08;常称为“快速漫…

广东省省考备考(第六十七天8.5)——资料分析、数量(强化训练)

资料分析 错题解析解析今日题目正确率&#xff1a;87% 数量&#xff1a;数学运算 错题解析解析解析解析标记题解析解析今日题目正确率&#xff1a;73%