当前位置: 首页 > news >正文

K近邻算法(knn)

核心概念


1. 算法定义  
每个样本由其最接近的K个邻近样本代表(K通常≤20)。
对新数据分类时,提取训练集中特征最相似的K个样本,统计其类别频率,将最高频类别作为预测结果。

2. 算法步骤  
① 计算新数据与所有训练样本的距离;  
② 按距离递增排序;  
③ 选取距离最小的K个点;  
④ 统计K个点的类别频率;  
⑤ 返回频率最高的类别作为预测分类。

距离度量方法


1. 欧氏距离 
多维空间中的绝对距离。  
公式(n维):  
$$ d = \sqrt{\sum_{i=1}^{n}(x_i - y_i)^2} $$

2. 曼哈顿距离  
坐标轴上的绝对轴距总和。  
公式(二维):  
$$ d = |x_1 - x_2| + |y_1 - y_2| $$

实战案例:鸢尾花分类(基于sklearn)


1. 数据集 
特征:花萼长度/宽度、花瓣长度/宽度(4个特征)。  
标签:3种鸢尾花类别(`setosa`, `versicolor`, `virginica`)。

2. 实现步骤 
1. 加载数据
iris = datasets.load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3)

2. 创建KNN模型(K=5,欧氏距离)
knn = KNeighborsClassifier(n_neighbors=5, metric="euclidean")
knn.fit(X_train, y_train)

3. 评估与预测
train_score = knn.score(X_train, y_train)  # 训练集准确率
test_score = knn.score(X_test, y_test)     # 测试集准确率
y_pred = knn.predict(X_test)               # 预测标签
```

http://www.dtcms.com/a/338957.html

相关文章:

  • SpringAIAlibaba之基础功能和基础类源码解析(2)
  • 添加右键菜单项以管理员权限打开 CMD
  • JUC之CompletableFuture【中】
  • [ORACLE数据库] ORACLE 的 PL/SQL 块
  • 开通会话内容存档获取聊天记录
  • 机器学习中的「损失函数」:模型优化的核心标尺
  • 源雀SCRM开源版企微客服功能重磅升级
  • Linux 正则表达式
  • 【新启航】航空飞机起落架深孔型腔的内轮廓检测方法探究 - 激光频率梳 3D 轮廓检测
  • JavaScript 性能优化:new Map vs Array.find() 查找速度深度对比
  • 机器翻译60天修炼专栏介绍和目录
  • C语言:字符函数与字符串函数(1)
  • 从 IP编码地址困局到网络优化:VLSM 与 CIDR 如何破解地址浪费与路由难题
  • 使用 Resilience4j 实现 Spring Boot 服务限流:轻量级容错的最佳实践
  • Java算法之排序
  • Bot 流量“假阳性”调优笔记
  • ListBoxes使得在专为灵活性和易用性设计
  • 消费者API
  • 云电脑 vs 传统PC:全面对比3A游戏与AI训练的成本与性能
  • Leetcode 3654. Minimum Sum After Divisible Sum Deletions
  • 【多模态大模型的三化】
  • [PV]AXI R/W/RW带宽计算的tcl脚本
  • AI赋能商业数据分析:从海量数据挖掘到智能决策洞察,激活企业增长新动能
  • Redisson 分布式锁核心机制解析
  • Flink原理与实践:第一章大数据技术概述总结
  • 微软行业案例:英格兰足球超级联赛(Premier League)
  • 丝杆支撑座在自动化生产线中的关键支撑
  • arcgis-提取范围中最大占比面积的信息或唯一值
  • Jenkins服务器SSH公钥配置步骤
  • nodejs koa框架使用